fix bridge_internal_fan_speed when equal or lower than default speed

supermerill/SuperSlicer#1414
This commit is contained in:
supermerill 2021-09-27 14:54:17 +02:00
parent f71cd1d062
commit a67a862dc1
2 changed files with 16 additions and 5 deletions

View File

@ -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; 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; 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; 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) { if (!bridge_internal_fan_control && bridge_fan_control) {
bridge_internal_fan_control = true; 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 { } else {

View File

@ -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(); 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) { 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) { if (bridge_internal_fan_speed >= 0){
out += ", " + (boost::format(_utf8(L("at %1%%% over infill bridges"))) % bridge_internal_fan_speed).str(); 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) 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(); out += ", " + (boost::format(_utf8(L("except for the first %1% layers where the fan is disabled"))) % disable_fan_first_layers).str();