From c7d44d3576eb3c785429cb573f7a844d5c06bf88 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Mon, 11 Jul 2022 12:24:42 +0200 Subject: [PATCH] #8467 - GCodeProcessor - Added processing of parameter 'T' for gcode lines M104 --- src/libslic3r/GCode/GCodeProcessor.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index 1a4ec2f3fe..cfdcf6d1e2 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -3237,8 +3237,17 @@ void GCodeProcessor::process_M83(const GCodeReader::GCodeLine& line) void GCodeProcessor::process_M104(const GCodeReader::GCodeLine& line) { float new_temp; - if (line.has_value('S', new_temp)) - m_extruder_temps[m_extruder_id] = new_temp; + if (line.has_value('S', new_temp)) { + size_t id = m_extruder_id; + float val; + if (line.has_value('T', val)) { + const size_t eid = static_cast(val); + if (eid < m_extruder_temps.size()) + id = eid; + } + + m_extruder_temps[id] = new_temp; + } } void GCodeProcessor::process_M106(const GCodeReader::GCodeLine& line) @@ -3279,7 +3288,7 @@ void GCodeProcessor::process_M109(const GCodeReader::GCodeLine& line) if (line.has_value('R', new_temp)) { float val; if (line.has_value('T', val)) { - size_t eid = static_cast(val); + const size_t eid = static_cast(val); if (eid < m_extruder_temps.size()) m_extruder_temps[eid] = new_temp; }