Ironing support interfaces (#9548)
Some checks are pending
Build all / Build All (push) Waiting to run
Build all / Flatpak (push) Waiting to run

* Generate support interface iron extrusion

* Always ironing last

* Add options

* Move ironing speed to speed tab

* Don't iron places that are covered by upper support layers

* Disable support interface spacing settings when support ironing is enabled

* Update text
This commit is contained in:
Noisyfox 2025-06-19 15:19:05 +08:00 committed by GitHub
parent 961b73c6be
commit b9cce6c179
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 171 additions and 16 deletions

View file

@ -4897,7 +4897,8 @@ void PrintConfigDef::init_fff_params()
def = this->add("support_interface_spacing", coFloat);
def->label = L("Top interface spacing");
def->category = L("Support");
def->tooltip = L("Spacing of interface lines. Zero means solid interface.");
def->tooltip = L("Spacing of interface lines. Zero means solid interface.\n"
"Force using solid interface when support ironing is enabled.");
def->sidetext = L("mm");
def->min = 0;
def->mode = comAdvanced;
@ -5192,6 +5193,48 @@ void PrintConfigDef::init_fff_params()
def->tooltip = L("This setting specifies whether to add infill inside large hollows of tree support.");
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionBool(false));
def = this->add("support_ironing", coBool);
def->label = L("Ironing Support Interface");
def->category = L("Support");
def->tooltip = L("Ironing is using small flow to print on same height of support interface again to make it more smooth. "
"This setting controls whether support interface being ironed. When enabled, support interface will be extruded as solid too.");
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionBool(false));
def = this->add("support_ironing_pattern", coEnum);
def->label = L("Support Ironing Pattern");
def->tooltip = L("The pattern that will be used when ironing.");
def->category = L("Support");
def->enum_keys_map = &ConfigOptionEnum<InfillPattern>::get_enum_values();
def->enum_values.push_back("concentric");
def->enum_values.push_back("zig-zag");
def->enum_labels.push_back(L("Concentric"));
def->enum_labels.push_back(L("Rectilinear"));
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionEnum<InfillPattern>(ipRectilinear));
def = this->add("support_ironing_flow", coPercent);
def->label = L("Support Ironing flow");
def->category = L("Support");
def->tooltip = L("The amount of material to extrude during ironing. Relative to flow of normal support interface layer height. "
"Too high value results in overextrusion on the surface.");
def->sidetext = "%";
def->ratio_over = "layer_height";
def->min = 0;
def->max = 100;
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionPercent(10));
def = this->add("support_ironing_spacing", coFloat);
def->label = L("Support Ironing line spacing");
def->category = L("Support");
def->tooltip = L("The distance between the lines of ironing.");
def->sidetext = L("mm");
def->min = 0;
def->max = 1;
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloat(0.1));
def = this->add("activate_chamber_temp_control",coBools);
def->label = L("Activate temperature control");