From 8dd8979201a24239ff62689e6dc682abd4d8ee60 Mon Sep 17 00:00:00 2001 From: "jiaxi.chen" Date: Thu, 20 Mar 2025 16:57:13 +0800 Subject: [PATCH] FIX: bottom layer of erSupportTransition dont overlap with base_support It's because the angle pramater is initialized outside of parallel computing jira: STUDIO-11015 Change-Id: I2746880683f705cedc5eaca8a41d7b385e22368f --- src/libslic3r/Support/TreeSupport.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/libslic3r/Support/TreeSupport.cpp b/src/libslic3r/Support/TreeSupport.cpp index 02a69e039..58ba56727 100644 --- a/src/libslic3r/Support/TreeSupport.cpp +++ b/src/libslic3r/Support/TreeSupport.cpp @@ -1557,14 +1557,6 @@ void TreeSupport::generate_toolpaths() if (m_object->support_layer_count() <= m_raft_layers) return; - BoundingBox bbox_object(Point(-scale_(1.), -scale_(1.0)), Point(scale_(1.), scale_(1.))); - std::shared_ptr filler_interface = std::shared_ptr(Fill::new_from_type(m_support_params.contact_fill_pattern)); - std::shared_ptr filler_Roof1stLayer = std::shared_ptr(Fill::new_from_type(ipRectilinear)); - filler_interface->set_bounding_box(bbox_object); - filler_Roof1stLayer->set_bounding_box(bbox_object); - filler_interface->angle = Geometry::deg2rad(object_config.support_angle.value + 90.); - filler_Roof1stLayer->angle = Geometry::deg2rad(object_config.support_angle.value + 90.); - // generate tree support tool paths tbb::parallel_for( tbb::blocked_range(m_raft_layers, m_object->support_layer_count()), @@ -1574,6 +1566,10 @@ void TreeSupport::generate_toolpaths() if (m_object->print()->canceled()) break; + BoundingBox bbox_object(Point(-scale_(1.), -scale_(1.0)), Point(scale_(1.), scale_(1.))); + std::shared_ptr filler_interface = std::shared_ptr(Fill::new_from_type(m_support_params.contact_fill_pattern)); + std::shared_ptr filler_Roof1stLayer = std::shared_ptr(Fill::new_from_type(ipRectilinear)); + //m_object->print()->set_status(70, (boost::format(_u8L("Support: generate toolpath at layer %d")) % layer_id).str()); SupportLayer* ts_layer = m_object->get_support_layer(layer_id); @@ -1584,6 +1580,12 @@ void TreeSupport::generate_toolpaths() ts_layer->support_fills.no_sort = false; for (auto& area_group : ts_layer->area_groups) { + + filler_interface->set_bounding_box(bbox_object); + filler_Roof1stLayer->set_bounding_box(bbox_object); + filler_interface->angle = Geometry::deg2rad(object_config.support_angle.value + 90.); + filler_Roof1stLayer->angle = Geometry::deg2rad(object_config.support_angle.value + 90.); + ExPolygon& poly = *area_group.area; ExPolygons polys; FillParams fill_params;