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)
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
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.
Bugfix: adjust skirt flow according to each layer's height. #2307
Fixed. Thank you for the report.