Skip to content

thin wall improvement

Merill edited this page Feb 1, 2019 · 3 revisions

Thin walls

This change in the thin_wall postprocessing has a number of effect:

  • it extends the end of the thin extrusion to the (supposed) nearest perimeter.
  • it extrudes cross with two strait lines
  • It try to draw the tips strait if possible, or trying to follow the curve if it exists (see the 'o', 'u'). Can be strange sometimes if the shape to fill is difficult.
  • better following of the thickness of the shape (see the tip of the 't')
  • if the algorithm split a curve in a big amount of perimeter-thin-perimeter-thin ... , it try with a sightly bigger "minimum thickness" for the thin extrusion to see if it can transform again in a full perimeter.
  • don't trace very thin and small extrusion.
  • ensure there are no over-extrusion
  • most of these also apply for the gap fill algorithm (all but the "extends the end").

new parameter: min width (threshold).

This new parameter allow you to set the minimum size of the feature slic3r is taking into account. It can be an absolute value (in mm) or a % of the nozzle size. This parameter had a value of 33%. If the value is below 10%%, to be able to print correctly, it will grow the size of extrusions at least to the nozzle size if they are thinner than that. It creates some overexrusion but as these are on the external edges of the part, it shouldn't have any impact, unless you want to print mmu prints.

code changes:

  • remove post-process of the voronoi diagram in polylines.
  • change the ThickPolyline from points[n], width[2n-2] to points[n] width[n]
  • intensive post-process of ThickPolyline in medial_axis to merge them with (complicated) interpolated position and width.
  • a bit more work on perimetergenerator.cpp to get the anchor for the extrusion to let it touch the middle of the perimeter line.
  • perimeter.cpp : set the extrusion enityt to no_sort for each extrusion to ensure it will follow the lines from begin to end (don't stop/turn in the middle of a thin line).