diff --git a/lib/Slic3r/ExPolygon.pm b/lib/Slic3r/ExPolygon.pm index b72b935427..b3c3be2eb0 100644 --- a/lib/Slic3r/ExPolygon.pm +++ b/lib/Slic3r/ExPolygon.pm @@ -249,9 +249,11 @@ sub _medial_axis_voronoi { } else { push @result, Slic3r::Polyline->new(@points); } - $result[-1]->simplify($width / 7); } + # apply Douglas-Peucker to straighten paths + @result = map $_->simplify($width / 7), @result; + return @result; } diff --git a/lib/Slic3r/Layer/Region.pm b/lib/Slic3r/Layer/Region.pm index b10b2dac59..a375ef706e 100644 --- a/lib/Slic3r/Layer/Region.pm +++ b/lib/Slic3r/Layer/Region.pm @@ -298,8 +298,7 @@ sub make_perimeters { # append perimeters $self->perimeters->append(@loops); - # detect thin walls by offsetting slices by half extrusion inwards - # and add them as perimeters + # process thin walls by collapsing slices to single passes if (@thin_walls) { my @p = map $_->medial_axis($pspacing), @thin_walls; my @paths = ();