From 9fc465c2d914adf58a74b0e5167dfb04646ef939 Mon Sep 17 00:00:00 2001 From: igiannakas Date: Fri, 27 Sep 2024 18:26:11 +0100 Subject: [PATCH] Purge tower last layer collision potential fix (for SEMM) --- src/libslic3r/GCode.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 572bbcc55b..640ec0efb4 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -766,11 +766,15 @@ static std::vector 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(); } }