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);