From 48ed13e6f17cda38a9e9a369373455d2791d5d32 Mon Sep 17 00:00:00 2001 From: Wang YB <94800665+Gradbb@users.noreply.github.com> Date: Tue, 5 Mar 2024 10:30:39 +0800 Subject: [PATCH] update upper_slices_cache --- src/libslic3r/PerimeterGenerator.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index 8d7ef59..b4cfe4e 100644 --- a/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp @@ -1093,8 +1093,10 @@ void PerimeterGenerator::add_infill_contour_for_arachne(ExPolygons infill_contou for (ExPolygon &ex : infill_contour) ex.simplify_p(params.scaled_resolution, &inner_pp); ExPolygons inner_union = union_ex(inner_pp); - infill_areas = offset_ex(inner_union, insert); - append(out_fill_expolygons, std::move(infill_areas)); + float offset1 = -min_perimeter_infill_spacing / 2.; + float offset2 = insert + min_perimeter_infill_spacing / 2.; + infill_areas = offset2_ex(inner_union, offset1, offset2); + append(out_fill_expolygons, offset2_ex(union_ex(inner_pp), float(-min_perimeter_infill_spacing / 2.), float(insert + min_perimeter_infill_spacing / 2.))); } @@ -1399,7 +1401,7 @@ void PerimeterGenerator::process_with_one_wall_arachne( } if (params.config.overhangs && upper_slices != nullptr && upper_slices_polygons_cache.empty()) { double upper_nozzle_diameter = params.print_config.nozzle_diameter.get_at(params.config.perimeter_extruder - 1); - upper_slices_polygons_cache = offset(*upper_slices, float(scale_(+upper_nozzle_diameter / 2))); + upper_slices_polygons_cache = offset(*upper_slices, float(scale_(EPSILON))); }