From 69154652ba643c68e2387b0dd764ccb67c4bed94 Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Sun, 16 Mar 2025 20:07:41 +0800 Subject: [PATCH] Allow generating brims for objects inside other object's hole (#8914) * Allow generating brims for objects inside other object's hole * Make sure inner brim stays inside holes (cherry picked from commit 4afbc5bf340835727344bae77572595a4aa2c7ba) * Merge branch 'main' into bugfox/nested-brim --- src/libslic3r/Brim.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/libslic3r/Brim.cpp b/src/libslic3r/Brim.cpp index e9fdd7921b..06e7b75ea3 100644 --- a/src/libslic3r/Brim.cpp +++ b/src/libslic3r/Brim.cpp @@ -1010,16 +1010,14 @@ static ExPolygons outer_inner_brim_area(const Print& print, }else { outerExpoly = offset_ex(ex_poly_holes_reversed, -brim_offset); } - append(brim_area_object, diff_ex(outerExpoly, innerExpoly)); + append(brim_area_object, intersection_ex(diff_ex(outerExpoly, innerExpoly), ex_poly_holes_reversed)); } if (!has_inner_brim) { // BBS: brim should be apart from holes - append(no_brim_area_object, diff_ex(ex_poly_holes_reversed, offset_ex(ex_poly_holes_reversed, -scale_(5.)))); + append(no_brim_area_object, diff_ex(ex_poly_holes_reversed, offset_ex(ex_poly_holes_reversed, -no_brim_offset))); } if (!has_outer_brim) append(no_brim_area_object, diff_ex(offset(ex_poly.contour, no_brim_offset), ex_poly_holes_reversed)); - if (!has_inner_brim && !has_outer_brim) - append(no_brim_area_object, offset_ex(ex_poly_holes_reversed, -no_brim_offset)); append(holes_object, ex_poly_holes_reversed); } }