ENH: add supertrack plate

Jira: none

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I89017c9933597ee035aa20ba3852db6f629f5e20
This commit is contained in:
qing.zhang 2024-09-02 17:14:38 +08:00 committed by Lane.Wei
parent 647bd4213c
commit 78572cbff8
34 changed files with 216 additions and 3 deletions

View File

@ -6,6 +6,12 @@
"filament_id": "GFT01", "filament_id": "GFT01",
"instantiation": "false", "instantiation": "false",
"description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"cool_plate_temp": [ "cool_plate_temp": [
"0" "0"
], ],

View File

@ -6,6 +6,12 @@
"filament_id": "GFG00", "filament_id": "GFG00",
"instantiation": "false", "instantiation": "false",
"description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.",
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"cool_plate_temp": [ "cool_plate_temp": [
"0" "0"
], ],

View File

@ -5,6 +5,12 @@
"from": "system", "from": "system",
"filament_id": "GFG02", "filament_id": "GFG02",
"instantiation": "false", "instantiation": "false",
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"cool_plate_temp": [ "cool_plate_temp": [
"0" "0"
], ],

View File

@ -6,6 +6,12 @@
"filament_id": "GFG01", "filament_id": "GFG01",
"instantiation": "false", "instantiation": "false",
"description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.",
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"cool_plate_temp": [ "cool_plate_temp": [
"0" "0"
], ],

View File

@ -5,6 +5,12 @@
"from": "system", "from": "system",
"filament_id": "GFG50", "filament_id": "GFG50",
"instantiation": "false", "instantiation": "false",
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"cool_plate_temp": [ "cool_plate_temp": [
"0" "0"
], ],

View File

@ -8,6 +8,12 @@
"additional_cooling_fan_speed": [ "additional_cooling_fan_speed": [
"0" "0"
], ],
"supertack_plate_temp": [
"45"
],
"supertack_plate_temp_initial_layer": [
"45"
],
"cool_plate_temp": [ "cool_plate_temp": [
"45" "45"
], ],

View File

@ -6,6 +6,12 @@
"filament_id": "GFS02", "filament_id": "GFS02",
"instantiation": "false", "instantiation": "false",
"description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.",
"supertack_plate_temp": [
"40"
],
"supertack_plate_temp_initial_layer": [
"40"
],
"cool_plate_temp": [ "cool_plate_temp": [
"40" "40"
], ],

View File

@ -6,6 +6,12 @@
"filament_id": "GFS00", "filament_id": "GFS00",
"instantiation": "false", "instantiation": "false",
"description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.",
"supertack_plate_temp": [
"40"
],
"supertack_plate_temp_initial_layer": [
"40"
],
"cool_plate_temp": [ "cool_plate_temp": [
"40" "40"
], ],

View File

@ -11,6 +11,12 @@
"close_fan_the_first_x_layers": [ "close_fan_the_first_x_layers": [
"1" "1"
], ],
"supertack_plate_temp": [
"35"
],
"supertack_plate_temp_initial_layer": [
"35"
],
"cool_plate_temp": [ "cool_plate_temp": [
"35" "35"
], ],

View File

@ -5,6 +5,12 @@
"from": "system", "from": "system",
"filament_id": "GFG99", "filament_id": "GFG99",
"instantiation": "false", "instantiation": "false",
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"cool_plate_temp": [ "cool_plate_temp": [
"0" "0"
], ],

View File

@ -5,6 +5,12 @@
"from": "system", "from": "system",
"filament_id": "GFG98", "filament_id": "GFG98",
"instantiation": "false", "instantiation": "false",
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"cool_plate_temp": [ "cool_plate_temp": [
"0" "0"
], ],

View File

@ -8,6 +8,12 @@
"additional_cooling_fan_speed": [ "additional_cooling_fan_speed": [
"0" "0"
], ],
"supertack_plate_temp": [
"45"
],
"supertack_plate_temp_initial_layer": [
"45"
],
"cool_plate_temp": [ "cool_plate_temp": [
"45" "45"
], ],

View File

@ -5,6 +5,12 @@
"from": "system", "from": "system",
"filament_id": "GFG60", "filament_id": "GFG60",
"instantiation": "false", "instantiation": "false",
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"cool_plate_temp": [ "cool_plate_temp": [
"0" "0"
], ],

View File

@ -7,6 +7,12 @@
"activate_air_filtration": [ "activate_air_filtration": [
"1" "1"
], ],
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"cool_plate_temp": [ "cool_plate_temp": [
"0" "0"
], ],

View File

@ -7,6 +7,12 @@
"activate_air_filtration": [ "activate_air_filtration": [
"1" "1"
], ],
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"cool_plate_temp": [ "cool_plate_temp": [
"0" "0"
], ],

View File

@ -10,6 +10,12 @@
"close_fan_the_first_x_layers": [ "close_fan_the_first_x_layers": [
"1" "1"
], ],
"supertack_plate_temp": [
"40"
],
"supertack_plate_temp_initial_layer": [
"40"
],
"cool_plate_temp": [ "cool_plate_temp": [
"40" "40"
], ],

View File

@ -15,6 +15,12 @@
"complete_print_exhaust_fan_speed": [ "complete_print_exhaust_fan_speed": [
"70" "70"
], ],
"supertack_plate_temp": [
"60"
],
"supertack_plate_temp_initial_layer": [
"60"
],
"cool_plate_temp": [ "cool_plate_temp": [
"60" "60"
], ],

View File

@ -16,6 +16,12 @@
"textured_plate_temp": [ "textured_plate_temp": [
"90" "90"
], ],
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"cool_plate_temp_initial_layer": [ "cool_plate_temp_initial_layer": [
"0" "0"
], ],

View File

@ -7,6 +7,12 @@
"activate_air_filtration": [ "activate_air_filtration": [
"1" "1"
], ],
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"cool_plate_temp": [ "cool_plate_temp": [
"0" "0"
], ],

View File

@ -4,6 +4,12 @@
"inherits": "fdm_filament_common", "inherits": "fdm_filament_common",
"from": "system", "from": "system",
"instantiation": "false", "instantiation": "false",
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"cool_plate_temp": [ "cool_plate_temp": [
"0" "0"
], ],

View File

@ -10,6 +10,12 @@
"close_fan_the_first_x_layers": [ "close_fan_the_first_x_layers": [
"1" "1"
], ],
"supertack_plate_temp": [
"35"
],
"supertack_plate_temp_initial_layer": [
"35"
],
"cool_plate_temp": [ "cool_plate_temp": [
"35" "35"
], ],

View File

@ -10,6 +10,12 @@
"close_fan_the_first_x_layers": [ "close_fan_the_first_x_layers": [
"1" "1"
], ],
"supertack_plate_temp": [
"35"
],
"supertack_plate_temp_initial_layer": [
"35"
],
"cool_plate_temp": [ "cool_plate_temp": [
"35" "35"
], ],

View File

@ -28,6 +28,12 @@
"textured_plate_temp": [ "textured_plate_temp": [
"55" "55"
], ],
"supertack_plate_temp": [
"35"
],
"supertack_plate_temp_initial_layer": [
"35"
],
"cool_plate_temp_initial_layer": [ "cool_plate_temp_initial_layer": [
"35" "35"
], ],

View File

@ -10,6 +10,12 @@
"close_fan_the_first_x_layers": [ "close_fan_the_first_x_layers": [
"1" "1"
], ],
"supertack_plate_temp": [
"35"
],
"supertack_plate_temp_initial_layer": [
"35"
],
"cool_plate_temp": [ "cool_plate_temp": [
"35" "35"
], ],

View File

@ -7,6 +7,12 @@
"activate_air_filtration": [ "activate_air_filtration": [
"1" "1"
], ],
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"cool_plate_temp": [ "cool_plate_temp": [
"0" "0"
], ],

View File

@ -7,6 +7,12 @@
"chamber_temperatures": [ "chamber_temperatures": [
"60" "60"
], ],
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"cool_plate_temp": [ "cool_plate_temp": [
"0" "0"
], ],

View File

@ -10,6 +10,12 @@
"close_fan_the_first_x_layers": [ "close_fan_the_first_x_layers": [
"1" "1"
], ],
"supertack_plate_temp": [
"45"
],
"supertack_plate_temp_initial_layer": [
"45"
],
"cool_plate_temp": [ "cool_plate_temp": [
"45" "45"
], ],

View File

@ -10,6 +10,12 @@
"close_fan_the_first_x_layers": [ "close_fan_the_first_x_layers": [
"1" "1"
], ],
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"cool_plate_temp": [ "cool_plate_temp": [
"30" "30"
], ],

View File

@ -1571,6 +1571,7 @@ enum BambuBedType {
bbtEngineeringPlate = 2, bbtEngineeringPlate = 2,
bbtHighTemperaturePlate = 3, bbtHighTemperaturePlate = 3,
bbtTexturedPEIPlate = 4, bbtTexturedPEIPlate = 4,
bbtSuperTackPlate = 5,
}; };
static BambuBedType to_bambu_bed_type(BedType type) static BambuBedType to_bambu_bed_type(BedType type)
@ -1584,6 +1585,8 @@ static BambuBedType to_bambu_bed_type(BedType type)
bambu_bed_type = bbtHighTemperaturePlate; bambu_bed_type = bbtHighTemperaturePlate;
else if (type == btPTE) else if (type == btPTE)
bambu_bed_type = bbtTexturedPEIPlate; bambu_bed_type = bbtTexturedPEIPlate;
else if (type == btSuperTack)
bambu_bed_type = bbtSuperTackPlate;
return bambu_bed_type; return bambu_bed_type;
} }

View File

@ -862,6 +862,7 @@ static std::vector<std::string> s_Preset_filament_options {
"nozzle_temperature", "nozzle_temperature_initial_layer", "nozzle_temperature", "nozzle_temperature_initial_layer",
// BBS // BBS
"cool_plate_temp", "eng_plate_temp", "hot_plate_temp", "textured_plate_temp", "cool_plate_temp_initial_layer", "eng_plate_temp_initial_layer", "hot_plate_temp_initial_layer","textured_plate_temp_initial_layer", "cool_plate_temp", "eng_plate_temp", "hot_plate_temp", "textured_plate_temp", "cool_plate_temp_initial_layer", "eng_plate_temp_initial_layer", "hot_plate_temp_initial_layer","textured_plate_temp_initial_layer",
"supertack_plate_temp_initial_layer", "supertack_plate_temp",
// "bed_type", // "bed_type",
//BBS:temperature_vitrification //BBS:temperature_vitrification
"temperature_vitrification", "reduce_fan_stop_start_freq", "slow_down_for_layer_cooling", "fan_min_speed", "temperature_vitrification", "reduce_fan_stop_start_freq", "slow_down_for_layer_cooling", "fan_min_speed",

View File

@ -121,6 +121,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
"accel_to_decel_enable", "accel_to_decel_enable",
"accel_to_decel_factor", "accel_to_decel_factor",
// BBS // BBS
"supertack_plate_temp_initial_layer",
"cool_plate_temp_initial_layer", "cool_plate_temp_initial_layer",
"eng_plate_temp_initial_layer", "eng_plate_temp_initial_layer",
"hot_plate_temp_initial_layer", "hot_plate_temp_initial_layer",
@ -231,6 +232,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|| opt_key == "single_extruder_multi_material" || opt_key == "single_extruder_multi_material"
|| opt_key == "nozzle_temperature" || opt_key == "nozzle_temperature"
// BBS // BBS
|| opt_key == "supertack_plate_temp"
|| opt_key == "cool_plate_temp" || opt_key == "cool_plate_temp"
|| opt_key == "eng_plate_temp" || opt_key == "eng_plate_temp"
|| opt_key == "hot_plate_temp" || opt_key == "hot_plate_temp"

View File

@ -322,6 +322,7 @@ CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(OverhangThresholdParticipatingCooling)
// BBS // BBS
static const t_config_enum_values s_keys_map_BedType = { static const t_config_enum_values s_keys_map_BedType = {
{ "Default Plate", btDefault }, { "Default Plate", btDefault },
{ "Supertack Plate", btSuperTack },
{ "Cool Plate", btPC }, { "Cool Plate", btPC },
{ "Engineering Plate", btEP }, { "Engineering Plate", btEP },
{ "High Temp Plate", btPEI }, { "High Temp Plate", btPEI },
@ -599,6 +600,16 @@ void PrintConfigDef::init_fff_params()
def->set_default_value(new ConfigOptionFloatOrPercent(0., false)); def->set_default_value(new ConfigOptionFloatOrPercent(0., false));
// BBS // BBS
def = this->add("supertack_plate_temp", coInts);
def->label = L("Other layers");
def->tooltip = L("Bed temperature for layers except the initial one. "
"Value 0 means the filament does not support to print on the Cool Plate");
def->sidetext = "°C";
def->full_label = L("Bed temperature");
def->min = 0;
def->max = 120;
def->set_default_value(new ConfigOptionInts{35});
def = this->add("cool_plate_temp", coInts); def = this->add("cool_plate_temp", coInts);
def->label = L("Other layers"); def->label = L("Other layers");
def->tooltip = L("Bed temperature for layers except the initial one. " def->tooltip = L("Bed temperature for layers except the initial one. "
@ -639,11 +650,21 @@ void PrintConfigDef::init_fff_params()
def->max = 120; def->max = 120;
def->set_default_value(new ConfigOptionInts{45}); def->set_default_value(new ConfigOptionInts{45});
def = this->add("supertack_plate_temp_initial_layer", coInts);
def->label = L("Initial layer");
def->full_label = L("Initial layer bed temperature");
def->tooltip = L("Bed temperature of the initial layer. "
"Value 0 means the filament does not support to print on the Bambu Cool Plate SuperTack");
def->sidetext = "°C";
def->min = 0;
def->max = 120;
def->set_default_value(new ConfigOptionInts{ 35 });
def = this->add("cool_plate_temp_initial_layer", coInts); def = this->add("cool_plate_temp_initial_layer", coInts);
def->label = L("Initial layer"); def->label = L("Initial layer");
def->full_label = L("Initial layer bed temperature"); def->full_label = L("Initial layer bed temperature");
def->tooltip = L("Bed temperature of the initial layer. " def->tooltip = L("Bed temperature of the initial layer. "
"Value 0 means the filament does not support to print on the Cool Plate"); "Value 0 means the filament does not support to print on the Bambu Cool Plate SuperTack");
def->sidetext = "°C"; def->sidetext = "°C";
def->min = 0; def->min = 0;
def->max = 120; def->max = 120;
@ -684,10 +705,12 @@ void PrintConfigDef::init_fff_params()
def->tooltip = L("Bed types supported by the printer"); def->tooltip = L("Bed types supported by the printer");
def->mode = comSimple; def->mode = comSimple;
def->enum_keys_map = &s_keys_map_BedType; def->enum_keys_map = &s_keys_map_BedType;
def->enum_values.emplace_back("Supertack Plate");
def->enum_values.emplace_back("Cool Plate"); def->enum_values.emplace_back("Cool Plate");
def->enum_values.emplace_back("Engineering Plate"); def->enum_values.emplace_back("Engineering Plate");
def->enum_values.emplace_back("High Temp Plate"); def->enum_values.emplace_back("High Temp Plate");
def->enum_values.emplace_back("Textured PEI Plate"); def->enum_values.emplace_back("Textured PEI Plate");
def->enum_labels.emplace_back(L("Bambu Cool Plate SuperTack"));
def->enum_labels.emplace_back(L("Cool Plate / PLA Plate")); def->enum_labels.emplace_back(L("Cool Plate / PLA Plate"));
def->enum_labels.emplace_back(L("Engineering Plate")); def->enum_labels.emplace_back(L("Engineering Plate"));
def->enum_labels.emplace_back(L("Smooth PEI Plate / High Temp Plate")); def->enum_labels.emplace_back(L("Smooth PEI Plate / High Temp Plate"));

View File

@ -226,6 +226,7 @@ enum OverhangThresholdParticipatingCooling {
// BBS // BBS
enum BedType { enum BedType {
btDefault = 0, btDefault = 0,
btSuperTack,
btPC, btPC,
btEP, btEP,
btPEI, btPEI,
@ -284,6 +285,9 @@ static std::string bed_type_to_gcode_string(const BedType type)
std::string type_str; std::string type_str;
switch (type) { switch (type) {
case btSuperTack:
type_str = "supertack_plate";
break;
case btPC: case btPC:
type_str = "cool_plate"; type_str = "cool_plate";
break; break;
@ -306,6 +310,9 @@ static std::string bed_type_to_gcode_string(const BedType type)
static std::string get_bed_temp_key(const BedType type) static std::string get_bed_temp_key(const BedType type)
{ {
if (type == btSuperTack)
return "supertack_plate_temp";
if (type == btPC) if (type == btPC)
return "cool_plate_temp"; return "cool_plate_temp";
@ -323,6 +330,9 @@ static std::string get_bed_temp_key(const BedType type)
static std::string get_bed_temp_1st_layer_key(const BedType type) static std::string get_bed_temp_1st_layer_key(const BedType type)
{ {
if (type == btSuperTack)
return "supertack_plate_temp_initial_layer";
if (type == btPC) if (type == btPC)
return "cool_plate_temp_initial_layer"; return "cool_plate_temp_initial_layer";
@ -994,9 +1004,11 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE(
((ConfigOptionString, bed_custom_model)) ((ConfigOptionString, bed_custom_model))
((ConfigOptionEnum<BedType>, curr_bed_type)) ((ConfigOptionEnum<BedType>, curr_bed_type))
((ConfigOptionInts, cool_plate_temp)) ((ConfigOptionInts, cool_plate_temp))
((ConfigOptionInts, supertack_plate_temp))
((ConfigOptionInts, eng_plate_temp)) ((ConfigOptionInts, eng_plate_temp))
((ConfigOptionInts, hot_plate_temp)) // hot is short for high temperature ((ConfigOptionInts, hot_plate_temp)) // hot is short for high temperature
((ConfigOptionInts, textured_plate_temp)) ((ConfigOptionInts, textured_plate_temp))
((ConfigOptionInts, supertack_plate_temp_initial_layer))
((ConfigOptionInts, cool_plate_temp_initial_layer)) ((ConfigOptionInts, cool_plate_temp_initial_layer))
((ConfigOptionInts, eng_plate_temp_initial_layer)) ((ConfigOptionInts, eng_plate_temp_initial_layer))
((ConfigOptionInts, hot_plate_temp_initial_layer)) // hot is short for high temperature ((ConfigOptionInts, hot_plate_temp_initial_layer)) // hot is short for high temperature

View File

@ -3036,6 +3036,11 @@ void TabFilament::build()
line.append_option(optgroup->get_option("nozzle_temperature")); line.append_option(optgroup->get_option("nozzle_temperature"));
optgroup->append_line(line); optgroup->append_line(line);
line = {L("Bambu Cool Plate SuperTack"), L("Bed temperature when cool plate is installed. Value 0 means the filament does not support to print on the Bambu Cool Plate SuperTack")};
line.append_option(optgroup->get_option("supertack_plate_temp_initial_layer"));
line.append_option(optgroup->get_option("supertack_plate_temp"));
optgroup->append_line(line);
line = { L("Cool Plate / PLA Plate"), L("Bed temperature when cool plate is installed. Value 0 means the filament does not support to print on the Cool Plate") }; line = { L("Cool Plate / PLA Plate"), L("Bed temperature when cool plate is installed. Value 0 means the filament does not support to print on the Cool Plate") };
line.append_option(optgroup->get_option("cool_plate_temp_initial_layer")); line.append_option(optgroup->get_option("cool_plate_temp_initial_layer"));
line.append_option(optgroup->get_option("cool_plate_temp")); line.append_option(optgroup->get_option("cool_plate_temp"));
@ -3286,8 +3291,7 @@ void TabFilament::toggle_options()
bool support_chamber_temp_control = this->m_preset_bundle->printers.get_edited_preset().config.opt_bool("support_chamber_temp_control"); bool support_chamber_temp_control = this->m_preset_bundle->printers.get_edited_preset().config.opt_bool("support_chamber_temp_control");
toggle_line("chamber_temperatures", support_chamber_temp_control); toggle_line("chamber_temperatures", support_chamber_temp_control);
for (auto el : for (auto el : {"supertack_plate_temp", "supertack_plate_temp_initial_layer", "cool_plate_temp", "cool_plate_temp_initial_layer", "eng_plate_temp", "eng_plate_temp_initial_layer", "textured_plate_temp", "textured_plate_temp_initial_layer"})
{"cool_plate_temp", "cool_plate_temp_initial_layer", "eng_plate_temp", "eng_plate_temp_initial_layer", "textured_plate_temp", "textured_plate_temp_initial_layer"})
toggle_line(el, is_BBL_printer); toggle_line(el, is_BBL_printer);
} }