From 37013aa25b33d78317577c924b75527599df7553 Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Fri, 14 Feb 2025 18:28:41 +0800 Subject: [PATCH] FIX: modify quick extrude to 1 perimeter width jira: none Change-Id: Ibda111742af2d664088a51e9dd3740f81b4649c7 (cherry picked from commit 9fccb9bcde5332bafcb50f5fbb77212caac19131) --- src/libslic3r/GCode/WipeTower.cpp | 4 ++-- src/libslic3r/GCode/WipeTower.hpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/GCode/WipeTower.cpp b/src/libslic3r/GCode/WipeTower.cpp index aaf9e01936..df9429c386 100644 --- a/src/libslic3r/GCode/WipeTower.cpp +++ b/src/libslic3r/GCode/WipeTower.cpp @@ -1477,7 +1477,7 @@ void WipeTower::set_extruder(size_t idx, const PrintConfig& config) m_filpar[idx].max_e_speed = (max_vol_speed / filament_area()); m_perimeter_width = nozzle_diameter * Width_To_Nozzle_Ratio; // all extruders are now assumed to have the same diameter - m_nozzle_change_perimeter_width = 2 * m_perimeter_width; + m_nozzle_change_perimeter_width = m_perimeter_width; // BBS: remove useless config #if 0 if (m_semm) { @@ -2810,7 +2810,7 @@ WipeTower::NozzleChangeResult WipeTower::nozzle_change_new(int old_filament_id, if (i == nozzle_change_line_count - 1) break; if (writer.y() + dy - float(EPSILON) > cleaning_box.ru.y() - m_nozzle_change_perimeter_width) break; - writer.travel(writer.x(), writer.y() + dy, nozzle_change_speed); + writer.extrude(writer.x(), writer.y() + dy, nozzle_change_speed); m_left_to_right = !m_left_to_right; } diff --git a/src/libslic3r/GCode/WipeTower.hpp b/src/libslic3r/GCode/WipeTower.hpp index 19df119ed1..0405708cca 100644 --- a/src/libslic3r/GCode/WipeTower.hpp +++ b/src/libslic3r/GCode/WipeTower.hpp @@ -458,7 +458,7 @@ private: Vec2f m_bed_bottom_left; // bottom-left corner coordinates (for rectangular beds) float m_perimeter_width = 0.4f * Width_To_Nozzle_Ratio; // Width of an extrusion line, also a perimeter spacing for 100% infill. - float m_nozzle_change_perimeter_width = 2 * 0.4f * Width_To_Nozzle_Ratio; + float m_nozzle_change_perimeter_width = 0.4f * Width_To_Nozzle_Ratio; float m_extrusion_flow = 0.038f; //0.029f;// Extrusion flow is derived from m_perimeter_width, layer height and filament diameter. // Extruder specific parameters.