Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/libslic3r/Layer.cpp')
-rw-r--r--src/libslic3r/Layer.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libslic3r/Layer.cpp b/src/libslic3r/Layer.cpp
index 74deabf3e..53a7f2fc4 100644
--- a/src/libslic3r/Layer.cpp
+++ b/src/libslic3r/Layer.cpp
@@ -88,8 +88,12 @@ ExPolygons Layer::merged(float offset_scaled) const
offset_scaled2 = float(- EPSILON);
}
Polygons polygons;
- for (LayerRegion *layerm : m_regions)
- append(polygons, offset(to_expolygons(layerm->slices.surfaces), offset_scaled));
+ for (LayerRegion *layerm : m_regions) {
+ const PrintRegionConfig &config = layerm->region()->config();
+ // Our users learned to bend Slic3r to produce empty volumes to act as subtracters. Only add the region if it is non-empty.
+ if (config.bottom_solid_layers > 0 || config.top_solid_layers > 0 || config.fill_density > 0. || config.perimeters > 0)
+ append(polygons, offset(to_expolygons(layerm->slices.surfaces), offset_scaled));
+ }
ExPolygons out = union_ex(polygons);
if (offset_scaled2 != 0.f)
out = offset_ex(out, offset_scaled2);