From 0b323649d335584a0b3145da3aa0b4bfe45281fb Mon Sep 17 00:00:00 2001 From: "yifan.wu" Date: Tue, 9 Aug 2022 14:53:34 +0800 Subject: [PATCH] ENH: order support toolpaths to reduce extra travels Signed-off-by: yifan.wu Change-Id: Ifae5807ff094eede1eaf7494430fdd174572a021 (cherry picked from commit dfb3fc991a6f4a6e7dcdcce902f26ffa789f57fb) --- src/libslic3r/GCode.cpp | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index d15198a5d..be78077b4 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -2918,12 +2918,7 @@ GCode::LayerResult GCode::process_layer( m_layer = layers[instance_to_print.layer_id].tree_support_layer; } m_object_layer_over_raft = false; - // BBS. Keep paths order -#if 0 - gcode += this->extrude_support( - // support_extrusion_role is erSupportMaterial, erSupportTransition, erSupportMaterialInterface or erMixed for all extrusion paths. - instance_to_print.object_by_extruder.support->chained_path_from(m_last_pos, instance_to_print.object_by_extruder.support_extrusion_role)); -#else + //BBS: print supports' brims first if (this->m_objSupportsWithBrim.find(instance_to_print.print_object.id()) != this->m_objSupportsWithBrim.end() && !print_wipe_extrusions) { this->set_origin(0., 0.); @@ -2953,12 +2948,10 @@ GCode::LayerResult GCode::process_layer( ExtrusionRole support_extrusion_role = instance_to_print.object_by_extruder.support_extrusion_role; bool is_overridden = support_extrusion_role == erSupportMaterialInterface ? support_intf_overridden : support_overridden; if (is_overridden == (print_wipe_extrusions != 0)) - support_eec.entities = filter_by_extrusion_role(instance_to_print.object_by_extruder.support->entities, instance_to_print.object_by_extruder.support_extrusion_role); + gcode += this->extrude_support( + // support_extrusion_role is erSupportMaterial, erSupportTransition, erSupportMaterialInterface or erMixed for all extrusion paths. + instance_to_print.object_by_extruder.support->chained_path_from(m_last_pos, support_extrusion_role)); - for (auto& ptr : support_eec.entities) - ptr = ptr->clone(); - gcode += this->extrude_support(support_eec); -#endif m_layer = layer_to_print.layer(); m_object_layer_over_raft = object_layer_over_raft; }