slic3r / Slic3r

Open Source toolpath generator for 3D printers
https://slic3r.org/
GNU Affero General Public License v3.0
3.36k stars 1.29k forks source link

Handling very thin walls #1147

Open jfpion opened 11 years ago

jfpion commented 11 years ago

I tryed to slice a dragon with wings the bat like wings are very thin and the slicing produce holes in the wing as on the image batwing2 batwing

even if there is no hole in the stl batwing3

i think the problem is well known

is there a possibility to specify to slic3r that if there is a wall the wall must be at least 1,2 or 3 layer wide ?

with this option after that it is up to the user to deal with that ? whith artistic print it will always be some thin part which need to be printed even a bit larger .

thank you

mesheldrake commented 11 years ago

That's a nice test case because of the gradual, organic variation in width.

Can you please post the model STL and your config file (ctrl-E) so I can include this test with other thinwall tests I'm looking at right now? Thanks.

jfpion commented 11 years ago

the part is here http://www.thingiverse.com/thing:54864 and for my config file, sorry but it changed a lot since my try. I increased the size then cut it in 3 parts with nettfabb basic

my nozzle is 0.5 and i tried 0.15 to 0.4 mm hight and from 0.5 to 0.8 wide or even automatique always getting the same result more or less

the image i posted is from the gcode with that at the beginning:

; layer_height = 0.3 ; perimeters = 4 ; top_solid_layers = 3 ; bottom_solid_layers = 3 ; fill_density = 0.3 ; perimeter_speed = 70 ; infill_speed = 70 ; travel_speed = 130 ; nozzle_diameter = 0.5 ; filament_diameter = 3 ; extrusion_multiplier = 1 ; perimeters extrusion width = 0.50mm ; infill extrusion width = 0.50mm ; solid infill extrusion width = 0.50mm ; top infill extrusion width = 0.50mm ; support material extrusion width = 0.50mm ; first layer extrusion width = 0.50mm

I will post the stl as soon as I can

jfpion commented 11 years ago

here the stl's http://jean.francois.pion.free.fr/dragonchess.zip

thank you

alranel commented 10 years ago

This is the output of the three supplied STL files using the boost-medialaxis branch with default settings:

schermata 2014-03-15 a 17 19 57 schermata 2014-03-15 a 17 20 19 schermata 2014-03-15 a 17 20 35

The problem here is that the model thickness varies a lot and reaches some very very thin values. Slic3r's medial axis algorithm uses a threshold to decide whether a thin walls can be represented by a single-width extrusion or it's too thin even to be printed. The question is: if the model contains, say, a 0.01mm thick wall, should we use a single-width extrusion (like 0.5mm) or ignore it?

The solution is not about fudging with threshold values. It's about deciding what Slic3r should do, and I think this is highly related to a visual feedback (see also #1173).

kefir- commented 10 years ago

@alexrj wrote:

The question is: if the model contains, say, a 0.01mm thick wall, should we use a single-width extrusion (like 0.5mm) or ignore it?

What are the use cases where you actually don't want to print a thin wall that's in the stl? The one I came up with is if you're slicing an STL that's supposed to fit together with something else, and it has some really thin walls. In this case, slic3r can't know if it's correct to follow the outer or the inner side of the very thin wall, if it's supposed to fit together with anything. But on the other hand, this doesn't sound like a very useful mechanical assembly, and since slic3r has a threshold, it won't fit anyway, and requires some post-processing. I'd think a more commonly useful default would be to always draw a single perimeter no matter how thin the line is, placing the center of the extrusion on the center of the thin line. But I guess there's some use cases I don't know about? :)

whosawhatsis commented 10 years ago

I can think of many cases in which what @kefir- suggests would be best, and none immediately spring to mind where it would not, but maybe it's worth adding a checkbox somewhere. It would definitely be useful to automatically add to the thickness of features that are too thin to allow them to be printed, even if imperfectly.

rohieb commented 9 years ago

I support @kefir-​s idea, at least that's what I would expect. IMHO, if something should not be printed, it should not present be in the STL in the first place. Also, people usually know their 3D printers good enough after a few prints to decide if a thin structure can be printed correctly or not.

lordofhyphens commented 9 years ago

But at the same time we have all kinds of crap on thingiverse/youmagine/whatever and there are plenty of users who don't really know their printer well enough to intuit things.

For the latter it probably would go away with time. For the former it is an intractable problem, your printer is not the same as mine. On Jun 27, 2015 8:11 PM, "Roland Hieber" notifications@github.com wrote:

I support @kefir- https://github.com/kefir-​s idea, at least that's what I would expect. IMHO, if something should not be printed, it should not present be in the STL in the first place. Also, people usually know their 3D printers good enough after a few prints to decide if a thin structure can be printed correctly or not.

— Reply to this email directly or view it on GitHub https://github.com/alexrj/Slic3r/issues/1147#issuecomment-116181313.