From 930e1b3bdfaab1d8c343f05ae6c6ec77c5626206 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Thu, 16 Nov 2023 00:59:45 +0800 Subject: [PATCH] limit max wipe tower speed to 90 mm/s --- src/libslic3r/GCode/WipeTower2.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/GCode/WipeTower2.cpp b/src/libslic3r/GCode/WipeTower2.cpp index ab8a54ea069..3060d7bf5e6 100644 --- a/src/libslic3r/GCode/WipeTower2.cpp +++ b/src/libslic3r/GCode/WipeTower2.cpp @@ -1093,7 +1093,7 @@ void WipeTower2::toolchange_Wipe( float dy = (is_first_layer() ? 1.f : m_extra_spacing) * m_perimeter_width; // Don't use the extra spacing for the first layer. // All the calculations in all other places take the spacing into account for all the layers. - const float target_speed = is_first_layer() ? m_first_layer_speed * 60.f : m_infill_speed * 60.f; + const float target_speed = is_first_layer() ? m_first_layer_speed * 60.f : std::min(5400.f, m_infill_speed * 60.f); float wipe_speed = 0.33f * target_speed; // if there is less than 2.5*m_perimeter_width to the edge, advance straightaway (there is likely a blob anyway) @@ -1162,8 +1162,8 @@ WipeTower::ToolChangeResult WipeTower2::finish_layer() // Slow down on the 1st layer. bool first_layer = is_first_layer(); - float feedrate = first_layer ? m_first_layer_speed * 60.f : m_infill_speed * 60.f; - float current_depth = m_layer_info->depth - m_layer_info->toolchanges_depth(); + float feedrate = first_layer ? m_first_layer_speed * 60.f : std::min(5400.f, m_infill_speed * 60.f); + float current_depth = m_layer_info->depth - m_layer_info->toolchanges_depth(); WipeTower::box_coordinates fill_box(Vec2f(m_perimeter_width, m_layer_info->depth-(current_depth-m_perimeter_width)), m_wipe_tower_width - 2 * m_perimeter_width, current_depth-m_perimeter_width);