From 60dbf28bf22696bf01f4b45781f62a2f05d2e6f1 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Fri, 22 Dec 2023 14:11:30 +0100 Subject: [PATCH] Wipe tower: shorten x move during skinnydip to max of 20mm --- src/libslic3r/GCode/WipeTower.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/libslic3r/GCode/WipeTower.cpp b/src/libslic3r/GCode/WipeTower.cpp index f9deccdf5a..4f4d4da31a 100644 --- a/src/libslic3r/GCode/WipeTower.cpp +++ b/src/libslic3r/GCode/WipeTower.cpp @@ -1019,8 +1019,7 @@ void WipeTower::toolchange_Unload( float dist_e = m_filpar[m_current_tool].filament_skinnydip_distance + m_cooling_tube_length / 2.f; // Skinnydip turning point shall be no farther than 20mm from the current nozzle position: - - + float skinnydip_turning_point = std::clamp(old_x + 20.f * (turning_point - old_x > 0.f ? 1.f : -1.f), xl, xr); if (m_is_mk4mmu3) writer.switch_filament_monitoring(false); @@ -1030,12 +1029,12 @@ void WipeTower::toolchange_Unload( if (dist_e > 5) { //writer.load_move_x_advanced_there_and_back(turning_point, dist_e-5, m_filpar[m_current_tool].filament_skinnydip_loading_speed, 50); float cent = writer.x(); - writer.load_move_x_advanced(turning_point, 0.5*(dist_e - 5), m_filpar[m_current_tool].filament_skinnydip_loading_speed, 200); + writer.load_move_x_advanced(skinnydip_turning_point, 0.5*(dist_e - 5), m_filpar[m_current_tool].filament_skinnydip_loading_speed, 200); writer.load_move_x_advanced(cent, 0.5*(dist_e - 5), m_filpar[m_current_tool].filament_skinnydip_loading_speed, 200); writer.travel(cent, writer.y()); - writer.load_move_x_advanced_there_and_back(turning_point, 5, m_filpar[m_current_tool].filament_skinnydip_loading_speed, m_travel_speed); + writer.load_move_x_advanced_there_and_back(skinnydip_turning_point, 5, m_filpar[m_current_tool].filament_skinnydip_loading_speed, m_travel_speed); } else - writer.load_move_x_advanced_there_and_back(turning_point, dist_e, m_filpar[m_current_tool].filament_skinnydip_loading_speed, m_travel_speed); + writer.load_move_x_advanced_there_and_back(skinnydip_turning_point, dist_e, m_filpar[m_current_tool].filament_skinnydip_loading_speed, m_travel_speed); //writer.load_move_x_advanced_there_and_back(turning_point, -dist_e, m_filpar[m_current_tool].filament_skinnydip_unloading_speed, 50); // Retract while the print head is stationary, so if there is a blob, it is not dragged along.