diff --git a/src/libslic3r/GCode/WipeTower.cpp b/src/libslic3r/GCode/WipeTower.cpp index e48c7d0468..5dd1b15fa3 100644 --- a/src/libslic3r/GCode/WipeTower.cpp +++ b/src/libslic3r/GCode/WipeTower.cpp @@ -586,7 +586,8 @@ WipeTower::WipeTower(const Vec2f& pos, double rotation_deg, const PrintConfig& c m_set_extruder_trimpot = config.high_current_on_filament_swap; } - m_is_mk4mmu3 = boost::icontains(config.printer_notes.value, "PRINTER_MODEL_MK4") && boost::icontains(config.printer_notes.value, "MMU"); + m_is_mk4mmu3 = boost::icontains(config.printer_notes.value, "PRINTER_MODEL_MK4") && boost::icontains(config.printer_notes.value, "MMU"); + m_switch_filament_monitoring = m_is_mk4mmu3 || is_XL_printer(config); // Calculate where the priming lines should be - very naive test not detecting parallelograms etc. const std::vector& bed_points = config.bed_shape.values; @@ -935,7 +936,7 @@ void WipeTower::toolchange_Unload( } } - if (m_is_mk4mmu3) { + if (m_switch_filament_monitoring) { writer.switch_filament_monitoring(false); writer.wait(1.5f); } @@ -1084,7 +1085,7 @@ void WipeTower::toolchange_Change( //writer.append("[end_filament_gcode]\n"); writer.append("[toolchange_gcode_from_wipe_tower_generator]\n"); - if (m_is_mk4mmu3) + if (m_switch_filament_monitoring) writer.switch_filament_monitoring(true); // Travel to where we assume we are. Custom toolchange or some special T code handling (parking extruder etc) diff --git a/src/libslic3r/GCode/WipeTower.hpp b/src/libslic3r/GCode/WipeTower.hpp index d060ab9b6f..e0d83de69f 100644 --- a/src/libslic3r/GCode/WipeTower.hpp +++ b/src/libslic3r/GCode/WipeTower.hpp @@ -277,6 +277,7 @@ private: bool m_semm = true; // Are we using a single extruder multimaterial printer? bool m_is_mk4mmu3 = false; + bool m_switch_filament_monitoring = false; Vec2f m_wipe_tower_pos; // Left front corner of the wipe tower in mm. float m_wipe_tower_width; // Width of the wipe tower. float m_wipe_tower_depth = 0.f; // Depth of the wipe tower