prusa3d / PrusaSlicer

G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)
https://www.prusa3d.com/prusaslicer/
GNU Affero General Public License v3.0
7.71k stars 1.93k forks source link

Wedge wall has belt (overextrusion) #6576

Open nulaft opened 3 years ago

nulaft commented 3 years ago

Version

2.3.1

3D printer brand / version + firmware version (if known)

Stock MK3s firmware 3.10.0-4481

Behavior

I would like to print a flat wall which has a two perimeter width on one end and which linearly increases in width over its height. Unfortunately, a wedge like that develops a belt at a specific height. Upon looking at the gcode preview I noticed that the belt emerges in the height region where the slicer tries to fill the gap between the external perimeters with two (inner) perimeters even though there is not enough space. It looks like it doesn't lower the extrusion width of the inner perimeters like it does with a single line gap fill. Because of this, too much material is extruded in those regions, resulting in the belt.

1 2 3

4

Project File (.3MF) where problem occurs

wedge.stl wedge.3mf

rtyr commented 3 years ago

It is known problem, see https://github.com/prusa3d/PrusaSlicer/labels/gap%20fill. We plan to improve the behavior.

Enabling "Detect thin walls" option may solve the issue in this case.

nulaft commented 3 years ago

Thanks a lot for your quick response.

"Detect thin walls" does in fact mostly solve the issue. It replaces the two overlapping internal perimeters with a single gap fill extrusion. However, there is still a slight bulge where it transitions from gap fill to two perimeters. I am not sure if that transition is too early (internal perimeters are still somewhat overlapping) or if the gap fill needs some kind of extrusion multiplier calibration (is there a parameter for that?). Also, when transitioning from gap fill to two perimeters, by default, it will print those internal perimeters first, then the outer perimeters. And with gap fill, it will print the external perimeters first. This could cause that slight imperfection. I will test "External perimeters first" next.

Anyways, I'm looking forward to future improvements on that topic!

nulaft commented 3 years ago

I have tested "External perimeters first" and together with "Detect thin walls" it solves my problem perfectly. The walls are flat all around. I think there needs to be a way to calibrate something such that it doesn't matter if external perimeters are printed first or last.