From ccd7b7fd7b381e334619ac4f9801e51dc29b4303 Mon Sep 17 00:00:00 2001 From: "salt.wei" Date: Sat, 8 Oct 2022 18:44:12 +0800 Subject: [PATCH] ENH: modify default value to support 3rd-party printer As title. Signed-off-by: salt.wei Change-Id: Id8be38a23e4fe4c19eb255ffb7cabf1befeae85b --- resources/profiles/BBL.json | 4 +- .../BBL/machine/fdm_bbl_3dp_001_common.json | 5 ++ .../BBL/process/fdm_process_bbl_common.json | 2 + src/libslic3r/PrintConfig.cpp | 69 ++++++++++--------- src/libslic3r/PrintConfig.hpp | 3 +- 5 files changed, 47 insertions(+), 36 deletions(-) diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index 1e9b23d53..911984769 100644 --- a/resources/profiles/BBL.json +++ b/resources/profiles/BBL.json @@ -1,7 +1,7 @@ { "name": "Bambulab", "url": "http://www.bambulab.com/Parameters/vendor/BBL.json", - "version": "01.02.01.02", + "version": "01.02.01.03", "force_update": "0", "description": "the initial version of BBL configurations", "machine_model_list": [ @@ -204,7 +204,7 @@ { "name": "Generic PLA @0.2 nozzle", "sub_path": "filament/Generic PLA @0.2 nozzle.json" - }, + }, { "name": "Generic PLA-CF", "sub_path": "filament/Generic PLA-CF.json" diff --git a/resources/profiles/BBL/machine/fdm_bbl_3dp_001_common.json b/resources/profiles/BBL/machine/fdm_bbl_3dp_001_common.json index c44ef83f2..bb4f64814 100644 --- a/resources/profiles/BBL/machine/fdm_bbl_3dp_001_common.json +++ b/resources/profiles/BBL/machine/fdm_bbl_3dp_001_common.json @@ -9,6 +9,7 @@ "256x256", "0x256" ], + "auxiliary_fan": "1", "bed_exclude_area": [ "0x0", "28x0", @@ -113,6 +114,9 @@ "extruder_clearance_radius": "65", "extruder_clearance_height_to_rod": "36", "extruder_clearance_height_to_lid": "140", + "nozzle_volume": [ + "118" + ], "nozzle_diameter": [ "0.4" ], @@ -149,6 +153,7 @@ "deretraction_speed": [ "30" ], + "nozzle_type": "hardened_steel", "silent_mode": "0", "single_extruder_multi_material": "1", "change_filament_gcode": "M620 S[next_extruder]A\nM204 S9000\n{if toolchange_count > 1}\nG17\nG2 Z{max_layer_z + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\n{endif}\nG1 Z{max_layer_z + 3.0} F1200\n\nG1 X70 F12000\nG1 Y245\nG1 Y265 F3000\nM400\nM106 P1 S0\n{if old_filament_temp > 0 && next_extruder < 255}M109 S[old_filament_temp]{endif}\nG1 X90 F3000\nG1 Y250 F4000\nG1 X100 F5000\nG1 X120 F12000\n\nG1 X20 Y50 F12000\nG1 Y-3\n\nT[next_extruder]\n\n; always use highest temperature to flush\nM400\nM109 S[nozzle_temperature_range_high]\n\n{if next_extruder < 255}\nG1 X54 F12000\nG1 Y265\n\nM400\n\nG92 E0\n{if flush_length_1 > 1}\n; FLUSH_START\n{if flush_length_1 > 23.7}\nG1 E23.7 F{old_filament_e_feedrate} ; do not need pulsatile flushing for start part\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\n{else}\nG1 E{flush_length_1} F{old_filament_e_feedrate}\n{endif}\n; FLUSH_END\nG1 E-[old_retract_length_toolchange] F1800\nG1 E[old_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_2 > 1}\n; FLUSH_START\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_3 > 1}\n; FLUSH_START\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_4 > 1}\n; FLUSH_START\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\n; FLUSH_END\n{endif}\n\nM400\nM109 S[new_filament_temp]\n\nM400\nM106 P1 S255\nM400 S3\nG1 X80 F15000\nG1 X60 F15000\nG1 X80 F15000\nG1 X60 F15000; shake to put down garbage\n\nG92 E0\nG1 E-[new_retract_length_toolchange] F1800\n\nG1 X70 F5000\nG1 X90 F3000\nG1 Y255 F4000\nG1 X100 F5000\nG1 Y265 F5000\nG1 X70 F10000\nG1 X100 F5000\nG1 X70 F10000\nG1 X100 F5000\nG1 X165 F15000; wipe and shake\nG1 Y256 ; move Y to aside, prevent collision\nM400\nG1 Z[z_after_toolchange] F3000\n{if layer_z <= (initial_layer_print_height + 0.001)}\nM204 S[initial_layer_acceleration]\n{else}\nM204 S[default_acceleration]\n{endif}\n{else}\nG1 X[x_after_toolchange] Y[y_after_toolchange] Z[z_after_toolchange] F12000\n{endif}\nM621 S[next_extruder]A", diff --git a/resources/profiles/BBL/process/fdm_process_bbl_common.json b/resources/profiles/BBL/process/fdm_process_bbl_common.json index e8574725d..a14a39b4a 100644 --- a/resources/profiles/BBL/process/fdm_process_bbl_common.json +++ b/resources/profiles/BBL/process/fdm_process_bbl_common.json @@ -51,6 +51,7 @@ "overhang_2_4_speed": "50", "overhang_3_4_speed": "30", "overhang_4_4_speed": "10", + "only_one_wall_top": "1", "inner_wall_line_width": "0.45", "inner_wall_speed": "150", "wall_loops": "2", @@ -90,6 +91,7 @@ "detect_thin_wall": "0", "top_surface_pattern": "monotonicline", "top_surface_line_width": "0.42", + "top_surface_acceleration": "2000", "top_surface_speed": "200", "top_shell_layers": "3", "top_shell_thickness": "0.8", diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index b844c05e5..5191bd0e8 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -256,6 +256,7 @@ static const t_config_enum_values s_keys_map_BedType = { CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(BedType) static t_config_enum_values s_keys_map_NozzleType { + { "undefine", int(NozzleType::ntUndefine) }, { "hardened_steel", int(NozzleType::ntHardenedSteel) }, { "stainless_steel",int(NozzleType::ntStainlessSteel) }, { "brass", int(NozzleType::ntBrass) } @@ -487,7 +488,7 @@ void PrintConfigDef::init_fff_params() "than bottom shell thickness, the bottom shell layers will be increased"); def->full_label = L("Bottom shell layers"); def->min = 0; - def->set_default_value(new ConfigOptionInt(2)); + def->set_default_value(new ConfigOptionInt(3)); def = this->add("bottom_shell_thickness", coFloat); def->label = L("Bottom shell thickness"); @@ -549,7 +550,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Only one wall on top surfaces"); def->category = L("Quality"); def->tooltip = L("Use only one wall on flat top surface, to give more space to the top infill pattern"); - def->set_default_value(new ConfigOptionBool(true)); + def->set_default_value(new ConfigOptionBool(false)); def = this->add("enable_overhang_speed", coBool); def->label = L("Slow down for overhang"); @@ -607,7 +608,7 @@ void PrintConfigDef::init_fff_params() def->sidetext = L("mm/s"); def->min = 0; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloat(60)); + def->set_default_value(new ConfigOptionFloat(25)); def = this->add("brim_width", coFloat); def->label = L("Brim width"); @@ -717,7 +718,7 @@ void PrintConfigDef::init_fff_params() def->sidetext = L("mm/s²"); def->min = 0; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloat(5000)); + def->set_default_value(new ConfigOptionFloat(500.0)); def = this->add("default_filament_profile", coStrings); def->label = L("Default filament profile"); @@ -773,7 +774,7 @@ void PrintConfigDef::init_fff_params() def->full_width = true; def->height = 12; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionString("M104 S0\n")); + def->set_default_value(new ConfigOptionString("M104 S0 ; turn off temperature\nG28 X0 ; home X axis\nM84 ; disable motors\n")); def = this->add("filament_end_gcode", coStrings); def->label = L("End G-code"); @@ -833,7 +834,7 @@ void PrintConfigDef::init_fff_params() def->sidetext = L("mm/s"); def->min = 0; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloat(120)); + def->set_default_value(new ConfigOptionFloat(60)); def = this->add("wall_infill_order", coEnum); def->label = L("Order of inner wall/outer wall/infil"); @@ -1135,7 +1136,7 @@ void PrintConfigDef::init_fff_params() def->sidetext = L("mm/s²"); def->min = 0; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloat(2000)); + def->set_default_value(new ConfigOptionFloat(500)); def = this->add("initial_layer_acceleration", coFloat); def->label = L("Initial layer"); @@ -1252,7 +1253,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Arc fitting"); def->tooltip = L("Enable this to get a G-code file which has G2 and G3 moves. " "And the fitting tolerance is same with resolution"); - def->mode = comDevelop; + def->mode = comAdvanced; def->set_default_value(new ConfigOptionBool(0)); // BBS def = this->add("gcode_add_line_number", coBool); @@ -1279,20 +1280,22 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("The metallic material of nozzle. This determines the abrasive resistance of nozzle, and " "what kind of filament can be printed"); def->enum_keys_map = &ConfigOptionEnum::get_enum_values(); + def->enum_values.push_back("undefine"); def->enum_values.push_back("hardened_steel"); def->enum_values.push_back("stainless_steel"); def->enum_values.push_back("brass"); + def->enum_labels.push_back(L("Undefine")); def->enum_labels.push_back(L("Hardened steel")); def->enum_labels.push_back(L("Stainless steel")); def->enum_labels.push_back(L("Brass")); - def->mode = comSimple; - def->set_default_value(new ConfigOptionEnum(ntHardenedSteel)); + def->mode = comDevelop; + def->set_default_value(new ConfigOptionEnum(ntUndefine)); def = this->add("auxiliary_fan", coBool); def->label = L("Auxiliary part cooling fan"); def->tooltip = L("Enable this option if machine has auxiliary part cooling fan"); - def->mode = comSimple; - def->set_default_value(new ConfigOptionBool(true)); + def->mode = comDevelop; + def->set_default_value(new ConfigOptionBool(false)); def = this->add("gcode_flavor", coEnum); def->label = L("G-code flavor"); @@ -1310,7 +1313,7 @@ void PrintConfigDef::init_fff_params() //def->enum_values.push_back("machinekit"); //def->enum_values.push_back("smoothie"); //def->enum_values.push_back("no-extrusion"); - def->enum_labels.push_back("Marlin"); + def->enum_labels.push_back("Marlin(legacy)"); //def->enum_labels.push_back("RepRap/Sprinter"); //def->enum_labels.push_back("RepRapFirmware"); //def->enum_labels.push_back("Repetier"); @@ -1322,8 +1325,8 @@ void PrintConfigDef::init_fff_params() //def->enum_labels.push_back("Machinekit"); //def->enum_labels.push_back("Smoothie"); //def->enum_labels.push_back(L("No extrusion")); - def->mode = comDevelop; - def->readonly = true; + def->mode = comAdvanced; + def->readonly = false; def->set_default_value(new ConfigOptionEnum(gcfMarlinLegacy)); //BBS @@ -1368,7 +1371,7 @@ void PrintConfigDef::init_fff_params() def->sidetext = L("mm/s"); def->min = 0; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloat(150)); + def->set_default_value(new ConfigOptionFloat(100)); def = this->add("inherits", coString); //def->label = L("Inherits profile"); @@ -1477,10 +1480,10 @@ void PrintConfigDef::init_fff_params() }; std::vector axes { // name, max_feedrate, max_acceleration, max_jerk - { "x", { 500., 200. }, { 9000., 1000. }, { 10. , 10. } }, - { "y", { 500., 200. }, { 9000., 1000. }, { 10. , 10. } }, + { "x", { 500., 200. }, { 1000., 1000. }, { 10. , 10. } }, + { "y", { 500., 200. }, { 1000., 1000. }, { 10. , 10. } }, { "z", { 12., 12. }, { 500., 200. }, { 0.2, 0.4 } }, - { "e", { 120., 120. }, { 10000., 5000. }, { 2.5, 2.5 } } + { "e", { 120., 120. }, { 5000., 5000. }, { 2.5, 2.5 } } }; for (const AxisDefault &axis : axes) { std::string axis_upper = boost::to_upper_copy(axis.name); @@ -1492,7 +1495,7 @@ void PrintConfigDef::init_fff_params() (void)L("Maximum speed Z"); (void)L("Maximum speed E"); def->category = L("Machine limits"); - def->readonly = true; + def->readonly = false; def->tooltip = (boost::format("Maximum speed of %1% axis") % axis_upper).str(); (void)L("Maximum X speed"); (void)L("Maximum Y speed"); @@ -1510,7 +1513,7 @@ void PrintConfigDef::init_fff_params() (void)L("Maximum acceleration Z"); (void)L("Maximum acceleration E"); def->category = L("Machine limits"); - def->readonly = true; + def->readonly = false; def->tooltip = (boost::format("Maximum acceleration of the %1% axis") % axis_upper).str(); (void)L("Maximum acceleration of the X axis"); (void)L("Maximum acceleration of the Y axis"); @@ -1528,7 +1531,7 @@ void PrintConfigDef::init_fff_params() (void)L("Maximum jerk Z"); (void)L("Maximum jerk E"); def->category = L("Machine limits"); - def->readonly = true; + def->readonly = false; def->tooltip = (boost::format("Maximum jerk of the %1% axis") % axis_upper).str(); (void)L("Maximum jerk of the X axis"); (void)L("Maximum jerk of the Y axis"); @@ -1570,8 +1573,8 @@ void PrintConfigDef::init_fff_params() // "as travel acceleration (M204 T)."); def->sidetext = L("mm/s²"); def->min = 0; - def->readonly = true; - def->mode = comDevelop; + def->readonly = false; + def->mode = comSimple; def->set_default_value(new ConfigOptionFloats{ 1500., 1250. }); @@ -1582,8 +1585,8 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("Maximum acceleration for retracting (M204 R)"); def->sidetext = L("mm/s²"); def->min = 0; - def->readonly = true; - def->mode = comDevelop; + def->readonly = false; + def->mode = comSimple; def->set_default_value(new ConfigOptionFloats{ 1500., 1250. }); // M204 T... [mm/sec^2] @@ -1689,7 +1692,7 @@ void PrintConfigDef::init_fff_params() def->sidetext = L("mm³"); def->mode = comDevelop; def->readonly = true; - def->set_default_value(new ConfigOptionFloat { 118 }); + def->set_default_value(new ConfigOptionFloat { 0.0 }); def = this->add("reduce_infill_retraction", coBool); def->label = L("Reduce infill retraction"); @@ -1697,7 +1700,7 @@ void PrintConfigDef::init_fff_params() "This can reduce times of retraction for complex model and save printing time, but make slicing and " "G-code generating slower"); def->mode = comAdvanced; - def->set_default_value(new ConfigOptionBool(true)); + def->set_default_value(new ConfigOptionBool(false)); def = this->add("ooze_prevention", coBool); def->label = L("Enable"); @@ -2003,7 +2006,7 @@ void PrintConfigDef::init_fff_params() def->sidetext = L("mm²"); def->min = 0; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloat(5)); + def->set_default_value(new ConfigOptionFloat(15)); def = this->add("solid_infill_filament", coInt); //def->label = L("Solid infill"); @@ -2079,7 +2082,7 @@ void PrintConfigDef::init_fff_params() def->full_width = true; def->height = 12; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionString("G28\nG1 Z10 F100\n")); + def->set_default_value(new ConfigOptionString("G28 ; home all axes\nG1 Z5 F5000 ; lift nozzle\n")); def = this->add("filament_start_gcode", coStrings); def->label = L("Start G-code"); @@ -2284,7 +2287,7 @@ void PrintConfigDef::init_fff_params() def->sidetext = L("mm"); def->min = 0; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloat(0)); + def->set_default_value(new ConfigOptionFloat(0.5)); //BBS def = this->add("support_bottom_interface_spacing", coFloat); @@ -2508,7 +2511,7 @@ void PrintConfigDef::init_fff_params() "than top shell thickness, the top shell layers will be increased"); def->full_label = L("Top solid layers"); def->min = 0; - def->set_default_value(new ConfigOptionInt(2)); + def->set_default_value(new ConfigOptionInt(4)); def = this->add("top_shell_thickness", coFloat); def->label = L("Top shell thickness"); @@ -2527,7 +2530,7 @@ void PrintConfigDef::init_fff_params() def->sidetext = L("mm/s"); def->min = 1; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloat(200)); + def->set_default_value(new ConfigOptionFloat(120)); def = this->add("travel_speed_z", coFloat); //def->label = L("Z travel"); diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index cebf28e8d..3fb8c7bb4 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -164,7 +164,8 @@ enum BedType { // BBS enum NozzleType { - ntHardenedSteel = 0, + ntUndefine = 0, + ntHardenedSteel, ntStainlessSteel, ntBrass, ntCount