Просмотр исходного кода

Wipe tower: do not apply extra spacing on the first layer purge lines

Lukas Matena 1 год назад
Родитель
Сommit
b5093b0fe3
1 измененных файлов с 3 добавлено и 2 удалено
  1. 3 2
      src/libslic3r/GCode/WipeTower.cpp

+ 3 - 2
src/libslic3r/GCode/WipeTower.cpp

@@ -1053,8 +1053,9 @@ void WipeTower::toolchange_Wipe(
     //   the ordered volume, even if it means violating the box. This can later be removed and simply
     // wipe until the end of the assigned area.
 
-	float x_to_wipe = volume_to_length(wipe_volume, m_perimeter_width, m_layer_height);
-	float dy = m_extra_spacing*m_perimeter_width;
+	float x_to_wipe = volume_to_length(wipe_volume, m_perimeter_width, m_layer_height) * (is_first_layer() ? m_extra_spacing : 1.f);
+	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;
     float wipe_speed = 0.33f * target_speed;