Purge tower last layer collision potential fix (for SEMM)

This commit is contained in:
igiannakas 2024-09-27 18:26:11 +01:00
parent 27cd983b06
commit 9fc465c2d9

View file

@ -766,11 +766,15 @@ static std::vector<Vec2d> get_path_of_change_filament(const Print& print)
gcodegen.m_wipe.reset_path(); // We don't want wiping on the ramming lines.
toolchange_gcode_str = gcodegen.set_extruder(new_extruder_id, tcr.print_z); // TODO: toolchange_z vs print_z
if (gcodegen.config().enable_prime_tower) {
deretraction_str += gcodegen.writer().travel_to_z(z, "restore layer Z");
Vec3d position{gcodegen.writer().get_position()};
position.z() = z;
gcodegen.writer().set_position(position);
deretraction_str += gcodegen.unretract();
// ORCA: For SEMM, this move causes the nozzle to crash on the wipe tower for the final wipe layer.
// TODO: Requires validation whether this is an issue even with multi extruder printers
if(!this->m_single_extruder_multi_material){
deretraction_str += gcodegen.writer().travel_to_z(z, "restore layer Z");
Vec3d position{gcodegen.writer().get_position()};
position.z() = z;
gcodegen.writer().set_position(position);
}
deretraction_str += gcodegen.unretract();
}
}