Add toolchange ordering option (Standard/Cyclic). (#13582)

This commit is contained in:
Ian Bassi
2026-07-08 14:18:41 -03:00
committed by GitHub
parent 781ecdc2c1
commit da149ee75a
6 changed files with 93 additions and 17 deletions

View File

@@ -522,6 +522,12 @@ static t_config_enum_values s_keys_map_PerimeterGeneratorType{
};
CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(PerimeterGeneratorType)
static t_config_enum_values s_keys_map_ToolChangeOrderingType {
{ "default", int(ToolChangeOrderingType::Default) },
{ "cyclic", int(ToolChangeOrderingType::Cyclic) }
};
CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(ToolChangeOrderingType)
static const t_config_enum_values s_keys_map_ZHopType = {
{ "Auto Lift", zhtAuto },
{ "Normal Lift", zhtNormal },
@@ -6076,6 +6082,22 @@ void PrintConfigDef::init_fff_params()
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionBool(false));
def = this->add("toolchange_ordering", coEnum);
def->label = L("Toolchange ordering");
def->category = L("Advanced");
def->tooltip = L(
"Determines the order of tool changes on each layer.\n"
"- Default: Starts with the last used extruder to minimize tool changes.\n"
"- Cyclic: Uses a fixed tool sequence each layer. This sacrifices speed for better surface quality, as the extra toolchanges allow layers more time to cool."
);
def->mode = comAdvanced;
def->enum_keys_map = &ConfigOptionEnum<ToolChangeOrderingType>::get_enum_values();
def->enum_values.emplace_back("default");
def->enum_values.emplace_back("cyclic");
def->enum_labels.emplace_back(L("Default"));
def->enum_labels.emplace_back(L("Cyclic"));
def->set_default_value(new ConfigOptionEnum<ToolChangeOrderingType>(ToolChangeOrderingType::Default));
def = this->add("slice_closing_radius", coFloat);
def->label = L("Slice gap closing radius");
def->category = L("Quality");