From 69ed7ab1c0fcac45bac0db7372d88db0ef3fa7c1 Mon Sep 17 00:00:00 2001 From: supermerill Date: Wed, 18 Dec 2019 18:47:25 +0100 Subject: [PATCH] Better rectilinearWgapfill (now take into account bits that are left from the main fill) --- src/libslic3r/Fill/FillRectilinear2.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/libslic3r/Fill/FillRectilinear2.cpp b/src/libslic3r/Fill/FillRectilinear2.cpp index ed68d7c7b..b6619fbdd 100644 --- a/src/libslic3r/Fill/FillRectilinear2.cpp +++ b/src/libslic3r/Fill/FillRectilinear2.cpp @@ -1825,6 +1825,7 @@ FillRectilinear2WGapFill::fill_surface_extrusion(const Surface *surface, const F printf("FillRectilinear2::fill_surface() failed to fill a region.\n"); } } + ExPolygons unextruded_areas; if (!polylines_rectilinear.empty()) { double flow_mult_exact_volume = 1; //check if not over-extruding @@ -1878,9 +1879,15 @@ FillRectilinear2WGapFill::fill_surface_extrusion(const Surface *surface, const F params.flow->height); coll_nosort->entities.push_back(eec); + + unextruded_areas = diff_ex(rectilinear_areas, union_ex(eec->polygons_covered_by_spacing(10), true)); } + else + unextruded_areas = rectilinear_areas; //gapfill + gapfill_areas.insert(gapfill_areas.end(), unextruded_areas.begin(), unextruded_areas.end()); + gapfill_areas = union_ex(gapfill_areas, true); if (gapfill_areas.size() > 0) { FillParams params2{ params }; params2.role = good_role;