Fix SPE-1726 - hole between bridges and perimeters caused by thin internal fill surface

GithubIssue https://github.com/prusa3d/PrusaSlicer/issues/10231#issuecomment-1546779200
During sorting of surfaces into top, bottom and internal, expand bottom bridges by one spacing unit, to ensure better anchoring
This commit is contained in:
Pavel Mikus 2023-05-30 15:46:03 +02:00
parent f9d2c9651e
commit cf6b6ff4e4
2 changed files with 6 additions and 6 deletions

View File

@ -981,12 +981,11 @@ void PrintObject::detect_surfaces_type()
surface_type_bottom_other); surface_type_bottom_other);
#else #else
// Any surface lying on the void is a true bottom bridge (an overhang) // Any surface lying on the void is a true bottom bridge (an overhang)
surfaces_append( ExPolygons true_bridge = diff_ex(layerm->slices().surfaces, lower_layer->lslices, ApplySafetyOffset::Yes);
bottom, // expand the bridges by one extrusion width, to ensure reasonable anchoring whenever possible
opening_ex( true_bridge = intersection_ex(layerm->slices().surfaces,
diff_ex(layerm->slices().surfaces, lower_layer->lslices, ApplySafetyOffset::Yes), offset_ex(true_bridge, layerm->bridging_flow(frSolidInfill).scaled_spacing()));
offset), surfaces_append(bottom, true_bridge, surface_type_bottom_other);
surface_type_bottom_other);
// if user requested internal shells, we need to identify surfaces // if user requested internal shells, we need to identify surfaces
// lying on other slices not belonging to this region // lying on other slices not belonging to this region
if (interface_shells) { if (interface_shells) {

View File

@ -9,6 +9,7 @@
#include "Platform.hpp" #include "Platform.hpp"
#include "Time.hpp" #include "Time.hpp"
#include "format.hpp"
#include "libslic3r.h" #include "libslic3r.h"
#ifdef WIN32 #ifdef WIN32