Wipe tower: tweaking MK4 specific behaviour

This commit is contained in:
Lukas Matena 2024-02-07 12:25:16 +01:00
parent ba37505ab0
commit c4d4c7f22e

View File

@ -944,8 +944,10 @@ void WipeTower::toolchange_Unload(
} }
} }
if (m_is_mk4mmu3) if (m_is_mk4mmu3) {
writer.switch_filament_monitoring(false); writer.switch_filament_monitoring(false);
writer.wait(1.5f);
}
// now the ramming itself: // now the ramming itself:
@ -988,9 +990,6 @@ void WipeTower::toolchange_Unload(
.resume_preview(); .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 int& number_of_cooling_moves = m_filpar[m_current_tool].cooling_moves;
const bool cooling_will_happen = m_semm && number_of_cooling_moves > 0; const bool cooling_will_happen = m_semm && number_of_cooling_moves > 0;
bool change_temp_later = false; 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: // 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); 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 // Only last 5mm will be done with the fast x travel. The point is to spread possible blobs
// along the whole wipe tower. // along the whole wipe tower.
if (skinnydip_dist_e > 5) { 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. // 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); 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) if (m_filpar[m_current_tool].filament_skinnydip_extra_move != 0.f)
skinnydip_dist_e += m_filpar[m_current_tool].filament_skinnydip_extra_move; 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("[end_filament_gcode]\n");
writer.append("[toolchange_gcode_from_wipe_tower_generator]\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) // 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 // 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. // postprocessor that we absolutely want to have this in the gcode, even if it thought it is the same as before.