diff options
author | Julian Schill <j.schill@web.de> | 2021-12-13 02:05:59 +0300 |
---|---|---|
committer | supermerill <merill@free.fr> | 2021-12-22 20:08:35 +0300 |
commit | eb4b0e7d94e11dff7a3d704380491db1d3dde5cd (patch) | |
tree | fdfd193b90b3019a9fcdbd942d894291ea6e9591 /src/libslic3r/PrintConfig.cpp | |
parent | 7a524609e9a4b568b84c3f8c6d99d78030f708b4 (diff) |
More acceleration control: (squash of)
supermerill:
rename bridge_acceleration_internal to bridge_internal_acceleration to be consistent with the others
move solid_infill_acceleration to gcode settings like the others.
add all new settings to the list of not-prusa settings.
add max_literal to new settings to have a more sane threshold for % check
julian:
Fallback accelerations to other accelerations when 0 36ba8ed4a8ccafa2177b0243b64b0ada32532b16
Print Skirt with Supportmaterial accelerations 375c13de00c473daab61aa7efc4cabdff3e8eca8
Take travel acceleration from get_travel_acceleration function 1385c2acbc2e88d24ad6fbddfcb4a47ff04cddcf
Added missing breaks in switch case. 9635f752ea5f3b6ccecbfd0086198f622a28d72b
Typos in localization readme 626cff20d5980347671cd3a2f9e6daa01d848e66
Deactivate acceleration fields when not applicable bdc4e1e861976dfaad521cf05ce10051d237033f
First layer acceleration only limits acceleration 64884a68b7e0f8c513efd0abf026ad2b4b653f12
Add accelerations for all extrusion roles 7accaccc09031a5f2a51772a443ee333413b420a
fixed to_prusa for accelerations 5cf824ca3220223028d78cde0135a6a130a14487
Thinwalls with perimeter accel, gapfill with SolidInfill accels 6fd41f39a88ca53a4194824da571360705faf3dd
removed CMakeSettings 9e6a05a4f7e3d8fe4a7de10c6399c17bcf9a2d9e
removed unused functions 33fe24070f814588b34bdf237336b4d7d3c7e1c2
Merge GCode.cpp fbba116248685e301fa1793c89feb82115491b44
Resolve conflict in acceleration control c193db4267ba30007c40cc521cc17c5843e2a6b0
Merge upstream. Resolved conflicts in acceleration handling 755a4c34d88c7ca45e12a6fadf875de3c7df459b
configurable travel deceleration fe8fcb671886cf8314ccceaa2f493c6c90d92792
Refactored acceleration code to switch statement to make it more explicit. 5178a23d3c8819d1863575d70baa0cfed206c125
Added acceleration settings for overhangs and solid infills 6ff6118fe28a1c2a0983f8c908c1982a5940866e
Remove default-acceleration checks 6e70bedee97dadfad5116779466c51a710341642
Added acceleration settings for top infill and external parameters 9db2d99b8f486e12a86de580da3733489b1bf076
Diffstat (limited to 'src/libslic3r/PrintConfig.cpp')
-rw-r--r-- | src/libslic3r/PrintConfig.cpp | 195 |
1 files changed, 177 insertions, 18 deletions
diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 1ef590af2..ebfa8f8ce 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -310,17 +310,30 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionFloat(0.)); def = this->add("bridge_acceleration", coFloatOrPercent); - def->label = L("Bridge"); + def->label = L("Bridges"); def->full_label = L("Bridge acceleration"); def->category = OptionCategory::speed; def->tooltip = L("This is the acceleration your printer will use for bridges." "\nCan be a % of the default acceleration" - "\nSet zero to disable acceleration control for bridges." - "\nNote that it won't be applied to overhangs, they still use the perimeter acceleration."); + "\nSet zero to use default acceleration for bridges."); def->sidetext = L("mm/s² or %"); def->ratio_over = "default_acceleration"; def->min = 0; def->max_literal = { -220, false }; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionFloatOrPercent(0,false)); + + def = this->add("bridge_internal_acceleration", coFloatOrPercent); + def->label = L("Internal bridges "); + def->full_label = L("Internal bridges acceleration"); + def->category = OptionCategory::speed; + def->tooltip = L("This is the acceleration your printer will use for internal bridges. " + "\nCan be a % of the default acceleration" + "\nSet zero to use bridge acceleration for internal bridges."); + def->sidetext = L("mm/s² or %"); + def->ratio_over = "bridge_acceleration"; + def->min = 0; + def->max_literal = { -200, false }; def->mode = comExpert; def->set_default_value(new ConfigOptionFloatOrPercent(0,false)); @@ -679,7 +692,7 @@ void PrintConfigDef::init_fff_params() def->ratio_over = "machine_max_acceleration_x"; def->min = 0; def->max_literal = { -200, false }; - def->mode = comExpert; + def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloatOrPercent(0,false)); def = this->add("default_filament_profile", coStrings); @@ -991,6 +1004,20 @@ void PrintConfigDef::init_fff_params() def->mode = comExpert; def->set_default_value(new ConfigOptionPercent(0)); + def = this->add("external_perimeter_acceleration", coFloatOrPercent); + def->label = L("External"); + def->full_label = L("External Perimeter acceleration"); + def->category = OptionCategory::speed; + def->tooltip = L("This is the acceleration your printer will use for external perimeters. " + "\nCan be a % of the internal perimeter acceleration" + "\nSet zero to use internal perimeter acceleration for external perimeters."); + def->sidetext = L("mm/s² or %"); + def->ratio_over = "perimeter_acceleration"; + def->min = 0; + def->max_literal = { -200, false }; + def->mode = comExpert; + def->set_default_value(new ConfigOptionFloatOrPercent(0,false)); + def = this->add("external_perimeter_speed", coFloatOrPercent); def->label = L("External"); def->full_label = L("External perimeters speed"); @@ -1903,14 +1930,14 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionPercent(10)); def = this->add("first_layer_acceleration", coFloatOrPercent); - def->label = L("First layer"); + def->label = L("Max"); def->full_label = L("First layer acceleration"); def->category = OptionCategory::speed; - def->tooltip = L("This is the acceleration your printer will use for first layer." - "\nCan be a % of the default acceleration" + def->tooltip = L("This is the maximum acceleration your printer will use for first layer." + "\nIf set to %, all accelerations will be reduced by that ratio." "\nSet zero to disable acceleration control for first layer."); def->sidetext = L("mm/s² or %"); - def->ratio_over = "default_acceleration"; + def->ratio_over = "depends"; def->min = 0; def->max_literal = { -200, false }; def->mode = comExpert; @@ -2048,6 +2075,20 @@ void PrintConfigDef::init_fff_params() def->mode = comExpert; def->set_default_value(new ConfigOptionBool(true)); + def = this->add("gap_fill_acceleration", coFloatOrPercent); + def->label = L("Gap fill"); + def->full_label = L("Gap fill acceleration"); + def->category = OptionCategory::speed; + def->tooltip = L("This is the acceleration your printer will use for gap fills. " + "\nCan be a % of the infill acceleration" + "\nSet zero to use infill acceleration for gap fills."); + def->sidetext = L("mm/s² or %"); + def->ratio_over = "infill_acceleration"; + def->min = 0; + def->max_literal = { -200, false }; + def->mode = comExpert; + def->set_default_value(new ConfigOptionFloatOrPercent(0,false)); + def = this->add("gap_fill_last", coBool); def->label = L("after last perimeter"); def->full_label = L("Gapfill after last perimeter"); @@ -2188,17 +2229,17 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionBool(0)); def = this->add("infill_acceleration", coFloatOrPercent); - def->label = L("Infill"); + def->label = L("Sparse"); def->full_label = L("Infill acceleration"); def->category = OptionCategory::speed; def->tooltip = L("This is the acceleration your printer will use for infill." "\nCan be a % of the default acceleration" - "\nSet zero to disable acceleration control for infill."); + "\nSet zero to use default acceleration for infill."); def->sidetext = L("mm/s² or %"); def->ratio_over = "default_acceleration"; def->min = 0; def->max_literal = { -200, false }; - def->mode = comExpert; + def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloatOrPercent(0,false)); def = this->add("infill_every_layers", coInt); @@ -2476,6 +2517,20 @@ void PrintConfigDef::init_fff_params() def->mode = comAdvanced; def->set_default_value(new ConfigOptionBool(false)); + def = this->add("ironing_acceleration", coFloatOrPercent); + def->label = L("Ironing"); + def->full_label = L("Ironing acceleration"); + def->category = OptionCategory::speed; + def->tooltip = L("This is the acceleration your printer will use for ironing. " + "\nCan be a % of the top layer infill acceleration" + "\nSet zero to use top solid infill acceleration for ironing."); + def->sidetext = L("mm/s² or %"); + def->ratio_over = "top_solid_infill_acceleration"; + def->min = 0; + def->max_literal = { -200, false }; + def->mode = comExpert; + def->set_default_value(new ConfigOptionFloatOrPercent(0,false)); + def = this->add("ironing_angle", coFloat); def->label = L("Ironing angle"); def->category = OptionCategory::ironing; @@ -3074,6 +3129,20 @@ void PrintConfigDef::init_fff_params() def->mode = comExpert; def->set_default_value(new ConfigOptionString("[input_filename_base].gcode")); + def = this->add("overhangs_acceleration", coFloatOrPercent); + def->label = L("Overhangs"); + def->full_label = L("Overhang acceleration"); + def->category = OptionCategory::speed; + def->tooltip = L("This is the acceleration your printer will use for overhangs." + "\nCan be a % of the bridge acceleration" + "\nSet zero to to use bridge acceleration for overhangs."); + def->sidetext = L("mm/s² or %"); + def->ratio_over = "bridge_acceleration"; + def->min = 0; + def->max_literal = { -200, false }; + def->mode = comExpert; + def->set_default_value(new ConfigOptionFloatOrPercent(0,false)); + def = this->add("overhangs_speed", coFloatOrPercent); def->label = L("Overhangs"); def->full_label = L("Overhangs speed"); @@ -3173,17 +3242,17 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionFloat(-2.f)); def = this->add("perimeter_acceleration", coFloatOrPercent); - def->label = L("Perimeters"); - def->full_label = L("Perimeter acceleration"); + def->label = L("Internal"); + def->full_label = L("Internal Perimeter acceleration"); def->category = OptionCategory::speed; - def->tooltip = L("This is the acceleration your printer will use for perimeters. " + def->tooltip = L("This is the acceleration your printer will use for internal perimeters. " "\nCan be a % of the default acceleration" - "\nSet zero to disable acceleration control for perimeters."); + "\nSet zero to use default acceleration for internal perimeters."); def->sidetext = L("mm/s² or %"); def->ratio_over = "default_acceleration"; def->min = 0; def->max_literal = { -200, false }; - def->mode = comExpert; + def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloatOrPercent(0,false)); def = this->add("perimeter_round_corners", coBool); @@ -4003,6 +4072,20 @@ void PrintConfigDef::init_fff_params() "User is responsible for ensuring there is no collision with the print."); def->mode = comAdvanced; def->set_default_value(new ConfigOptionBool(false)); + + def = this->add("solid_infill_acceleration", coFloatOrPercent); + def->label = L("Solid "); + def->full_label = L("Solid acceleration"); + def->category = OptionCategory::speed; + def->tooltip = L("This is the acceleration your printer will use for solid infills. " + "\nCan be a % of the infill acceleration" + "\nSet zero to use infill acceleration for solid infills."); + def->sidetext = L("mm/s² or %"); + def->ratio_over = "infill_acceleration"; + def->min = 0; + def->max_literal = { -200, false }; + def->mode = comExpert; + def->set_default_value(new ConfigOptionFloatOrPercent(0,false)); def = this->add("solid_over_perimeters", coInt); def->label = L("No solid infill over"); @@ -4028,6 +4111,20 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("Enable support material generation."); def->set_default_value(new ConfigOptionBool(false)); + def = this->add("support_material_acceleration", coFloatOrPercent); + def->label = L("Default"); + def->full_label = L("Support acceleration"); + def->category = OptionCategory::speed; + def->tooltip = L("This is the acceleration your printer will use for support material. " + "\nCan be a % of the default acceleration" + "\nSet zero to use default acceleration for support material."); + def->sidetext = L("mm/s² or %"); + def->ratio_over = "default_acceleration"; + def->min = 0; + def->max_literal = { -200, false }; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionFloatOrPercent(0,false)); + def = this->add("support_material_auto", coBool); def->label = L("Auto generated supports"); def->category = OptionCategory::support; @@ -4036,6 +4133,20 @@ void PrintConfigDef::init_fff_params() def->mode = comSimple; def->set_default_value(new ConfigOptionBool(true)); + def = this->add("support_material_interface_acceleration", coFloatOrPercent); + def->label = L("Interface"); + def->full_label = L("Support interface acceleration"); + def->category = OptionCategory::speed; + def->tooltip = L("This is the acceleration your printer will use for support material interfaces. " + "\nCan be a % of the support material acceleration" + "\nSet zero to use support acceleration for support material interfaces."); + def->sidetext = L("mm/s² or %"); + def->ratio_over = "support_material_acceleration"; + def->min = 0; + def->max_literal = { -200, false }; + def->mode = comExpert; + def->set_default_value(new ConfigOptionFloatOrPercent(0,false)); + def = this->add("support_material_xy_spacing", coFloatOrPercent); def->label = L("XY separation between an object and its support"); def->category = OptionCategory::support; @@ -4372,6 +4483,20 @@ void PrintConfigDef::init_fff_params() def->mode = comExpert; def->set_default_value(new ConfigOptionBool(true)); + def = this->add("thin_walls_acceleration", coFloatOrPercent); + def->label = L("Thin Walls"); + def->full_label = L("Thin walls acceleration"); + def->category = OptionCategory::speed; + def->tooltip = L("This is the acceleration your printer will use for thin walls. " + "\nCan be a % of the external perimeter acceleration" + "\nSet zero to use external perimeter acceleration for thin walls."); + def->sidetext = L("mm/s² or %"); + def->ratio_over = "external_perimeter_acceleration"; + def->min = 0; + def->max_literal = { -200, false }; + def->mode = comExpert; + def->set_default_value(new ConfigOptionFloatOrPercent(0,false)); + def = this->add("thin_walls_speed", coFloat); def->label = L("Thin walls"); def->full_label = L("Thin walls speed"); @@ -4458,6 +4583,20 @@ void PrintConfigDef::init_fff_params() def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloatOrPercent(0, false, true)); + def = this->add("top_solid_infill_acceleration", coFloatOrPercent); + def->label = L("Top solid "); + def->full_label = L("Top solid acceleration"); + def->category = OptionCategory::speed; + def->tooltip = L("This is the acceleration your printer will use for top solid infills. " + "\nCan be a % of the solid infill acceleration" + "\nSet zero to use solid infill acceleration for top solid infills."); + def->sidetext = L("mm/s² or %"); + def->ratio_over = "solid_infill_acceleration"; + def->min = 0; + def->max_literal = { -200, false }; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionFloatOrPercent(0,false)); + def = this->add("top_solid_infill_speed", coFloatOrPercent); def->label = L("Top solid"); def->full_label = L("Top solid speed"); @@ -4500,14 +4639,23 @@ void PrintConfigDef::init_fff_params() def->full_label = L("Travel acceleration"); def->category = OptionCategory::speed; def->tooltip = L("Acceleration for travel moves (jumps between distant extrusion points)." - "\nNote that the deceleration of a travel will use the acceleration value of the extrusion that will be printed after it (if any)"); + "\nCan be a % of the default acceleration" + "\nSet zero to use default acceleration for travel moves."); def->sidetext = L("mm/s² or %"); def->ratio_over = "default_acceleration"; def->min = 0; def->max_literal = { -200, false }; - def->mode = comExpert; + def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloatOrPercent(1500, false)); + def = this->add("travel_deceleration_use_target", coBool); + def->label = L("Decelerate with target acceleration"); + def->full_label = L("Use target acceleration for travel deceleration"); + def->category = OptionCategory::speed; + def->tooltip = L("If selected, the deceleration of a travel will use the acceleration value of the extrusion that will be printed after it (if any) "); + def->mode = comExpert; + def->set_default_value(new ConfigOptionBool(true)); + def = this->add("travel_speed", coFloat); def->label = L("Travel"); def->full_label = L("Travel speed"); @@ -5951,6 +6099,7 @@ void ModelConfig::convert_from_prusa(const DynamicPrintConfig& global_config) { std::unordered_set<std::string> prusa_export_to_remove_keys = { "allow_empty_layers", "avoid_crossing_not_first_layer", +"bridge_internal_acceleration", "bridge_internal_fan_speed", "bridge_overlap", "bridge_overlap_min", @@ -5974,6 +6123,7 @@ std::unordered_set<std::string> prusa_export_to_remove_keys = { "enforce_full_fill_volume", "exact_last_layer_height", "external_infill_margin", +"external_perimeter_acceleration", "external_perimeter_cut_corners", "external_perimeter_extrusion_spacing", "external_perimeter_fan_speed", @@ -6017,6 +6167,7 @@ std::unordered_set<std::string> prusa_export_to_remove_keys = { "first_layer_infill_speed", "first_layer_min_speed", "first_layer_size_compensation_layers", +"gap_fill_acceleration", "gap_fill_infill", "gap_fill_min_area", "gap_fill_overlap", @@ -6031,6 +6182,7 @@ std::unordered_set<std::string> prusa_export_to_remove_keys = { "infill_dense_algo", "infill_dense", "infill_extrusion_spacing", +"ironing_acceleration", "lift_min", "machine_max_acceleration_travel", "max_speed_reduction", @@ -6053,6 +6205,7 @@ std::unordered_set<std::string> prusa_export_to_remove_keys = { "only_one_perimeter_top", "only_one_perimeter_first_layer", "over_bridge_flow_ratio", +"overhangs_acceleration", "overhangs_reverse_threshold", "overhangs_reverse", "overhangs_speed", @@ -6081,14 +6234,18 @@ std::unordered_set<std::string> prusa_export_to_remove_keys = { "small_perimeter_max_length", "small_perimeter_min_length", "solid_fill_pattern", +"solid_infill_acceleration", "solid_infill_extrusion_spacing", "start_gcode_manual", +"support_material_acceleration", "support_material_contact_distance_bottom", "support_material_contact_distance_type", +"support_material_interface_acceleration", "support_material_interface_pattern", "support_material_solid_first_layer", "thin_perimeters_all", "thin_perimeters", +"thin_walls_acceleration", "thin_walls_merge", "thin_walls_min_width", "thin_walls_overlap", @@ -6102,7 +6259,9 @@ std::unordered_set<std::string> prusa_export_to_remove_keys = { "tool_name", "top_fan_speed", "top_infill_extrusion_spacing", +"top_solid_infill_acceleration", "travel_acceleration", +"travel_deceleration_use_target", "travel_speed_z", "wipe_advanced_algo", "wipe_advanced_multiplier", |