diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index bd4101dc9a..01dd5ee1ce 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -119,10 +119,14 @@ namespace Slic3r { // we assume that heating is always slower than cooling, so no need to block gcode += gcodegen.writer().set_temperature (this->_get_temp(gcodegen) + gcodegen.config().standby_temperature_delta.value, false, extruder_id); + gcode.pop_back(); + gcode += " ;cooldown\n"; } } else { // Use the value from filament settings. That one is absolute, not delta. gcode += gcodegen.writer().set_temperature(filament_idle_temp.get_at(extruder_id), false, extruder_id); + gcode.pop_back(); + gcode += " ;cooldown\n"; } return gcode; diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index 174f1bbcea..b061ebb082 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -4004,7 +4004,7 @@ void GCodeProcessor::post_process() reader.parse_line(line, [&gline](GCodeReader& reader, const GCodeReader::GCodeLine& l) { gline = l; }); float val; - if (gline.has_value('T', val)) { + if (gline.has_value('T', val) && gline.raw().find("cooldown") != std::string::npos) { if (static_cast(val) == tool_number) return std::string("; removed M104\n"); }