From ff02fa7665cd529075bcf67cafb6fdffd23abec7 Mon Sep 17 00:00:00 2001 From: "weizhen.xie" Date: Thu, 25 Sep 2025 12:13:41 +0800 Subject: [PATCH] ENH: Support skipping flushing when skipping object in sequential (by-object) printing. Jira: O1-16971 Change-Id: I6b80f062f69bf02a77b2f8a3f9fa300a40b23e26 (cherry picked from commit 1679f0dd6121d6198b01e020799b3352579504f9) --- src/libslic3r/GCode.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 7c87215504..2a50d70da1 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -3020,10 +3020,14 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato if (m_writer.need_toolchange(initial_extruder_id)) { const PrintObjectConfig& object_config = object.config(); coordf_t initial_layer_print_height = print.config().initial_layer_print_height.value; + + if (m_enable_exclude_object && print.config().support_object_skip_flush.value) { + m_filament_instances_code = _encode_label_ids_to_base64({(*print_object_instance_sequential_active)->model_instance->get_labeled_id()}); + } + file.write(this->set_extruder(initial_extruder_id, initial_layer_print_height, true)); prime_extruder = true; - } - else { + } else { file.write(this->retract()); } file.write(m_writer.travel_to_z(m_max_layer_z + m_writer.config.z_hop.get_at(initial_extruder_id))); @@ -4794,7 +4798,7 @@ LayerResult GCode::process_layer( gcode += generate_skirt(print, print.skirt(), Point(0, 0), layer.object()->config().skirt_start_angle, layer_tools, layer, extruder_id); - if (m_enable_exclude_object && print.config().support_object_skip_flush.value) { + if (print.config().print_sequence == PrintSequence::ByLayer && m_enable_exclude_object && print.config().support_object_skip_flush.value) { std::vector filament_instances_id; for (InstanceToPrint &instance : filament_to_print_instances[extruder_id]) filament_instances_id.emplace_back(instance.label_object_id); m_filament_instances_code = _encode_label_ids_to_base64(filament_instances_id);