slic3r / Slic3r

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

[bug] huge overextrusion when skirt is multilayer #2307

Closed DeepSOIC closed 9 years ago

DeepSOIC commented 10 years ago

consider the situation: I'm printing a tiny object. I surround it by a distant brim to increase layer printing time (to fight problems with cooling). The model (simplified during bug hunt): a 10 mm high 1.76 mm diameter cylinder. Print settings (the essence, ask more if not enough to reproduce):

first_layer_extrusion_width = 0.4 extrusion_width = 0.22 (everything else)

first_layer_height = 0.14 layer_height = 0.07

skirt_distance = 20 skirts = 3 (number of loops) skirt_height = 1000 (just a lot, to force the skirt for the whole height of the model)

overview

I expected the skirt to be 0.66 mm thick. But it looks like Slic3r uses first layer extrusion width for all layers of skirt. Well, OK... So the skirt is a 0.4*3=1.2 mm thick shell of a 42mm dia 10mm high cylinder, which corresponds to a filament volume of ~1700 cm3. The model is tiny, its volume is negligible... But the g-code consumes: ; filament used = 1165.1mm (2.8cm3) Massively more than expected. And the result is a stuttering extruder stepper and a massive overextrusion on the actual model caused by pressure buildup during overextrusion on the skirt. Epic fail.

My guess for the cause of the bug: Slic3r uses first layer height to calculate the extrusion on the rest of skirt's layers. If I set the first layer height to match the rest (=0.07), the output is: ; filament used = 615.8mm (1.5cm3) Which is OK.

BTW, I want the non-first layers of skirt to the default extrusion width, not the first layer extrusion width.

A workaround: manually create the skirt in the .stl file.

Slic3r v1.2.0 on Windows 8.1 64-bit

alranel commented 10 years ago

Yes, I confirm that behavior. The problem with using different extrusion widths across different layers is that adjacent loops will have gaps between them in the layers using thinner extrusion width. I guess that would be the more consistent behavior though.

alranel commented 9 years ago

Fixed. Thank you for the report.