Feature: Retract amount after wipe (#11015)

Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
This commit is contained in:
Valerii Bokhan
2026-07-14 19:42:16 +02:00
committed by GitHub
parent 3c0338f462
commit 50768e0716
10 changed files with 293 additions and 45 deletions

View File

@@ -79,6 +79,9 @@ const std::vector<std::string> filament_extruder_override_keys = {
"filament_wipe",
// percents
"filament_retract_before_wipe",
// Orca
"filament_retract_after_wipe",
// BBS
"filament_long_retractions_when_cut",
"filament_retraction_distances_when_cut"
};
@@ -5546,6 +5549,15 @@ void PrintConfigDef::init_fff_params()
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionPercents { 100 });
// Orca:
def = this->add("retract_after_wipe", coPercents);
def->label = L("Retract amount after wipe");
def->tooltip = L("The length of fast retraction after wipe, relative to retraction length.\n"
"The value will be clamped by 100% minus the retract amount before the wipe value.");
def->sidetext = "%";
def->mode = comExpert;
def->set_default_value(new ConfigOptionPercents { 0 });
def = this->add("retract_when_changing_layer", coBools);
def->label = L("Retract on layer change");
def->tooltip = L("This forces a retraction on layer changes.");
@@ -7963,17 +7975,44 @@ void PrintConfigDef::init_extruder_option_keys()
{
// ConfigOptionFloats, ConfigOptionPercents, ConfigOptionBools, ConfigOptionStrings
m_extruder_option_keys = {
"extruder_type", "nozzle_diameter", "default_nozzle_volume_type", "min_layer_height", "max_layer_height", "extruder_offset",
"extruder_printable_height", "nozzle_volume", "nozzle_type", "nozzle_flush_dataset",
"retraction_length", "z_hop", "z_hop_types", "travel_slope", "retract_lift_above", "retract_lift_below", "retract_lift_enforce", "retraction_speed", "deretraction_speed",
"retract_before_wipe", "retract_restart_extra", "retraction_minimum_travel", "wipe", "wipe_distance",
"retract_when_changing_layer", "retract_length_toolchange", "retract_restart_extra_toolchange", "extruder_colour",
"default_filament_profile","retraction_distances_when_cut","long_retractions_when_cut"
"default_filament_profile",
"default_nozzle_volume_type",
"deretraction_speed",
"extruder_colour",
"extruder_offset",
"extruder_printable_height",
"extruder_type",
"long_retractions_when_cut",
"max_layer_height",
"min_layer_height",
"nozzle_diameter",
"nozzle_flush_dataset",
"nozzle_type",
"nozzle_volume",
"retract_after_wipe",
"retract_before_wipe",
"retract_length_toolchange",
"retract_lift_above",
"retract_lift_below",
"retract_lift_enforce",
"retract_restart_extra",
"retract_restart_extra_toolchange",
"retract_when_changing_layer",
"retraction_distances_when_cut",
"retraction_length",
"retraction_minimum_travel",
"retraction_speed",
"travel_slope",
"wipe",
"wipe_distance",
"z_hop",
"z_hop_types"
};
m_extruder_retract_keys = {
"deretraction_speed",
"long_retractions_when_cut",
"retract_after_wipe",
"retract_before_wipe",
"retract_lift_above",
"retract_lift_below",
@@ -7996,17 +8035,40 @@ void PrintConfigDef::init_extruder_option_keys()
void PrintConfigDef::init_filament_option_keys()
{
m_filament_option_keys = {
"filament_diameter", "min_layer_height", "max_layer_height","volumetric_speed_coefficients",
"retraction_length", "z_hop", "z_hop_types", "retract_lift_above", "retract_lift_below", "retract_lift_enforce", "retraction_speed", "deretraction_speed",
"retract_before_wipe", "filament_retract_length_nc", "retract_restart_extra", "retraction_minimum_travel", "wipe", "wipe_distance",
"retract_when_changing_layer", "retract_length_toolchange", "retract_restart_extra_toolchange", "filament_colour",
"default_filament_profile","retraction_distances_when_cut","long_retractions_when_cut"/*,"filament_seam_gap"*/
"default_filament_profile",
"deretraction_speed",
"filament_colour",
"filament_diameter",
"filament_retract_length_nc",
// "filament_seam_gap",
"long_retractions_when_cut",
"max_layer_height",
"min_layer_height",
"retract_after_wipe",
"retract_before_wipe",
"retract_length_toolchange",
"retract_lift_above",
"retract_lift_below",
"retract_lift_enforce",
"retract_restart_extra",
"retract_restart_extra_toolchange",
"retract_when_changing_layer",
"retraction_distances_when_cut",
"retraction_length",
"retraction_minimum_travel",
"retraction_speed",
"volumetric_speed_coefficients",
"wipe",
"wipe_distance",
"z_hop",
"z_hop_types",
};
m_filament_retract_keys = {
"deretraction_speed",
"filament_retract_length_nc",
"long_retractions_when_cut",
"retract_after_wipe",
"retract_before_wipe",
"retract_lift_above",
"retract_lift_below",
@@ -9050,6 +9112,9 @@ std::set<std::string> filament_options_with_variant = {
//BBS
"filament_wipe_distance",
"filament_retract_before_wipe",
// Orca
"filament_retract_after_wipe",
//BBS
"filament_long_retractions_when_cut",
"filament_retraction_distances_when_cut",
"long_retractions_when_ec",
@@ -9100,6 +9165,8 @@ std::set<std::string> printer_options_with_variant_1 = {
"wipe",
"wipe_distance",
"retract_before_wipe",
// Orca:
"retract_after_wipe",
"retract_length_toolchange",
"retract_restart_extra",
"retract_restart_extra_toolchange",