From a67a862dc1585fae13fbe19428e51dfc02957eb3 Mon Sep 17 00:00:00 2001 From: supermerill Date: Mon, 27 Sep 2021 14:54:17 +0200 Subject: [PATCH] fix bridge_internal_fan_speed when equal or lower than default speed supermerill/SuperSlicer#1414 --- src/libslic3r/GCode/CoolingBuffer.cpp | 8 ++++++-- src/slic3r/GUI/PresetHints.cpp | 13 ++++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/libslic3r/GCode/CoolingBuffer.cpp b/src/libslic3r/GCode/CoolingBuffer.cpp index 1cd36d8a3..db7930d52 100644 --- a/src/libslic3r/GCode/CoolingBuffer.cpp +++ b/src/libslic3r/GCode/CoolingBuffer.cpp @@ -810,10 +810,14 @@ std::string CoolingBuffer::apply_layer_cooldown( bridge_internal_fan_control = bridge_internal_fan_speed > fan_speed_new && bridge_internal_fan_speed >= 0; top_fan_control = top_fan_speed != fan_speed_new && top_fan_speed >= 0; ext_peri_fan_control = ext_peri_fan_speed != fan_speed_new && ext_peri_fan_speed >= 0; - // if bridge_internal_fan is disabled, it takes teh value of bridge_fan_control + // if bridge_internal_fan is disabled, it takes the value of bridge_fan_control + // if bridge_internal_fan_speed is too low, it takes the value of fan_speed_new if (!bridge_internal_fan_control && bridge_fan_control) { bridge_internal_fan_control = true; - bridge_internal_fan_speed = bridge_fan_speed; + if(bridge_internal_fan_speed >= 0) + bridge_internal_fan_speed = fan_speed_new; + else + bridge_internal_fan_speed = bridge_fan_speed; } } else { diff --git a/src/slic3r/GUI/PresetHints.cpp b/src/slic3r/GUI/PresetHints.cpp index 74cab20a0..8499bdc1e 100644 --- a/src/slic3r/GUI/PresetHints.cpp +++ b/src/slic3r/GUI/PresetHints.cpp @@ -53,10 +53,17 @@ std::string PresetHints::cooling_description(const Preset &preset) out += ", " + (boost::format(_utf8(L("at %1%%% over top fill surfaces"))) % top_fan_speed).str(); } if (bridge_fan_speed >= 0 && bridge_fan_speed > min_fan_speed) { - out += ", " + (boost::format(_utf8(L("at %1%%% over bridges"))) % bridge_fan_speed).str(); + if (bridge_internal_fan_speed < 0) + out += ", " + (boost::format(_utf8(L("at %1%%% over all bridges"))) % bridge_fan_speed).str(); + else + out += ", " + (boost::format(_utf8(L("at %1%%% over bridges"))) % bridge_fan_speed).str(); } - if (bridge_internal_fan_speed >= 0 && bridge_internal_fan_speed > min_fan_speed) { - out += ", " + (boost::format(_utf8(L("at %1%%% over infill bridges"))) % bridge_internal_fan_speed).str(); + if (bridge_internal_fan_speed >= 0){ + if (bridge_internal_fan_speed > min_fan_speed) { + out += ", " + (boost::format(_utf8(L("at %1%%% over infill bridges"))) % bridge_internal_fan_speed).str(); + } else if (bridge_fan_speed >= 0 && bridge_fan_speed > min_fan_speed) { + out += ", " + (boost::format(_utf8(L("at %1%%% over infill bridges"))) % min_fan_speed).str(); + } } if (disable_fan_first_layers > 1) out += ", " + (boost::format(_utf8(L("except for the first %1% layers where the fan is disabled"))) % disable_fan_first_layers).str();