reorganization of settings & seettings cat

* simple: may be useful to be changed by everyone
 * advanced: needed to create a new profile, should be fixed most of the time.
 * expert: very situational, dangerous, experimental, buggy, or should-not-touch settings.
This commit is contained in:
supermerill 2019-03-13 19:02:07 +01:00
parent 8ba954d2aa
commit cfc96cf561
2 changed files with 103 additions and 92 deletions

View File

@ -43,13 +43,14 @@ void PrintConfigDef::init_common_params()
def->default_value = new ConfigOptionPoints{ Vec2d(0, 0), Vec2d(200, 0), Vec2d(200, 200), Vec2d(0, 200) }; def->default_value = new ConfigOptionPoints{ Vec2d(0, 0), Vec2d(200, 0), Vec2d(200, 200), Vec2d(0, 200) };
def = this->add("layer_height", coFloat); def = this->add("layer_height", coFloat);
def->label = L("Layer height"); def->label = L("Base Layer height");
def->category = L("Layers and Perimeters"); def->category = L("Layers and Perimeters");
def->tooltip = L("This setting controls the height (and thus the total number) of the slices/layers. " def->tooltip = L("This setting controls the height (and thus the total number) of the slices/layers. "
"Thinner layers give better accuracy but take more time to print."); "Thinner layers give better accuracy but take more time to print.");
def->sidetext = L("mm"); def->sidetext = L("mm");
def->cli = "layer-height=f"; def->cli = "layer-height=f";
def->min = 0; def->min = 0;
def->mode = comAdvanced;
def->default_value = new ConfigOptionFloat(0.3); def->default_value = new ConfigOptionFloat(0.3);
def = this->add("max_print_height", coFloat); def = this->add("max_print_height", coFloat);
@ -161,7 +162,7 @@ void PrintConfigDef::init_fff_params()
def->cli = "bridge-fan-speed=i@"; def->cli = "bridge-fan-speed=i@";
def->min = 0; def->min = 0;
def->max = 100; def->max = 100;
def->mode = comExpert; def->mode = comAdvanced;
def->default_value = new ConfigOptionInts { 100 }; def->default_value = new ConfigOptionInts { 100 };
def = this->add("top_fan_speed", coInts); def = this->add("top_fan_speed", coInts);
@ -171,7 +172,7 @@ void PrintConfigDef::init_fff_params()
def->cli = "top-fan-speed=i@"; def->cli = "top-fan-speed=i@";
def->min = 0; def->min = 0;
def->max = 100; def->max = 100;
def->mode = comExpert; def->mode = comAdvanced;
def->default_value = new ConfigOptionInts{ 100 }; def->default_value = new ConfigOptionInts{ 100 };
def = this->add("bridge_flow_ratio", coFloat); def = this->add("bridge_flow_ratio", coFloat);
@ -299,6 +300,7 @@ void PrintConfigDef::init_fff_params()
def->tooltip = L("This flag enables the automatic cooling logic that adjusts print speed " def->tooltip = L("This flag enables the automatic cooling logic that adjusts print speed "
"and fan speed according to layer printing time."); "and fan speed according to layer printing time.");
def->cli = "cooling!"; def->cli = "cooling!";
def->mode = comAdvanced;
def->default_value = new ConfigOptionBools { true }; def->default_value = new ConfigOptionBools { true };
def = this->add("cooling_tube_retraction", coFloat); def = this->add("cooling_tube_retraction", coFloat);
@ -417,7 +419,8 @@ void PrintConfigDef::init_fff_params()
def->default_value = new ConfigOptionBool(false); def->default_value = new ConfigOptionBool(false);
def = this->add("top_fill_pattern", coEnum); def = this->add("top_fill_pattern", coEnum);
def->label = L("Top Pattern"); def->label = L("Top");
def->full_label = L("Top Pattern");
def->category = L("Infill"); def->category = L("Infill");
def->tooltip = L("Fill pattern for top infill. This only affects the top visible layer, and not its adjacent solid shells."); def->tooltip = L("Fill pattern for top infill. This only affects the top visible layer, and not its adjacent solid shells.");
def->cli = "top-fill-pattern|external-fill-pattern=s"; def->cli = "top-fill-pattern|external-fill-pattern=s";
@ -443,7 +446,8 @@ void PrintConfigDef::init_fff_params()
def->default_value = new ConfigOptionEnum<InfillPattern>(ipRectilinear); def->default_value = new ConfigOptionEnum<InfillPattern>(ipRectilinear);
def = this->add("bottom_fill_pattern", coEnum); def = this->add("bottom_fill_pattern", coEnum);
def->label = L("Bottom Pattern"); def->label = L("Bottom");
def->full_label = L("Bottom Pattern");
def->category = L("Infill"); def->category = L("Infill");
def->tooltip = L("Fill pattern for bottom infill. This only affects the bottom visible layer, and not its adjacent solid shells."); def->tooltip = L("Fill pattern for bottom infill. This only affects the bottom visible layer, and not its adjacent solid shells.");
def->cli = "bottom-fill-pattern|external-fill-pattern=s"; def->cli = "bottom-fill-pattern|external-fill-pattern=s";
@ -585,7 +589,8 @@ void PrintConfigDef::init_fff_params()
def->category = L("Layers and Perimeters"); def->category = L("Layers and Perimeters");
def->tooltip = L("Add more perimeters when needed for avoiding gaps in sloping walls. " def->tooltip = L("Add more perimeters when needed for avoiding gaps in sloping walls. "
"Slic3r keeps adding perimeters, until more than 70% of the loop immediately above " "Slic3r keeps adding perimeters, until more than 70% of the loop immediately above "
"is supported."); "is supported, and keep adding periemter until all overhangs are filled."
"\n!! this is a very slow algorithm !!");
def->cli = "extra-perimeters!"; def->cli = "extra-perimeters!";
def->mode = comAdvanced; def->mode = comAdvanced;
def->default_value = new ConfigOptionBool(true); def->default_value = new ConfigOptionBool(true);
@ -649,6 +654,7 @@ void PrintConfigDef::init_fff_params()
def->cli = "extruder-color=s@"; def->cli = "extruder-color=s@";
def->gui_type = "color"; def->gui_type = "color";
// Empty string means no color assigned yet. // Empty string means no color assigned yet.
def->mode = comAdvanced;
def->default_value = new ConfigOptionStrings { "" }; def->default_value = new ConfigOptionStrings { "" };
def = this->add("extruder_offset", coPoints); def = this->add("extruder_offset", coPoints);
@ -676,7 +682,7 @@ void PrintConfigDef::init_fff_params()
"Usual values are between 0.9 and 1.1. If you think you need to change this more, " "Usual values are between 0.9 and 1.1. If you think you need to change this more, "
"check filament diameter and your firmware E steps."); "check filament diameter and your firmware E steps.");
def->cli = "extrusion-multiplier=f@"; def->cli = "extrusion-multiplier=f@";
def->mode = comAdvanced; def->mode = comSimple;
def->default_value = new ConfigOptionFloats { 1. }; def->default_value = new ConfigOptionFloats { 1. };
def = this->add("extrusion_width", coFloatOrPercent); def = this->add("extrusion_width", coFloatOrPercent);
@ -696,6 +702,7 @@ void PrintConfigDef::init_fff_params()
def->tooltip = L("If this is enabled, fan will never be disabled and will be kept running at least " def->tooltip = L("If this is enabled, fan will never be disabled and will be kept running at least "
"at its minimum speed. Useful for PLA, harmful for ABS."); "at its minimum speed. Useful for PLA, harmful for ABS.");
def->cli = "fan-always-on!"; def->cli = "fan-always-on!";
def->mode = comSimple;
def->default_value = new ConfigOptionBools { false }; def->default_value = new ConfigOptionBools { false };
def = this->add("fan_below_layer_time", coInts); def = this->add("fan_below_layer_time", coInts);
@ -716,6 +723,7 @@ void PrintConfigDef::init_fff_params()
def->tooltip = L("This is only used in the Slic3r interface as a visual help."); def->tooltip = L("This is only used in the Slic3r interface as a visual help.");
def->cli = "filament-color=s@"; def->cli = "filament-color=s@";
def->gui_type = "color"; def->gui_type = "color";
def->mode = comAdvanced;
def->default_value = new ConfigOptionStrings { "#29B2B2" }; def->default_value = new ConfigOptionStrings { "#29B2B2" };
def = this->add("filament_notes", coStrings); def = this->add("filament_notes", coStrings);
@ -870,6 +878,7 @@ void PrintConfigDef::init_fff_params()
def->sidetext = L("mm"); def->sidetext = L("mm");
def->cli = "filament-diameter=f@"; def->cli = "filament-diameter=f@";
def->min = 0; def->min = 0;
def->mode = comAdvanced;
def->default_value = new ConfigOptionFloats { 3. }; def->default_value = new ConfigOptionFloats { 3. };
def = this->add("filament_density", coFloats); def = this->add("filament_density", coFloats);
@ -880,6 +889,7 @@ void PrintConfigDef::init_fff_params()
def->sidetext = L("g/cm³"); def->sidetext = L("g/cm³");
def->cli = "filament-density=f@"; def->cli = "filament-density=f@";
def->min = 0; def->min = 0;
def->mode = comAdvanced;
def->default_value = new ConfigOptionFloats { 0. }; def->default_value = new ConfigOptionFloats { 0. };
def = this->add("filament_type", coStrings); def = this->add("filament_type", coStrings);
@ -1093,6 +1103,7 @@ void PrintConfigDef::init_fff_params()
def->sidetext = L("mm or %"); def->sidetext = L("mm or %");
def->cli = "first-layer-height=s"; def->cli = "first-layer-height=s";
def->ratio_over = "layer_height"; def->ratio_over = "layer_height";
def->mode = comAdvanced;
def->default_value = new ConfigOptionFloatOrPercent(0.35, false); def->default_value = new ConfigOptionFloatOrPercent(0.35, false);
def = this->add("first_layer_speed", coFloatOrPercent); def = this->add("first_layer_speed", coFloatOrPercent);
@ -1188,7 +1199,7 @@ void PrintConfigDef::init_fff_params()
def->enum_labels.push_back("Machinekit"); def->enum_labels.push_back("Machinekit");
def->enum_labels.push_back("Smoothie"); def->enum_labels.push_back("Smoothie");
def->enum_labels.push_back(L("No extrusion")); def->enum_labels.push_back(L("No extrusion"));
def->mode = comExpert; def->mode = comAdvanced;
def->default_value = new ConfigOptionEnum<GCodeFlavor>(gcfRepRap); def->default_value = new ConfigOptionEnum<GCodeFlavor>(gcfRepRap);
def = this->add("gcode_label_objects", coBool); def = this->add("gcode_label_objects", coBool);
@ -1199,7 +1210,7 @@ void PrintConfigDef::init_fff_params()
def->cli = "gcode-label-objects!"; def->cli = "gcode-label-objects!";
def->aliases = { "label_printed_objects" }; def->aliases = { "label_printed_objects" };
def->mode = comAdvanced; def->mode = comAdvanced;
def->default_value = new ConfigOptionBool(0); def->default_value = new ConfigOptionBool(1);
def = this->add("high_current_on_filament_swap", coBool); def = this->add("high_current_on_filament_swap", coBool);
def->label = L("High extruder current on filament swap"); def->label = L("High extruder current on filament swap");
@ -1240,7 +1251,7 @@ void PrintConfigDef::init_fff_params()
def->tooltip = L("Enables the creation of a support layer under the first solid layer. This allows you to use a lower infill ratio without compromising the top quality." def->tooltip = L("Enables the creation of a support layer under the first solid layer. This allows you to use a lower infill ratio without compromising the top quality."
" The dense infill is laid out with a 50% infill density."); " The dense infill is laid out with a 50% infill density.");
def->cli = "infill-dense!"; def->cli = "infill-dense!";
def->mode = comAdvanced; def->mode = comSimple;
def->default_value = new ConfigOptionBool(false); def->default_value = new ConfigOptionBool(false);
def = this->add("infill_not_connected", coBool); def = this->add("infill_not_connected", coBool);
@ -1248,7 +1259,7 @@ void PrintConfigDef::init_fff_params()
def->category = L("Infill"); def->category = L("Infill");
def->tooltip = L("If checked, the infill algorithm will try to not connect the lines near the infill. Can be useful for art or with high infill/perimeter overlap."); def->tooltip = L("If checked, the infill algorithm will try to not connect the lines near the infill. Can be useful for art or with high infill/perimeter overlap.");
def->cli = "infill-not-connected!"; def->cli = "infill-not-connected!";
def->mode = comAdvanced; def->mode = comExpert;
def->default_value = new ConfigOptionBool(false); def->default_value = new ConfigOptionBool(false);
def = this->add("infill_dense_algo", coEnum); def = this->add("infill_dense_algo", coEnum);
@ -1388,7 +1399,7 @@ void PrintConfigDef::init_fff_params()
def->label = L("Supports silent mode"); def->label = L("Supports silent mode");
def->category = L("Firmware"); def->category = L("Firmware");
def->tooltip = L("Set silent mode for the G-code flavor"); def->tooltip = L("Set silent mode for the G-code flavor");
def->mode = comExpert; def->mode = comAdvanced;
def->default_value = new ConfigOptionBool(true); def->default_value = new ConfigOptionBool(true);
def = this->add("fan_speedup_time", coFloat); def = this->add("fan_speedup_time", coFloat);
@ -1397,7 +1408,7 @@ void PrintConfigDef::init_fff_params()
def->tooltip = L("Move the M106 in the past by at least this delay and add the 'D' option to it to tell to the firware when the fan have to be at this speed." def->tooltip = L("Move the M106 in the past by at least this delay and add the 'D' option to it to tell to the firware when the fan have to be at this speed."
" It assume infinite acceleration for this time estimation, and only takes into account G1 and G0 moves. Use 0 to deactivate, negative to remove the 'D' option."); " It assume infinite acceleration for this time estimation, and only takes into account G1 and G0 moves. Use 0 to deactivate, negative to remove the 'D' option.");
def->cli = "fan-speedup-time=f"; def->cli = "fan-speedup-time=f";
def->mode = comExpert; def->mode = comAdvanced;
def->default_value = new ConfigOptionFloat(0); def->default_value = new ConfigOptionFloat(0);
const int machine_limits_opt_width = 70; const int machine_limits_opt_width = 70;
@ -1515,7 +1526,7 @@ void PrintConfigDef::init_fff_params()
def->sidetext = L("mm"); def->sidetext = L("mm");
def->cli = "max-layer-height=f@"; def->cli = "max-layer-height=f@";
def->min = 0; def->min = 0;
def->mode = comAdvanced; def->mode = comSimple;
def->default_value = new ConfigOptionFloats { 0. }; def->default_value = new ConfigOptionFloats { 0. };
def = this->add("max_print_speed", coFloat); def = this->add("max_print_speed", coFloat);
@ -1573,7 +1584,7 @@ void PrintConfigDef::init_fff_params()
def->cli = "min-fan-speed=i@"; def->cli = "min-fan-speed=i@";
def->min = 0; def->min = 0;
def->max = 100; def->max = 100;
def->mode = comAdvanced; def->mode = comSimple;
def->default_value = new ConfigOptionInts { 35 }; def->default_value = new ConfigOptionInts { 35 };
def = this->add("min_layer_height", coFloats); def = this->add("min_layer_height", coFloats);
@ -1584,7 +1595,7 @@ void PrintConfigDef::init_fff_params()
def->sidetext = L("mm"); def->sidetext = L("mm");
def->cli = "min-layer-height=f@"; def->cli = "min-layer-height=f@";
def->min = 0; def->min = 0;
def->mode = comAdvanced; def->mode = comSimple;
def->default_value = new ConfigOptionFloats { 0.07 }; def->default_value = new ConfigOptionFloats { 0.07 };
def = this->add("min_print_speed", coFloats); def = this->add("min_print_speed", coFloats);
@ -1623,6 +1634,7 @@ void PrintConfigDef::init_fff_params()
def->tooltip = L("This is the diameter of your extruder nozzle (for example: 0.5, 0.35 etc.)"); def->tooltip = L("This is the diameter of your extruder nozzle (for example: 0.5, 0.35 etc.)");
def->sidetext = L("mm"); def->sidetext = L("mm");
def->cli = "nozzle-diameter=f@"; def->cli = "nozzle-diameter=f@";
def->mode = comAdvanced;
def->default_value = new ConfigOptionFloats { 0.5 }; def->default_value = new ConfigOptionFloats { 0.5 };
def = this->add("host_type", coEnum); def = this->add("host_type", coEnum);
@ -1702,10 +1714,10 @@ void PrintConfigDef::init_fff_params()
def = this->add("no_perimeter_unsupported_algo", coEnum); def = this->add("no_perimeter_unsupported_algo", coEnum);
def->label = L("No perimeters on bridge areas"); def->label = L("No perimeters on bridge areas");
def->tooltip = L("Experimental option to remove perimeters where there is nothing under it and where a bridged infill should be better. " def->tooltip = L("Experimental option to remove perimeters where there is nothing under it and where a bridged infill should be better. "
"\nRemove perimeters: remove the unsupported periemter, let the bridge area as-is." "\n * Remove perimeters: remove the unsupported periemter, let the bridge area as-is."
"\nKeep only bridges: remove the unsupported periemter, kep only bridges that end in solid area." "\n * Keep only bridges: remove the unsupported periemter, kep only bridges that end in solid area."
"\nKeep bridges and overhangs: remove the unsupported periemter, keep only bridges that end in solid area, fill the rest with overhang perimeters+bridges." "\n * Keep bridges and overhangs: remove the unsupported periemter, keep only bridges that end in solid area, fill the rest with overhang perimeters+bridges."
"\nFill the voids with bridges: remove the unsupported periemter, draw bridges over the whole hole. !! can lead to problems with overhangs shape like /\\, consider carefully before using this option!" "\n * Fill the voids with bridges: remove the unsupported periemter, draw bridges over the whole hole. !! can lead to problems with overhangs shape like /\\, consider carefully before using this option!"
"\n!!Computationally intensive!!. "); "\n!!Computationally intensive!!. ");
def->cli = "no-perimeter-unsupported-algo=s"; def->cli = "no-perimeter-unsupported-algo=s";
def->enum_keys_map = &ConfigOptionEnum<NoPerimeterUnsupportedAlgo>::get_enum_values(); def->enum_keys_map = &ConfigOptionEnum<NoPerimeterUnsupportedAlgo>::get_enum_values();
@ -1797,7 +1809,7 @@ void PrintConfigDef::init_fff_params()
"Note that Slic3r may increase this number automatically when it detects " "Note that Slic3r may increase this number automatically when it detects "
"sloping surfaces which benefit from a higher number of perimeters " "sloping surfaces which benefit from a higher number of perimeters "
"if the Extra Perimeters option is enabled."); "if the Extra Perimeters option is enabled.");
def->sidetext = L("(minimum)"); def->sidetext = L("(minimum).");
def->cli = "perimeters=i"; def->cli = "perimeters=i";
def->aliases = { "perimeter_offsets" }; def->aliases = { "perimeter_offsets" };
def->min = 0; def->min = 0;
@ -1972,7 +1984,7 @@ void PrintConfigDef::init_fff_params()
"this additional amount of filament. This setting is rarely needed."); "this additional amount of filament. This setting is rarely needed.");
def->sidetext = L("mm"); def->sidetext = L("mm");
def->cli = "retract-restart-extra=f@"; def->cli = "retract-restart-extra=f@";
def->mode = comAdvanced; def->mode = comExpert;
def->default_value = new ConfigOptionFloats { 0. }; def->default_value = new ConfigOptionFloats { 0. };
def = this->add("retract_restart_extra_toolchange", coFloats); def = this->add("retract_restart_extra_toolchange", coFloats);
@ -2084,6 +2096,7 @@ void PrintConfigDef::init_fff_params()
def->sidetext = L("mm"); def->sidetext = L("mm");
def->cli = "skirt-distance=f"; def->cli = "skirt-distance=f";
def->min = 0; def->min = 0;
def->mode = comAdvanced;
def->default_value = new ConfigOptionFloat(6); def->default_value = new ConfigOptionFloat(6);
def = this->add("skirt_height", coInt); def = this->add("skirt_height", coInt);
@ -2103,7 +2116,7 @@ void PrintConfigDef::init_fff_params()
"to disable skirt completely."); "to disable skirt completely.");
def->cli = "skirts=i"; def->cli = "skirts=i";
def->min = 0; def->min = 0;
def->mode = comAdvanced; def->mode = comSimple;
def->default_value = new ConfigOptionInt(1); def->default_value = new ConfigOptionInt(1);
def = this->add("slowdown_below_layer_time", coInts); def = this->add("slowdown_below_layer_time", coInts);
@ -2294,14 +2307,14 @@ void PrintConfigDef::init_fff_params()
def->sidetext = L("mm"); def->sidetext = L("mm");
def->cli = "model-precision=f"; def->cli = "model-precision=f";
def->min = 0; def->min = 0;
def->mode = comExpert; def->mode = comAdvanced;
def->default_value = new ConfigOptionFloat(0.0001); def->default_value = new ConfigOptionFloat(0.0001);
def = this->add("single_extruder_multi_material", coBool); def = this->add("single_extruder_multi_material", coBool);
def->label = L("Single Extruder Multi Material"); def->label = L("Single Extruder Multi Material");
def->tooltip = L("The printer multiplexes filaments into a single hot end."); def->tooltip = L("The printer multiplexes filaments into a single hot end.");
def->cli = "single-extruder-multi-material!"; def->cli = "single-extruder-multi-material!";
def->mode = comExpert; def->mode = comAdvanced;
def->default_value = new ConfigOptionBool(false); def->default_value = new ConfigOptionBool(false);
def = this->add("single_extruder_multi_material_priming", coBool); def = this->add("single_extruder_multi_material_priming", coBool);
@ -2918,7 +2931,7 @@ void PrintConfigDef::init_fff_params()
"from the print bed, set this to -0.3 (or fix your endstop)."); "from the print bed, set this to -0.3 (or fix your endstop).");
def->sidetext = L("mm"); def->sidetext = L("mm");
def->cli = "z-offset=f"; def->cli = "z-offset=f";
def->mode = comAdvanced; def->mode = comExpert;
def->default_value = new ConfigOptionFloat(0); def->default_value = new ConfigOptionFloat(0);
def = this->add("bed_size_x", coFloat); def = this->add("bed_size_x", coFloat);

View File

@ -948,13 +948,9 @@ void TabPrint::build()
m_presets = &m_preset_bundle->prints; m_presets = &m_preset_bundle->prints;
Line line{ "", "" }; Line line{ "", "" };
load_initial_data(); load_initial_data();
auto page = add_options_page(_(L("Layers and perimeters")), "layers.png"); auto page = add_options_page(_(L("Perimeters & shell")), "perimeters_shell.png");
auto optgroup = page->new_optgroup(_(L("Layer height")));
optgroup->append_single_option_line("layer_height");
optgroup->append_single_option_line("first_layer_height");
optgroup->append_single_option_line("exact_last_layer_height");
optgroup = page->new_optgroup(_(L("Vertical shells"))); auto optgroup = page->new_optgroup(_(L("Vertical shells")));
optgroup->append_single_option_line("perimeters"); optgroup->append_single_option_line("perimeters");
optgroup->append_single_option_line("spiral_vase"); optgroup->append_single_option_line("spiral_vase");
@ -986,6 +982,7 @@ void TabPrint::build()
optgroup->append_single_option_line("no_perimeter_unsupported_algo"); optgroup->append_single_option_line("no_perimeter_unsupported_algo");
optgroup = page->new_optgroup(_(L("Advanced"))); optgroup = page->new_optgroup(_(L("Advanced")));
optgroup->append_single_option_line("gap_fill");
line = { _(L("Seam")), "" }; line = { _(L("Seam")), "" };
line.append_option(optgroup->get_option("seam_position")); line.append_option(optgroup->get_option("seam_position"));
line.append_option(optgroup->get_option("seam_travel")); line.append_option(optgroup->get_option("seam_travel"));
@ -996,18 +993,43 @@ void TabPrint::build()
line.append_option(optgroup->get_option("perimeter_loop_seam")); line.append_option(optgroup->get_option("perimeter_loop_seam"));
optgroup->append_line(line); optgroup->append_line(line);
page = add_options_page(_(L("Slicing")), "layers.png");
optgroup = page->new_optgroup(_(L("Layer height")));
optgroup->append_single_option_line("layer_height");
optgroup->append_single_option_line("first_layer_height");
//optgroup->append_single_option_line("exact_last_layer_height");
optgroup = page->new_optgroup(_(L("Filtering")));
optgroup->append_single_option_line("resolution");
optgroup->append_single_option_line("model_precision");
optgroup->append_single_option_line("slice_closing_radius");
optgroup = page->new_optgroup(_(L("Modifying slices")));
line = { _(L("Curve smoothing")), "" };
line.append_option(optgroup->get_option("curve_smoothing_precision"));
line.append_option(optgroup->get_option("curve_smoothing_angle"));
optgroup->append_line(line);
line = { _(L("XY compensation")), "" };
line.append_option(optgroup->get_option("xy_size_compensation"));
line.append_option(optgroup->get_option("elefant_foot_compensation"));
line.append_option(optgroup->get_option("hole_size_compensation"));
optgroup->append_line(line);
optgroup = page->new_optgroup(_(L("Other")));
optgroup->append_single_option_line("clip_multipart_objects");
page = add_options_page(_(L("Infill")), "infill.png"); page = add_options_page(_(L("Infill")), "infill.png");
optgroup = page->new_optgroup(_(L("Infill"))); optgroup = page->new_optgroup(_(L("Infill")));
optgroup->append_single_option_line("fill_density"); optgroup->append_single_option_line("fill_density");
line = { _(L("Fill internal")), "" }; optgroup->append_single_option_line("fill_pattern");
line.append_option(optgroup->get_option("fill_pattern")); line = { _(L("External patterns")), "" };
line.append_option(optgroup->get_option("infill_not_connected"));
optgroup->append_line(line);
line = { _(L("Fill external")), "" };
line.append_option(optgroup->get_option("top_fill_pattern")); line.append_option(optgroup->get_option("top_fill_pattern"));
line.append_option(optgroup->get_option("bottom_fill_pattern")); line.append_option(optgroup->get_option("bottom_fill_pattern"));
optgroup->append_line(line); optgroup->append_line(line);
optgroup->append_single_option_line("solid_fill_pattern"); optgroup->append_single_option_line("solid_fill_pattern");
optgroup->append_single_option_line("infill_not_connected");
optgroup = page->new_optgroup(_(L("Reducing printing time"))); optgroup = page->new_optgroup(_(L("Reducing printing time")));
optgroup->append_single_option_line("infill_every_layers"); optgroup->append_single_option_line("infill_every_layers");
optgroup->append_single_option_line("infill_only_where_needed"); optgroup->append_single_option_line("infill_only_where_needed");
@ -1029,7 +1051,6 @@ void TabPrint::build()
optgroup->append_line(line); optgroup->append_line(line);
optgroup->append_single_option_line("only_retract_when_crossing_perimeters"); optgroup->append_single_option_line("only_retract_when_crossing_perimeters");
optgroup->append_single_option_line("infill_first"); optgroup->append_single_option_line("infill_first");
optgroup->append_single_option_line("gap_fill");
page = add_options_page(_(L("Skirt and brim")), "box.png"); page = add_options_page(_(L("Skirt and brim")), "box.png");
optgroup = page->new_optgroup(_(L("Skirt"))); optgroup = page->new_optgroup(_(L("Skirt")));
@ -1121,53 +1142,7 @@ void TabPrint::build()
optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope_negative"); optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope_negative");
#endif /* HAS_PRESSURE_EQUALIZER */ #endif /* HAS_PRESSURE_EQUALIZER */
page = add_options_page(_(L("Multiple Extruders")), "funnel.png"); page = add_options_page(_(L("Width & flow")), "width.png");
optgroup = page->new_optgroup(_(L("Extruders")));
optgroup->append_single_option_line("perimeter_extruder");
optgroup->append_single_option_line("infill_extruder");
optgroup->append_single_option_line("solid_infill_extruder");
optgroup->append_single_option_line("support_material_extruder");
optgroup->append_single_option_line("support_material_interface_extruder");
optgroup = page->new_optgroup(_(L("Ooze prevention")));
optgroup->append_single_option_line("ooze_prevention");
optgroup->append_single_option_line("standby_temperature_delta");
optgroup = page->new_optgroup(_(L("Wipe tower")));
optgroup->append_single_option_line("wipe_tower");
line = { _(L("Wipe tower position")), "" };
line.append_option(optgroup->get_option("wipe_tower_x"));
line.append_option(optgroup->get_option("wipe_tower_y"));
optgroup->append_line(line);
optgroup->append_single_option_line("wipe_tower_width");
optgroup->append_single_option_line("wipe_tower_rotation_angle");
optgroup->append_single_option_line("wipe_tower_bridging");
optgroup->append_single_option_line("single_extruder_multi_material_priming");
optgroup = page->new_optgroup(_(L("Advanced")));
optgroup->append_single_option_line("interface_shells");
page = add_options_page(_(L("Slicing")), "layers.png");
optgroup = page->new_optgroup(_(L("Filtering")));
optgroup->append_single_option_line("slice_closing_radius");
optgroup->append_single_option_line("resolution");
optgroup->append_single_option_line("model_precision");
optgroup = page->new_optgroup(_(L("Modifying")));
line = { _(L("Curve smoothing")), "" };
line.append_option(optgroup->get_option("curve_smoothing_precision"));
line.append_option(optgroup->get_option("curve_smoothing_angle"));
optgroup->append_line(line);
line = { _(L("XY compensation")), "" };
line.append_option(optgroup->get_option("xy_size_compensation"));
line.append_option(optgroup->get_option("elefant_foot_compensation"));
line.append_option(optgroup->get_option("hole_size_compensation"));
optgroup->append_line(line);
page = add_options_page(_(L("Advanced")), "wrench.png");
optgroup = page->new_optgroup(_(L("Extrusion width"))); optgroup = page->new_optgroup(_(L("Extrusion width")));
optgroup->append_single_option_line("extrusion_width"); optgroup->append_single_option_line("extrusion_width");
optgroup->append_single_option_line("first_layer_extrusion_width"); optgroup->append_single_option_line("first_layer_extrusion_width");
@ -1182,13 +1157,36 @@ void TabPrint::build()
optgroup->append_single_option_line("infill_overlap"); optgroup->append_single_option_line("infill_overlap");
optgroup = page->new_optgroup(_(L("Flow"))); optgroup = page->new_optgroup(_(L("Flow")));
line = { _(L("Bridge flow ratio")), "" }; line = { _(L("Flow ratio")), "" };
line.append_option(optgroup->get_option("bridge_flow_ratio")); line.append_option(optgroup->get_option("bridge_flow_ratio"));
line.append_option(optgroup->get_option("over_bridge_flow_ratio")); line.append_option(optgroup->get_option("over_bridge_flow_ratio"));
optgroup->append_line(line); optgroup->append_line(line);
optgroup = page->new_optgroup(_(L("Other"))); page = add_options_page(_(L("Multiple extruders")), "funnel.png");
optgroup->append_single_option_line("clip_multipart_objects"); optgroup = page->new_optgroup(_(L("Extruders")));
optgroup->append_single_option_line("perimeter_extruder");
optgroup->append_single_option_line("infill_extruder");
optgroup->append_single_option_line("solid_infill_extruder");
optgroup->append_single_option_line("support_material_extruder");
optgroup->append_single_option_line("support_material_interface_extruder");
optgroup = page->new_optgroup(_(L("Ooze prevention")));
optgroup->append_single_option_line("ooze_prevention");
optgroup->append_single_option_line("standby_temperature_delta");
optgroup = page->new_optgroup(_(L("Wipe tower")));
optgroup->append_single_option_line("wipe_tower");
line = { _(L("Wipe tower position")), "" };
line.append_option(optgroup->get_option("wipe_tower_x"));
line.append_option(optgroup->get_option("wipe_tower_y"));
optgroup->append_line(line);
optgroup->append_single_option_line("wipe_tower_width");
optgroup->append_single_option_line("wipe_tower_rotation_angle");
optgroup->append_single_option_line("wipe_tower_bridging");
optgroup->append_single_option_line("single_extruder_multi_material_priming");
optgroup = page->new_optgroup(_(L("Advanced")));
optgroup->append_single_option_line("interface_shells");
page = add_options_page(_(L("Output options")), "page_white_go.png"); page = add_options_page(_(L("Output options")), "page_white_go.png");
optgroup = page->new_optgroup(_(L("Sequential printing"))); optgroup = page->new_optgroup(_(L("Sequential printing")));
@ -1579,7 +1577,8 @@ void TabFilament::build()
optgroup->append_single_option_line("filament_type"); optgroup->append_single_option_line("filament_type");
optgroup->append_single_option_line("filament_soluble"); optgroup->append_single_option_line("filament_soluble");
optgroup = page->new_optgroup(_(L("Print speed override"))); optgroup = page->new_optgroup(_(L("Print speed override")));
optgroup->append_single_option_line("filament_max_wipe_tower_speed");
optgroup->append_single_option_line("filament_max_volumetric_speed"); optgroup->append_single_option_line("filament_max_volumetric_speed");
line = { "", "" }; line = { "", "" };
@ -1588,7 +1587,6 @@ void TabFilament::build()
return description_line_widget(parent, &m_volumetric_speed_description_line); return description_line_widget(parent, &m_volumetric_speed_description_line);
}; };
optgroup->append_line(line); optgroup->append_line(line);
optgroup->append_single_option_line("filament_max_wipe_tower_speed");
optgroup = page->new_optgroup(_(L("Toolchange parameters with single extruder MM printers"))); optgroup = page->new_optgroup(_(L("Toolchange parameters with single extruder MM printers")));
optgroup->append_single_option_line("filament_loading_speed_start"); optgroup->append_single_option_line("filament_loading_speed_start");
@ -1910,7 +1908,7 @@ void TabPrinter::build_fff()
def.label = L("Extruders"); def.label = L("Extruders");
def.tooltip = L("Number of extruders of the printer."); def.tooltip = L("Number of extruders of the printer.");
def.min = 1; def.min = 1;
def.mode = comExpert; def.mode = comAdvanced;
Option option(def, "extruders_count"); Option option(def, "extruders_count");
optgroup->append_single_option_line(option); optgroup->append_single_option_line(option);
optgroup->append_single_option_line("single_extruder_multi_material"); optgroup->append_single_option_line("single_extruder_multi_material");