Core slicing algorithm issue: Broken narrow walls

33 views
Skip to first unread message

Eaterbeef Atgo

unread,
Aug 27, 2014, 2:13:47 AM8/27/14
to kisslicer-r...@googlegroups.com
This has been noted once before on this thread ("Thin lines broken and not full") and this one ("Kisslicer - gaps in paths, missing elements"), but both seem to have died with parting advise to use Slic3r instead of KS. I work with thin-walled objects often, so I decided to look into it some more.

ISSUE: Certain combinations of wall width, extrusion width, and oversample resolution cause the model to be sliced incorrectly. By attempting different combinations of these 3 parameters it is sometimes possible to find a workaround, but not always. For example, if the model includes a hollow cylinder lying on its side, the effective wall width is different in each slice, and at least some of the slices will likely be broken. Higher oversample resolution does not always make things better. Sometimes it makes things worse.

MORE DETAIL: To investigate, I made an STL model of two solids: A tapered straight wall and a tapered cylindrical wall. Both begin 2mm wide at Z=0 and end 0.25mm wide at Z=17.5mm. If you slice with 0.1mm layer thickness, wall width in each slice is 0.01mm less than in the slice before. I turn off wipe and destring and set extrusion width to 0.5mm. I expect the following behavior:

* In the first layer, the walls are exactly 4 extrusion widths (2mm) wide, so the toolpath will have two loops.

* When the wall narrows to ~3.5 extrusion widths (1.75mm), the slicer will abandon the inner loop and place a crowning bead instead. The wall will have 3 beads.

* At ~1.25mm wall width, the crown will disappear and there will be a single loop.

* At ~0.75mm wall width, the wall should switch from a loop to a single bead. Ideally this bead should be treated as perimeter bead and not a crown bead, and laid down with the speed and precision configured for perimeter beads.

* When the wall is narrower than ~0.25mm (1/2 extrusion width), nothing is printed.

Unfortunately this isn't what happens. (I tested with KS version 1.1, but the latest behaves similarly.)
 
STRAIGHT WALL: First, the slicer continues with 4 beads until wall width W=1.66mm, with 3 beads until W=1.02mm, and with 2 beads until W=0.61mm, so the wall ends up over-filled. But the big problem isn't that. It's that in some layers the crown bead disappears altogether, even though it is present in both the previous layer and the next. For example, it disappears at W=0.54mm, and nothing at all is printed in this layer, even though W is still greater than extrusion width. It appears again at W=0.53. (In an actual print, the bead would of course fall into the gap and probably ruin the wall from this point up.) The exact values W at which the crown disappears depend on the OversampleResolution setting; the above is with OversampleResolution=0.1. They do not depend on CrowningThreshold.

CIRCULAR WALL: Much worse than straight wall. The inner loops and crowns become broken and random gaps open up, which makes the print uneven and dirty. When W<0.69mm (still well above the 0.5mm extrusion thickness), gaps open up in the perimeter loop, so that the entire structure breaks up into fragments. Basically, the print cannot continue beyond this point.

I am attaching the STL file for anyone interested to see what I'm talking about and experiment further. I don't know how many people print thin-walled objects, so maybe this isn't an issue for everyone. But it's a deal breaker for me: I'd probably have to abandon KS if there isn't a workaround. Would be a pity.
KissTest.STL
Reply all
Reply to author
Forward
0 new messages