mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-17 10:32:20 +00:00
ENH: Support skipping flushing when skipping object in sequential (by-object) printing.
Jira: O1-16971 Change-Id: I6b80f062f69bf02a77b2f8a3f9fa300a40b23e26 (cherry picked from commit 1679f0dd6121d6198b01e020799b3352579504f9)
This commit is contained in:
@@ -3020,10 +3020,14 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato
|
|||||||
if (m_writer.need_toolchange(initial_extruder_id)) {
|
if (m_writer.need_toolchange(initial_extruder_id)) {
|
||||||
const PrintObjectConfig& object_config = object.config();
|
const PrintObjectConfig& object_config = object.config();
|
||||||
coordf_t initial_layer_print_height = print.config().initial_layer_print_height.value;
|
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));
|
file.write(this->set_extruder(initial_extruder_id, initial_layer_print_height, true));
|
||||||
prime_extruder = true;
|
prime_extruder = true;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
file.write(this->retract());
|
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)));
|
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,
|
gcode += generate_skirt(print, print.skirt(), Point(0, 0), layer.object()->config().skirt_start_angle, layer_tools, layer,
|
||||||
extruder_id);
|
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<size_t> filament_instances_id;
|
std::vector<size_t> filament_instances_id;
|
||||||
for (InstanceToPrint &instance : filament_to_print_instances[extruder_id]) filament_instances_id.emplace_back(instance.label_object_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);
|
m_filament_instances_code = _encode_label_ids_to_base64(filament_instances_id);
|
||||||
|
|||||||
Reference in New Issue
Block a user