From 2eed82ed81c8f3808fadc60ea18cbdcf29880872 Mon Sep 17 00:00:00 2001 From: Ioannis Giannakas <59056762+igiannakas@users.noreply.github.com> Date: Sun, 9 Feb 2025 13:12:02 +0000 Subject: [PATCH] Fix 10-25% overhang slowdown not working as expected (#8080) * Fix 10-25% overhang slowdown not working as expected * Merge branch 'main' into Fix-10-25%-overhang-slowdown-not-working-as-expected * Merge remote-tracking branch 'upstream/main' into Fix-10-25%-overhang-slowdown-not-working-as-expected * Merge branch 'main' into Fix-10-25%-overhang-slowdown-not-working-as-expected * Merge branch 'main' into Fix-10-25%-overhang-slowdown-not-working-as-expected * Merge branch 'main' into Fix-10-25%-overhang-slowdown-not-working-as-expected * Merge branch 'main' into Fix-10-25%-overhang-slowdown-not-working-as-expected --- src/libslic3r/GCode.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index a1351cb6f5..355e6f763e 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -5311,11 +5311,12 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, ref_speed = std::min(ref_speed, m_config.scarf_joint_speed.get_abs_value(ref_speed)); } - ConfigOptionPercents overhang_overlap_levels({75, 50, 25, 13, 12.99, 0}); + ConfigOptionPercents overhang_overlap_levels({90, 75, 50, 25, 13, 0}); if (m_config.slowdown_for_curled_perimeters){ ConfigOptionFloatsOrPercents dynamic_overhang_speeds( - {(m_config.get_abs_value("overhang_1_4_speed", ref_speed) < 0.5) ? + {FloatOrPercent{100, true}, + (m_config.get_abs_value("overhang_1_4_speed", ref_speed) < 0.5) ? FloatOrPercent{100, true} : FloatOrPercent{m_config.get_abs_value("overhang_1_4_speed", ref_speed) * 100 / ref_speed, true}, (m_config.get_abs_value("overhang_2_4_speed", ref_speed) < 0.5) ? @@ -5327,9 +5328,6 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, (m_config.get_abs_value("overhang_4_4_speed", ref_speed) < 0.5) ? FloatOrPercent{100, true} : FloatOrPercent{m_config.get_abs_value("overhang_4_4_speed", ref_speed) * 100 / ref_speed, true}, - (m_config.get_abs_value("overhang_4_4_speed", ref_speed) < 0.5) ? - FloatOrPercent{100, true} : - FloatOrPercent{m_config.get_abs_value("overhang_4_4_speed", ref_speed) * 100 / ref_speed, true}, (m_config.get_abs_value("overhang_4_4_speed", ref_speed) < 0.5) ? FloatOrPercent{100, true} : FloatOrPercent{m_config.get_abs_value("overhang_4_4_speed", ref_speed) * 100 / ref_speed, true}}); @@ -5338,7 +5336,8 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, ref_speed, speed, m_config.slowdown_for_curled_perimeters); }else{ ConfigOptionFloatsOrPercents dynamic_overhang_speeds( - {(m_config.get_abs_value("overhang_1_4_speed", ref_speed) < 0.5) ? + {FloatOrPercent{100, true}, + (m_config.get_abs_value("overhang_1_4_speed", ref_speed) < 0.5) ? FloatOrPercent{100, true} : FloatOrPercent{m_config.get_abs_value("overhang_1_4_speed", ref_speed) * 100 / ref_speed, true}, (m_config.get_abs_value("overhang_2_4_speed", ref_speed) < 0.5) ? @@ -5347,10 +5346,9 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, (m_config.get_abs_value("overhang_3_4_speed", ref_speed) < 0.5) ? FloatOrPercent{100, true} : FloatOrPercent{m_config.get_abs_value("overhang_3_4_speed", ref_speed) * 100 / ref_speed, true}, - (m_config.get_abs_value("overhang_4_4_speed", ref_speed) < 0.5) ? - FloatOrPercent{100, true} : - FloatOrPercent{m_config.get_abs_value("overhang_4_4_speed", ref_speed) * 100 / ref_speed, true}, - FloatOrPercent{m_config.get_abs_value("bridge_speed") * 100 / ref_speed, true}, + (m_config.get_abs_value("overhang_4_4_speed", ref_speed) < 0.5) ? + FloatOrPercent{100, true} : + FloatOrPercent{m_config.get_abs_value("overhang_4_4_speed", ref_speed) * 100 / ref_speed, true}, FloatOrPercent{m_config.get_abs_value("bridge_speed") * 100 / ref_speed, true}}); new_points = m_extrusion_quality_estimator.estimate_extrusion_quality(path, overhang_overlap_levels, dynamic_overhang_speeds,