ENH: Add Textured PEI Plate

Change-Id: I08178e86a8ccb23844cca00bc9d265df7507f910
(cherry picked from commit 8f101963ecab1352e2721ead83928b327d6c0dbd)
This commit is contained in:
zhimin.zeng 2022-08-24 15:06:25 +08:00 committed by Lane.Wei
parent acb05dcf19
commit 0ab13a6abb
16 changed files with 109 additions and 4 deletions

View file

@ -20,12 +20,18 @@
"hot_plate_temp": [
"40"
],
"textured_plate_temp": [
"40"
],
"cool_plate_temp_initial_layer": [
"40"
],
"hot_plate_temp_initial_layer": [
"40"
],
"textured_plate_temp_initial_layer": [
"40"
],
"filament_cost": [
"29.99"
],

View file

@ -13,6 +13,9 @@
"hot_plate_temp" : [
"90"
],
"textured_plate_temp" : [
"90"
],
"cool_plate_temp_initial_layer" : [
"90"
],
@ -22,6 +25,9 @@
"hot_plate_temp_initial_layer" : [
"90"
],
"textured_plate_temp_initial_layer" : [
"90"
],
"slow_down_for_layer_cooling": [
"1"
],

View file

@ -13,6 +13,9 @@
"hot_plate_temp" : [
"90"
],
"textured_plate_temp" : [
"90"
],
"cool_plate_temp_initial_layer" : [
"90"
],
@ -22,6 +25,9 @@
"hot_plate_temp_initial_layer" : [
"90"
],
"textured_plate_temp_initial_layer" : [
"90"
],
"slow_down_for_layer_cooling": [
"1"
],

View file

@ -12,6 +12,9 @@
"hot_plate_temp" : [
"60"
],
"textured_plate_temp" : [
"60"
],
"cool_plate_temp_initial_layer" : [
"60"
],
@ -21,6 +24,9 @@
"hot_plate_temp_initial_layer" : [
"60"
],
"textured_plate_temp_initial_layer" : [
"60"
],
"overhang_fan_threshold": [
"95%"
],

View file

@ -13,6 +13,9 @@
"hot_plate_temp" : [
"100"
],
"textured_plate_temp" : [
"100"
],
"cool_plate_temp_initial_layer" : [
"0"
],
@ -22,6 +25,9 @@
"hot_plate_temp_initial_layer" : [
"100"
],
"textured_plate_temp_initial_layer" : [
"100"
],
"slow_down_for_layer_cooling": [
"1"
],

View file

@ -13,6 +13,9 @@
"hot_plate_temp" : [
"110"
],
"textured_plate_temp" : [
"110"
],
"cool_plate_temp_initial_layer" : [
"0"
],
@ -22,6 +25,9 @@
"hot_plate_temp_initial_layer" : [
"110"
],
"textured_plate_temp_initial_layer" : [
"110"
],
"slow_down_for_layer_cooling": [
"1"
],

View file

@ -13,6 +13,9 @@
"hot_plate_temp" : [
"80"
],
"textured_plate_temp" : [
"80"
],
"cool_plate_temp_initial_layer" : [
"60"
],
@ -22,6 +25,9 @@
"hot_plate_temp_initial_layer" : [
"80"
],
"textured_plate_temp_initial_layer" : [
"80"
],
"slow_down_for_layer_cooling": [
"1"
],

View file

@ -28,6 +28,9 @@
"hot_plate_temp" : [
"45"
],
"textured_plate_temp" : [
"45"
],
"cool_plate_temp_initial_layer" : [
"35"
],
@ -37,6 +40,9 @@
"hot_plate_temp_initial_layer" : [
"45"
],
"textured_plate_temp_initial_layer" : [
"45"
],
"nozzle_temperature_initial_layer": [
"220"
],

View file

@ -13,6 +13,9 @@
"hot_plate_temp" : [
"45"
],
"textured_plate_temp" : [
"45"
],
"cool_plate_temp_initial_layer" : [
"35"
],
@ -22,6 +25,9 @@
"hot_plate_temp_initial_layer" : [
"45"
],
"textured_plate_temp_initial_layer" : [
"45"
],
"fan_cooling_layer_time": [
"100"
],

View file

@ -13,6 +13,9 @@
"hot_plate_temp" : [
"35"
],
"textured_plate_temp" : [
"35"
],
"cool_plate_temp_initial_layer" : [
"30"
],
@ -22,6 +25,9 @@
"hot_plate_temp_initial_layer" : [
"35"
],
"textured_plate_temp_initial_layer" : [
"35"
],
"fan_cooling_layer_time": [
"100"
],

View file

@ -1262,6 +1262,7 @@ enum BambuBedType {
bbtCoolPlate = 1,
bbtEngineeringPlate = 2,
bbtHighTemperaturePlate = 3,
bbtTexturedPEIPlate = 4,
};
static BambuBedType to_bambu_bed_type(BedType type)
@ -1273,6 +1274,8 @@ static BambuBedType to_bambu_bed_type(BedType type)
bambu_bed_type = bbtEngineeringPlate;
else if (type == btPEI)
bambu_bed_type = bbtHighTemperaturePlate;
else if (type == btPTE)
bambu_bed_type = bbtTexturedPEIPlate;
return bambu_bed_type;
}

View file

@ -691,7 +691,7 @@ static std::vector<std::string> s_Preset_filament_options {
"filament_flow_ratio", "filament_density", "filament_cost", "filament_minimal_purge_on_wipe_tower",
"nozzle_temperature", "nozzle_temperature_initial_layer",
// BBS
"cool_plate_temp", "eng_plate_temp", "hot_plate_temp", "cool_plate_temp_initial_layer", "eng_plate_temp_initial_layer", "hot_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",
// "bed_type",
//BBS:temperature_vitrification
"temperature_vitrification", "reduce_fan_stop_start_freq", "slow_down_for_layer_cooling", "fan_min_speed",

View file

@ -96,6 +96,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
"cool_plate_temp_initial_layer",
"eng_plate_temp_initial_layer",
"hot_plate_temp_initial_layer",
"textured_plate_temp_initial_layer",
"gcode_add_line_number",
"layer_change_gcode",
"fan_min_speed",
@ -173,6 +174,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|| opt_key == "cool_plate_temp"
|| opt_key == "eng_plate_temp"
|| opt_key == "hot_plate_temp"
|| opt_key == "textured_plate_temp"
|| opt_key == "enable_prime_tower"
|| opt_key == "prime_tower_width"
|| opt_key == "prime_tower_brim_width"

View file

@ -213,7 +213,8 @@ static const t_config_enum_values s_keys_map_OverhangFanThreshold = {
static const t_config_enum_values s_keys_map_BedType = {
{ "Cool Plate", btPC },
{ "Engineering Plate", btEP },
{ "High Temp Plate", btPEI }
{ "High Temp Plate", btPEI },
{ "Textured PEI Plate", btPTE }
};
CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(BedType)
@ -367,6 +368,16 @@ void PrintConfigDef::init_fff_params()
def->max = 120;
def->set_default_value(new ConfigOptionInts{ 45 });
def = this->add("textured_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 Textured PEI Plate");
def->sidetext = L("°C");
def->full_label = L("Bed temperature");
def->min = 0;
def->max = 120;
def->set_default_value(new ConfigOptionInts{45});
def = this->add("cool_plate_temp_initial_layer", coInts);
def->label = L("Initial layer");
def->full_label = L("Initial layer bed temperature");
@ -397,6 +408,15 @@ void PrintConfigDef::init_fff_params()
def->max = 120;
def->set_default_value(new ConfigOptionInts{ 45 });
def = this->add("textured_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 Textured PEI Plate");
def->sidetext = L("°C");
def->max = 0;
def->max = 120;
def->set_default_value(new ConfigOptionInts{45});
def = this->add("curr_bed_type", coEnums);
def->label = L("Bed type");
@ -406,9 +426,11 @@ void PrintConfigDef::init_fff_params()
def->enum_values.emplace_back("Cool Plate");
def->enum_values.emplace_back("Engineering Plate");
def->enum_values.emplace_back("High Temp Plate");
def->enum_values.emplace_back("Textured PEI Plate");
def->enum_labels.emplace_back(L("Cool Plate"));
def->enum_labels.emplace_back(L("Engineering Plate"));
def->enum_labels.emplace_back(L("High Temp Plate"));
def->enum_labels.emplace_back(L("Textured PEI Plate"));
def->set_default_value(new ConfigOptionEnum<BedType>(btPC));
def = this->add("before_layer_change_gcode", coString);
@ -2283,8 +2305,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("independent_support_layer_height", coBool);
def->label = L("Independent support layer height");
def->category = L("Support");
def->tooltip = L("Support layer uses layer height independent with object layer. This is to support custom support gap,"
"but may cause extra filament switches if support is specified as different extruder with object");
def->tooltip = L("Support layer uses layer height independent with object layer. This is to support customizing z-gap and save print time.");
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionBool(true));

View file

@ -152,6 +152,7 @@ enum BedType {
btPC = 0,
btEP,
btPEI,
btPTE,
btCount
};
@ -177,6 +178,8 @@ static std::string bed_type_to_gcode_string(const BedType type)
case btPEI:
type_str = "high_temp_plate";
break;
case btPTE:
type_str = "frosted_plate";
default:
type_str = "unknown";
break;
@ -196,6 +199,9 @@ static std::string get_bed_temp_key(const BedType type)
if (type == btPEI)
return "hot_plate_temp";
if (type == btPTE)
return "textured_plate_temp";
return "";
}
@ -210,6 +216,9 @@ static std::string get_bed_temp_1st_layer_key(const BedType type)
if (type == btPEI)
return "hot_plate_temp_initial_layer";
if (type == btPTE)
return "textured_plate_temp_initial_layer";
return "";
}
@ -774,9 +783,11 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE(
((ConfigOptionInts, cool_plate_temp))
((ConfigOptionInts, eng_plate_temp))
((ConfigOptionInts, hot_plate_temp)) // hot is short for high temperature
((ConfigOptionInts, textured_plate_temp))
((ConfigOptionInts, cool_plate_temp_initial_layer))
((ConfigOptionInts, eng_plate_temp_initial_layer))
((ConfigOptionInts, hot_plate_temp_initial_layer)) // hot is short for high temperature
((ConfigOptionInts, textured_plate_temp_initial_layer))
((ConfigOptionBools, enable_overhang_bridge_fan))
((ConfigOptionInts, overhang_fan_speed))
((ConfigOptionEnumsGeneric, overhang_fan_threshold))

View file

@ -2468,6 +2468,11 @@ void TabFilament::build()
line.append_option(optgroup->get_option("hot_plate_temp"));
optgroup->append_line(line);
line = {L("Textured PEI Plate"), L("Bed temperature when Textured PEI Plate is installed. Value 0 means the filament does not support to print on the Textured PEI Plate")};
line.append_option(optgroup->get_option("textured_plate_temp_initial_layer"));
line.append_option(optgroup->get_option("textured_plate_temp"));
optgroup->append_line(line);
optgroup->m_on_change = [this, optgroup](t_config_option_key opt_key, boost::any value)
{
DynamicPrintConfig& filament_config = wxGetApp().preset_bundle->filaments.get_edited_preset().config;
@ -2482,6 +2487,9 @@ void TabFilament::build()
else if (opt_key == "hot_plate_temp" || opt_key == "hot_plate_temp_initial_layer") {
m_config_manipulation.check_bed_temperature_difference(BedType::btPEI, &filament_config);
}
else if (opt_key == "textured_plate_temp" || opt_key == "textured_plate_temp_initial_layer") {
m_config_manipulation.check_bed_temperature_difference(BedType::btPTE, &filament_config);
}
else if (opt_key == "nozzle_temperature") {
m_config_manipulation.check_nozzle_temperature_range(&filament_config);
}