Enhancement: Enable separate internal bridge fan speed control (#7906)

* Separate internal bridge fan speed control

* Merge branch 'SoftFever:main' into Allow-separate-internal-bridge-fan-control

* Merge branch 'main' into Allow-separate-internal-bridge-fan-control

* Merge branch 'SoftFever:main' into Allow-separate-internal-bridge-fan-control

* Merge branch 'main' into Allow-separate-internal-bridge-fan-control

* Merge remote-tracking branch 'upstream/main' into Allow-separate-internal-bridge-fan-control

* Merge branch 'main' into Allow-separate-internal-bridge-fan-control

* Merge branch 'main' into Allow-separate-internal-bridge-fan-control

* Merge branch 'main' into Allow-separate-internal-bridge-fan-control

* Merge branch 'main' into Allow-separate-internal-bridge-fan-control
This commit is contained in:
Ioannis Giannakas 2025-02-09 13:53:57 +00:00 committed by GitHub
parent 2eed82ed81
commit 4e74aaf144
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 104 additions and 20 deletions

View file

@ -908,15 +908,19 @@ void PrintConfigDef::init_fff_params()
def = this->add("enable_overhang_bridge_fan", coBools);
def->label = L("Force cooling for overhang and bridge");
def->tooltip = L("Enable this option to optimize part cooling fan speed for overhang and bridge to get better cooling");
def->label = L("Force cooling for overhangs and bridges");
def->tooltip = L("Enable this option to allow adjustment of the part cooling fan speed for specifically for overhangs, internal and external "
"bridges. Setting the fan speed specifically for these features can improve overall print quality and reduce warping.");
def->mode = comSimple;
def->set_default_value(new ConfigOptionBools{ true });
def = this->add("overhang_fan_speed", coInts);
def->label = L("Fan speed for overhang");
def->tooltip = L("Force part cooling fan to be this speed when printing bridge or overhang wall which has large overhang degree. "
"Forcing cooling for overhang and bridge can get better quality for these part");
def->label = L("Overhangs and external bridges fan speed");
def->tooltip = L("Use this part cooling fan speed when printing bridges or overhang walls with an overhang threshold that exceeds "
"the value set in the 'Overhangs cooling threshold' parameter above. Increasing the cooling specifically for overhangs "
"and bridges can improve the overall print quality of these features.\n\n"
"Please note, this fan speed is clamped on the lower end by the minimum fan speed threshold set above. It is also adjusted "
"upwards up to the maximum fan speed threshold when the minimum layer time threshold is not met.");
def->sidetext = L("%");
def->min = 0;
def->max = 100;
@ -924,10 +928,10 @@ void PrintConfigDef::init_fff_params()
def->set_default_value(new ConfigOptionInts { 100 });
def = this->add("overhang_fan_threshold", coEnums);
def->label = L("Cooling overhang threshold");
def->tooltip = L("Force cooling fan to be specific speed when overhang degree of printed part exceeds this value. "
"Expressed as percentage which indicates how much width of the line without support from lower layer. "
"0% means forcing cooling for all outer wall no matter how much overhang degree");
def->label = L("Overhang cooling activation threshold");
def->tooltip = L("When the overhang exceeds this specified threshold, force the cooling fan to run at the 'Overhang Fan Speed' set below. "
"This threshold is expressed as a percentage, indicating the portion of each line's width that is unsupported by the layer "
"beneath it. Setting this value to 0% forces the cooling fan to run for all outer walls, regardless of the overhang degree.");
def->sidetext = "";
def->enum_keys_map = &ConfigOptionEnum<OverhangFanThreshold>::get_enum_values();
def->mode = comAdvanced;
@ -2586,15 +2590,27 @@ void PrintConfigDef::init_fff_params()
def = this->add("support_material_interface_fan_speed", coInts);
def->label = L("Support interface fan speed");
def->tooltip = L("This fan speed is enforced during all support interfaces, to be able to weaken their bonding with a high fan speed."
"\nSet to -1 to disable this override."
"\nCan only be overridden by disable_fan_first_layers.");
def->tooltip = L("This part cooling fan speed is applied when printing support interfaces. Setting this parameter to a higher than regular speed "
" reduces the layer binding strength between supports and the supported part, making them easier to separate."
"\nSet to -1 to disable it."
"\nThis setting is overridden by disable_fan_first_layers.");
def->sidetext = L("%");
def->min = -1;
def->max = 100;
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionInts{ -1 });
// ORCA: Add support for separate internal bridge fan speed control
def = this->add("internal_bridge_fan_speed", coInts);
def->label = L("Internal bridges fan speed");
def->tooltip = L("The part cooling fan speed used for all internal bridges. Set to -1 to use the overhang fan speed settings instead.\n\n"
"Reducing the internal bridges fan speed, compared to your regular fan speed, can help reduce part warping due to excessive "
"cooling applied over a large surface for a prolonged period of time.");
def->sidetext = L("%");
def->min = -1;
def->max = 100;
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionInts{ -1 });
def = this->add("fuzzy_skin", coEnum);
def->label = L("Fuzzy Skin");