Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Schill <j.schill@web.de>2021-12-13 02:05:59 +0300
committersupermerill <merill@free.fr>2021-12-22 20:08:35 +0300
commiteb4b0e7d94e11dff7a3d704380491db1d3dde5cd (patch)
treefdfd193b90b3019a9fcdbd942d894291ea6e9591 /src/libslic3r/PrintConfig.cpp
parent7a524609e9a4b568b84c3f8c6d99d78030f708b4 (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.cpp195
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",