From b281c91b99155219242dfcfcaec35beb01444430 Mon Sep 17 00:00:00 2001 From: Kiss Lorand <50251547+kisslorand@users.noreply.github.com> Date: Thu, 6 Aug 2026 17:54:11 +0300 Subject: [PATCH] Fix ignored filament-specific ironing speed override (#15082) Fix overridden ironing speed Use filament_ironing_speed for the active filament when configured, falling back to the process setting when unset. --- src/libslic3r/GCode.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index c20405781b..8e2e9f713c 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -7650,8 +7650,7 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, if (sloped) { speed = std::min(speed, m_config.scarf_joint_speed.get_abs_value(speed)); } - } - else if(path.role() == erInternalBridgeInfill) { + } else if(path.role() == erInternalBridgeInfill) { speed = m_config.get_abs_value_at("internal_bridge_speed", get_nozzle_config_index(m_writer.filament()->id())); } else if (path.role() == erOverhangPerimeter || path.role() == erSupportTransition || path.role() == erBridgeInfill) { speed = NOZZLE_CONFIG(bridge_speed); @@ -7662,7 +7661,10 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, } else if (path.role() == erTopSolidInfill) { speed = NOZZLE_CONFIG(top_surface_speed); } else if (path.role() == erIroning) { - speed = m_config.get_abs_value("ironing_speed"); + const size_t filament_idx = get_filament_config_index(m_writer.filament()->id()); + speed = m_config.filament_ironing_speed.is_nil(filament_idx) + ? m_config.get_abs_value("ironing_speed") + : m_config.filament_ironing_speed.get_at(filament_idx); } else if (path.role() == erBottomSurface) { speed = NOZZLE_CONFIG(initial_layer_infill_speed); } else if (path.role() == erGapFill) {