From 9054aa74b34405439f535a99a4b9b560b930f5fb Mon Sep 17 00:00:00 2001 From: PavelMikus Date: Wed, 15 Feb 2023 13:32:19 +0100 Subject: [PATCH] Filter out tiny areas, Fix issue where partial surfaces were cleared and empty when over solid infill --- src/libslic3r/PrintObject.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index 8b72c292ab..4e91581e4c 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -1695,7 +1695,7 @@ void PrintObject::bridge_over_infill() intersection(bridged_area, lower_layers_sparse_infill); // cut off parts which are not over sparse infill - material overflow - if (bridged_area.empty()) { + if (shrink(bridged_area, 3.0 * flow.scaled_width()).empty()) { continue; } @@ -1980,6 +1980,9 @@ void PrintObject::bridge_over_infill() for (Surface &surface : region->m_fill_surfaces.surfaces) { if (s.original_surface == &surface) { Surface tmp(surface, {}); + for (const ExPolygon &expoly : diff_ex(surface.expolygon, s.new_polys)) { + new_surfaces.emplace_back(tmp, expoly); + } tmp.surface_type = stInternalBridge; tmp.bridge_angle = s.bridge_angle; for (const ExPolygon &expoly : union_ex(s.new_polys)) {