diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index c62f6d8161..1f66091039 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -479,7 +479,7 @@ static std::vector s_Preset_filament_options { "filament_colour", "filament_diameter", "filament_type", "filament_soluble", "filament_notes", "filament_max_volumetric_speed", "extrusion_multiplier", "filament_density", "filament_cost", "filament_spool_weight", "filament_loading_speed", "filament_loading_speed_start", "filament_load_time", "filament_unloading_speed", "filament_unloading_speed_start", "filament_unload_time", "filament_toolchange_delay", "filament_cooling_moves", "filament_stamping_loading_speed", "filament_stamping_distance", - "filament_cooling_initial_speed", "filament_cooling_final_speed", "filament_ramming_parameters", "filament_minimal_purge_on_wipe_tower", + "filament_cooling_initial_speed", "filament_loading_purge_multiplier", "filament_unloading_purge_multiplier", "filament_cooling_final_speed", "filament_ramming_parameters", "filament_minimal_purge_on_wipe_tower", "filament_multitool_ramming", "filament_multitool_ramming_volume", "filament_multitool_ramming_flow", "temperature", "idle_temperature", "first_layer_temperature", "bed_temperature", "first_layer_bed_temperature", "fan_always_on", "cooling", "min_fan_speed", "max_fan_speed", "bridge_fan_speed", "disable_fan_first_layers", "full_fan_speed_layer", "fan_below_layer_time", "slowdown_below_layer_time", "min_print_speed", @@ -510,8 +510,8 @@ static std::vector s_Preset_printer_options { "single_extruder_multi_material", "start_gcode", "end_gcode", "before_layer_gcode", "layer_gcode", "toolchange_gcode", "color_change_gcode", "pause_print_gcode", "template_custom_gcode", "between_objects_gcode", "printer_vendor", "printer_model", "printer_variant", "printer_notes", "cooling_tube_retraction", - "cooling_tube_length", "high_current_on_filament_swap", "parking_pos_retraction", "extra_loading_move", "max_print_height", - "default_print_profile", "inherits", + "cooling_tube_length", "high_current_on_filament_swap", "parking_pos_retraction", "extra_loading_move", "multimaterial_purging_for_unload", "multimaterial_purging_for_load", + "max_print_height", "default_print_profile", "inherits", "remaining_times", "silent_mode", "machine_limits_usage", "thumbnails", "thumbnails_format" }; diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 0263657885..65e3ab3631 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -224,6 +224,8 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n || opt_key == "filament_minimal_purge_on_wipe_tower" || opt_key == "filament_cooling_initial_speed" || opt_key == "filament_cooling_final_speed" + || opt_key == "filament_loading_purge_multiplier" + || opt_key == "filament_unloading_purge_multiplier" || opt_key == "filament_ramming_parameters" || opt_key == "filament_multitool_ramming" || opt_key == "filament_multitool_ramming_volume" @@ -249,6 +251,8 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n || opt_key == "cooling_tube_retraction" || opt_key == "cooling_tube_length" || opt_key == "extra_loading_move" + || opt_key == "multimaterial_purging_for_unload" + || opt_key == "multimaterial_purging_for_load" || opt_key == "travel_speed" || opt_key == "travel_speed_z" || opt_key == "first_layer_speed" diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index ffb19ce88d..938f217859 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -1144,6 +1144,22 @@ void PrintConfigDef::init_fff_params() def->mode = comExpert; def->set_default_value(new ConfigOptionFloats { 3.4 }); + def = this->add("filament_loading_purge_multiplier", coPercents); + def->label = L("loading purge multiplier"); + def->tooltip = L(""); + def->sidetext = L("%"); + def->min = 0; + def->mode = comExpert; + def->set_default_value(new ConfigOptionPercents { 100 }); + + def = this->add("filament_unloading_purge_multiplier", coPercents); + def->label = L("unloading purge multiplier"); + def->tooltip = L(""); + def->sidetext = L("%"); + def->min = 0; + def->mode = comExpert; + def->set_default_value(new ConfigOptionPercents { 100 }); + def = this->add("filament_load_time", coFloats); def->label = L("Filament load time"); def->tooltip = L("Time for the printer firmware (or the Multi Material Unit 2.0) to load a new filament during a tool change (when executing the T code). This time is added to the total print time by the G-code time estimator."); @@ -2136,6 +2152,20 @@ void PrintConfigDef::init_fff_params() def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(-2.)); + def = this->add("multimaterial_purging_for_unload", coFloat); + def->label = L("unloading"); + def->tooltip = L(""); + def->sidetext = L("mm krychlovy"); + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionFloat(70)); + + def = this->add("multimaterial_purging_for_load", coFloat); + def->label = L("loading"); + def->tooltip = L(""); + def->sidetext = L("mm krychlovy"); + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionFloat(70)); + def = this->add("perimeter_acceleration", coFloat); def->label = L("Perimeters"); def->tooltip = L("This is the acceleration your printer will use for perimeters. " diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 6e4793bf7d..2efbaaabd8 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -727,6 +727,8 @@ PRINT_CONFIG_CLASS_DEFINE( ((ConfigOptionFloats, filament_cooling_initial_speed)) ((ConfigOptionFloats, filament_minimal_purge_on_wipe_tower)) ((ConfigOptionFloats, filament_cooling_final_speed)) + ((ConfigOptionPercents, filament_loading_purge_multiplier)) + ((ConfigOptionPercents, filament_unloading_purge_multiplier)) ((ConfigOptionStrings, filament_ramming_parameters)) ((ConfigOptionBools, filament_multitool_ramming)) ((ConfigOptionFloats, filament_multitool_ramming_volume)) @@ -779,6 +781,8 @@ PRINT_CONFIG_CLASS_DEFINE( ((ConfigOptionBool, remaining_times)) ((ConfigOptionBool, silent_mode)) ((ConfigOptionFloat, extra_loading_move)) + ((ConfigOptionFloat, multimaterial_purging_for_unload)) + ((ConfigOptionFloat, multimaterial_purging_for_load)) ((ConfigOptionString, color_change_gcode)) ((ConfigOptionString, pause_print_gcode)) ((ConfigOptionString, template_custom_gcode)) diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index a80df44e5f..c529e926f0 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -2273,6 +2273,8 @@ void TabFilament::build() optgroup->append_single_option_line("filament_cooling_final_speed"); optgroup->append_single_option_line("filament_stamping_loading_speed"); optgroup->append_single_option_line("filament_stamping_distance"); + optgroup->append_single_option_line("filament_loading_purge_multiplier"); + optgroup->append_single_option_line("filament_unloading_purge_multiplier"); create_line_with_widget(optgroup.get(), "filament_ramming_parameters", "", [this](wxWindow* parent) { auto ramming_dialog_btn = new wxButton(parent, wxID_ANY, _(L("Ramming settings"))+dots, wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT); @@ -3379,6 +3381,8 @@ void TabPrinter::build_unregular_pages(bool from_initial_build/* = false*/) optgroup->append_single_option_line("cooling_tube_length"); optgroup->append_single_option_line("parking_pos_retraction"); optgroup->append_single_option_line("extra_loading_move"); + optgroup->append_single_option_line("multimaterial_purging_for_unload"); + optgroup->append_single_option_line("multimaterial_purging_for_load"); optgroup->append_single_option_line("high_current_on_filament_swap"); if (from_initial_build) page->clear();