From c4d4c7f22e323b3296e2616416866006ab690784 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Wed, 7 Feb 2024 12:25:16 +0100 Subject: [PATCH] Wipe tower: tweaking MK4 specific behaviour --- src/libslic3r/GCode/WipeTower.cpp | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/libslic3r/GCode/WipeTower.cpp b/src/libslic3r/GCode/WipeTower.cpp index 3f939b306a..6dd01730f8 100644 --- a/src/libslic3r/GCode/WipeTower.cpp +++ b/src/libslic3r/GCode/WipeTower.cpp @@ -944,8 +944,10 @@ void WipeTower::toolchange_Unload( } } - if (m_is_mk4mmu3) + if (m_is_mk4mmu3) { writer.switch_filament_monitoring(false); + writer.wait(1.5f); + } // now the ramming itself: @@ -988,9 +990,6 @@ void WipeTower::toolchange_Unload( .resume_preview(); } - if (m_is_mk4mmu3) - writer.switch_filament_monitoring(true); - const int& number_of_cooling_moves = m_filpar[m_current_tool].cooling_moves; const bool cooling_will_happen = m_semm && number_of_cooling_moves > 0; bool change_temp_later = false; @@ -1034,9 +1033,6 @@ void WipeTower::toolchange_Unload( // 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); - // Only last 5mm will be done with the fast x travel. The point is to spread possible blobs // along the whole wipe tower. if (skinnydip_dist_e > 5) { @@ -1050,9 +1046,6 @@ void WipeTower::toolchange_Unload( // Retract while the print head is stationary, so if there is a blob, it is not dragged along. writer.retract(skinnydip_dist_e, m_filpar[m_current_tool].unloading_speed * 60.f); - if (m_is_mk4mmu3) - writer.switch_filament_monitoring(true); - if (m_filpar[m_current_tool].filament_skinnydip_extra_move != 0.f) skinnydip_dist_e += m_filpar[m_current_tool].filament_skinnydip_extra_move; } @@ -1103,6 +1096,9 @@ void WipeTower::toolchange_Change( //writer.append("[end_filament_gcode]\n"); writer.append("[toolchange_gcode_from_wipe_tower_generator]\n"); + if (m_is_mk4mmu3) + writer.switch_filament_monitoring(true); + // Travel to where we assume we are. Custom toolchange or some special T code handling (parking extruder etc) // gcode could have left the extruder somewhere, we cannot just start extruding. We should also inform the // postprocessor that we absolutely want to have this in the gcode, even if it thought it is the same as before.