diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index d7d4f0799..d29983175 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -2473,6 +2473,7 @@ ExPolygons PrintObject::_smooth_curves(const ExPolygons & input, const PrintRegi ExPolygons new_polys; for (const ExPolygon &ex_poly : input) { ExPolygon new_ex_poly(ex_poly); + new_ex_poly.contour.remove_collinear(SCALED_RESOLUTION); new_ex_poly.contour = _smooth_curve(new_ex_poly.contour, PI, conf.curve_smoothing_angle_convex.value*PI / 180.0, conf.curve_smoothing_angle_concave.value*PI / 180.0, @@ -2480,13 +2481,14 @@ ExPolygons PrintObject::_smooth_curves(const ExPolygons & input, const PrintRegi scale_(conf.curve_smoothing_precision.value)); for (Polygon &phole : new_ex_poly.holes){ phole.reverse(); // make_counter_clockwise(); + phole.remove_collinear(SCALED_RESOLUTION); phole = _smooth_curve(phole, PI, conf.curve_smoothing_angle_convex.value*PI / 180.0, conf.curve_smoothing_angle_concave.value*PI / 180.0, scale_(conf.curve_smoothing_cutoff_dist.value), scale_(conf.curve_smoothing_precision.value)); phole.reverse(); // make_clockwise(); - } + } new_polys.push_back(new_ex_poly); } return new_polys;