From 7e1d23689023278eb926c36cbf4dde9b10a8be89 Mon Sep 17 00:00:00 2001 From: supermerill Date: Sat, 5 Sep 2020 17:56:48 +0200 Subject: [PATCH] fix regression on enforce_full_fill_volume (since 72d6cdc3) --- src/libslic3r/PerimeterGenerator.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index 311935ca9..df094a92c 100644 --- a/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp @@ -900,13 +900,20 @@ void PerimeterGenerator::process() this->fill_surfaces->append(infill_exp, stPosInternal | stDensSparse); if (infill_peri_overlap != 0) { - ExPolygons polyWithoutOverlap = offset2_ex( - not_filled_exp, - -inset - infill_gap - min_perimeter_infill_spacing / 2, - (float) min_perimeter_infill_spacing / 2); + ExPolygons polyWithoutOverlap; + if (min_perimeter_infill_spacing / 2 > infill_peri_overlap) + polyWithoutOverlap = offset2_ex( + not_filled_exp, + -inset - infill_gap - min_perimeter_infill_spacing / 2 + infill_peri_overlap, + (float)min_perimeter_infill_spacing / 2 - infill_peri_overlap); + else + polyWithoutOverlap = offset_ex( + not_filled_exp, + -inset - infill_gap); if (!top_fills.empty()) { polyWithoutOverlap = union_ex(polyWithoutOverlap, top_infill_exp); - this->fill_no_overlap.insert(this->fill_no_overlap.end(), polyWithoutOverlap.begin(), polyWithoutOverlap.end()); + } + this->fill_no_overlap.insert(this->fill_no_overlap.end(), polyWithoutOverlap.begin(), polyWithoutOverlap.end()); /*{ std::stringstream stri; stri << this->layer->id() << "_2_end_makeperimeter_" << this->layer->id() << ".svg"; @@ -919,7 +926,6 @@ void PerimeterGenerator::process() svg.draw(to_polylines(top_infill_exp), "orange"); svg.Close(); }*/ - } } } // for each island }