ENH: reduce 100% overhang wall speed to 10mm/s

The old speed 50mm/s is too high and cause some print quality problems.

Also change the display of overhang speeds to better adhere to the code.

jira: STUDIO-9641
Change-Id: I6efa981db5bf88a9cf5bb70abb443cdfa1783025
This commit is contained in:
Arthur 2025-01-13 15:27:08 +08:00 committed by lane.wei
parent 1ed2229128
commit 979fefffd5
34 changed files with 30 additions and 115 deletions

View File

@ -18,9 +18,6 @@
],
"sparse_infill_pattern": "gyroid",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.2 nozzle",
"Bambu Lab X1 0.2 nozzle",

View File

@ -8,9 +8,6 @@
"description": "Compared with the default profile of 0.2 mm nozzle, it has a smaller layer height, and results in minimal layer lines and higher printing quality, but shorter printing time.",
"elefant_foot_compensation": "0.15",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.2 nozzle",
"Bambu Lab X1 0.2 nozzle",

View File

@ -6,9 +6,6 @@
"setting_id": "GP001",
"instantiation": "true",
"description": "Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer height, and results in almost negligible layer lines and longer printing time.",
"overhang_totally_speed": [
"50"
],
"smooth_coefficient": "150",
"compatible_printers": [
"Bambu Lab X1 Carbon 0.4 nozzle",

View File

@ -18,9 +18,6 @@
],
"sparse_infill_pattern": "gyroid",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.2 nozzle",
"Bambu Lab X1 0.2 nozzle",

View File

@ -32,9 +32,6 @@
"150"
],
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.4 nozzle",
"Bambu Lab X1 0.4 nozzle",

View File

@ -8,9 +8,6 @@
"description": "Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer height, and results in almost invisible layer lines and higher printing quality, but shorter printing time.",
"elefant_foot_compensation": "0.15",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.2 nozzle",
"Bambu Lab X1 0.2 nozzle",

View File

@ -18,9 +18,6 @@
],
"sparse_infill_pattern": "gyroid",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.2 nozzle",
"Bambu Lab X1 0.2 nozzle",

View File

@ -8,9 +8,6 @@
"description": "It has a small layer height, and results in almost negligible layer lines and high printing quality. It is suitable for most general printing cases.",
"elefant_foot_compensation": "0.15",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.2 nozzle",
"Bambu Lab X1 0.2 nozzle",

View File

@ -7,9 +7,6 @@
"instantiation": "true",
"description": "Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer height, and results in almost negligible layer lines and higher printing quality, but longer printing time.",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.4 nozzle",
"Bambu Lab X1 0.4 nozzle",

View File

@ -32,9 +32,6 @@
"150"
],
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.4 nozzle",
"Bambu Lab X1 0.4 nozzle",

View File

@ -8,9 +8,6 @@
"description": "Compared with the default profile of a 0.2 mm nozzle, it has a slightly bigger layer height, and results in almost negligible layer lines, and slightly shorter printing time.",
"elefant_foot_compensation": "0.15",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.2 nozzle",
"Bambu Lab X1 0.2 nozzle",

View File

@ -8,9 +8,6 @@
"description": "Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer height, and results in slightly visible layer lines, but shorter printing time.",
"elefant_foot_compensation": "0.15",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.2 nozzle",
"Bambu Lab X1 0.2 nozzle",

View File

@ -32,9 +32,6 @@
"150"
],
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.4 nozzle",
"Bambu Lab X1 0.4 nozzle",

View File

@ -7,9 +7,6 @@
"instantiation": "true",
"description": "Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer height, and results in less apparent layer lines and higher printing quality, but longer printing time.",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.4 nozzle",
"Bambu Lab X1 0.4 nozzle",

View File

@ -8,9 +8,6 @@
"description": "Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer height, and results in less apparent layer lines and higher printing quality, but longer printing time.",
"elefant_foot_compensation": "0.15",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.6 nozzle",
"Bambu Lab X1 0.6 nozzle",

View File

@ -7,9 +7,6 @@
"instantiation": "true",
"description": "It has a general layer height, and results in general layer lines and printing quality. It is suitable for most general printing cases.",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.4 nozzle",
"Bambu Lab X1 0.4 nozzle",

View File

@ -10,9 +10,6 @@
"60"
],
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"sparse_infill_density": "25%",
"wall_loops": "6",
"compatible_printers": [

View File

@ -7,9 +7,6 @@
"instantiation": "true",
"description": "Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer height, and results in more apparent layer lines and lower printing quality, but slightly shorter printing time.",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.4 nozzle",
"Bambu Lab X1 0.4 nozzle",

View File

@ -8,9 +8,6 @@
"description": "Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer height, and results in less apparent layer lines and slight higher printing quality, but longer printing time.",
"elefant_foot_compensation": "0.15",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.6 nozzle",
"Bambu Lab X1 0.6 nozzle",

View File

@ -8,9 +8,6 @@
"description": "Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer height, and results in less but still apparent layer lines and slightly higher printing quality, but longer printing time in some printing cases.",
"elefant_foot_compensation": "0.15",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.8 nozzle",
"Bambu Lab X1 0.8 nozzle",

View File

@ -7,9 +7,6 @@
"instantiation": "true",
"description": "Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer height, and results in more apparent layer lines and lower printing quality, but shorter printing time.",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.4 nozzle",
"Bambu Lab X1 0.4 nozzle",

View File

@ -8,9 +8,6 @@
"description": "It has a big layer height, and results in apparent layer lines and ordinary printing quality and printing time.",
"elefant_foot_compensation": "0.15",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.6 nozzle",
"Bambu Lab P1S 0.6 nozzle",

View File

@ -10,9 +10,6 @@
"sparse_infill_density": "25%",
"wall_loops": "4",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.6 nozzle",
"Bambu Lab X1 0.6 nozzle",

View File

@ -8,9 +8,6 @@
"description": "Compared with the default profile of a 0.8 mm nozzle, it has a slightly smaller layer height, and results in slightly less but still apparent layer lines and slightly higher printing quality, but longer printing time in some printing cases.",
"elefant_foot_compensation": "0.15",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.8 nozzle",
"Bambu Lab X1 0.8 nozzle",

View File

@ -8,9 +8,6 @@
"description": "Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer height, and results in more apparent layer lines and lower printing quality, but shorter printing time in some printing cases.",
"elefant_foot_compensation": "0.15",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.6 nozzle",
"Bambu Lab X1 0.6 nozzle",

View File

@ -8,9 +8,6 @@
"description": "It has a very big layer height, and results in very apparent layer lines, low printing quality and general printing time.",
"elefant_foot_compensation": "0.15",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.8 nozzle",
"Bambu Lab P1S 0.8 nozzle",

View File

@ -8,9 +8,6 @@
"description": "Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer height, and results in much more apparent layer lines and much lower printing quality, but shorter printing time in some printing cases.",
"elefant_foot_compensation": "0.15",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.6 nozzle",
"Bambu Lab X1 0.6 nozzle",

View File

@ -8,9 +8,6 @@
"description": "Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer height, and results in very apparent layer lines and much lower printing quality, but shorter printing time in some printing cases.",
"elefant_foot_compensation": "0.15",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.8 nozzle",
"Bambu Lab X1 0.8 nozzle",

View File

@ -8,9 +8,6 @@
"description": "Compared with the default profile of a 0.8 mm nozzle, it has a much bigger layer height, and results in extremely apparent layer lines and much lower printing quality, but much shorter printing time in some printing cases.",
"elefant_foot_compensation": "0.15",
"smooth_coefficient": "150",
"overhang_totally_speed": [
"50"
],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.8 nozzle",
"Bambu Lab X1 0.8 nozzle",

View File

@ -65,7 +65,7 @@
"120"
],
"overhang_totally_speed": [
"19"
"10"
],
"prime_tower_width": "50",
"print_sequence": "by layer",

View File

@ -101,10 +101,10 @@
"10"
],
"overhang_totally_speed": [
"26",
"26",
"26",
"26"
"10",
"10",
"10",
"10"
],
"print_extruder_id": [
"1",

View File

@ -4520,11 +4520,12 @@ double GCode::get_path_speed(const ExtrusionPath &path)
auto _mm3_per_mm = path.mm3_per_mm * double(m_curr_print->calib_mode() == CalibMode::Calib_Flow_Rate ? this->config().print_flow_ratio.value : 1);
// BBS: if not set the speed, then use the filament_max_volumetric_speed directly
double filament_max_volumetric_speed = FILAMENT_CONFIG(filament_max_volumetric_speed);
if (speed == 0) {
if (_mm3_per_mm > 0)
speed = FILAMENT_CONFIG(filament_max_volumetric_speed) / _mm3_per_mm;
speed = filament_max_volumetric_speed / _mm3_per_mm;
else
speed = FILAMENT_CONFIG(filament_max_volumetric_speed) / path.mm3_per_mm;
speed = filament_max_volumetric_speed / path.mm3_per_mm;
}
if (this->on_first_layer()) {
// BBS: for solid infill of initial layer, speed can be higher as long as
@ -4532,9 +4533,9 @@ double GCode::get_path_speed(const ExtrusionPath &path)
if (path.role() != erBottomSurface) speed = m_config.initial_layer_speed.get_at(cur_extruder_index());
}
if (FILAMENT_CONFIG(filament_max_volumetric_speed) > 0) {
double extrude_speed = FILAMENT_CONFIG(filament_max_volumetric_speed) / path.mm3_per_mm;
if (_mm3_per_mm > 0) extrude_speed = FILAMENT_CONFIG(filament_max_volumetric_speed) / _mm3_per_mm;
if (filament_max_volumetric_speed > 0) {
double extrude_speed = filament_max_volumetric_speed / path.mm3_per_mm;
if (_mm3_per_mm > 0) extrude_speed = filament_max_volumetric_speed / _mm3_per_mm;
// cap speed with max_volumetric_speed anyway (even if user is not using autospeed)
speed = std::min(speed, extrude_speed);
@ -5344,12 +5345,13 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description,
}
}
//BBS: if not set the speed, then use the filament_max_volumetric_speed directly
double filament_max_volumetric_speed = FILAMENT_CONFIG(filament_max_volumetric_speed);
if( speed == 0 )
{
if (_mm3_per_mm>0)
speed = FILAMENT_CONFIG(filament_max_volumetric_speed) / _mm3_per_mm;
speed = filament_max_volumetric_speed / _mm3_per_mm;
else
speed = FILAMENT_CONFIG(filament_max_volumetric_speed) / path.mm3_per_mm;
speed = filament_max_volumetric_speed / path.mm3_per_mm;
}
if (this->on_first_layer()) {
//BBS: for solid infill of initial layer, speed can be higher as long as
@ -5367,10 +5369,10 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description,
// m_config.max_volumetric_speed.value / path.mm3_per_mm
// );
//}
if (FILAMENT_CONFIG(filament_max_volumetric_speed) > 0) {
double extrude_speed = FILAMENT_CONFIG(filament_max_volumetric_speed) / path.mm3_per_mm;
if (filament_max_volumetric_speed > 0) {
double extrude_speed = filament_max_volumetric_speed / path.mm3_per_mm;
if (_mm3_per_mm > 0)
extrude_speed = FILAMENT_CONFIG(filament_max_volumetric_speed) / _mm3_per_mm;
extrude_speed = filament_max_volumetric_speed / _mm3_per_mm;
// cap speed with max_volumetric_speed anyway (even if user is not using autospeed)
speed = std::min(speed, extrude_speed);

View File

@ -1026,9 +1026,9 @@ void PrintConfigDef::init_fff_params()
def->set_default_value(new ConfigOptionBoolsNullable{ true });
def = this->add("overhang_1_4_speed", coFloats);
def->label = "(10%, 25%)";
def->label = "10%";
def->category = L("Speed");
def->full_label = "(10%, 25%)";
def->full_label = "10%";
//def->tooltip = L("Speed for line of wall which has degree of overhang between 10% and 25% line width. "
// "0 means using original wall speed");
def->sidetext = L("mm/s");
@ -1038,9 +1038,9 @@ void PrintConfigDef::init_fff_params()
def->set_default_value(new ConfigOptionFloatsNullable{0});
def = this->add("overhang_2_4_speed", coFloats);
def->label = "[25%, 50%)";
def->label = "25%";
def->category = L("Speed");
def->full_label = "[25%, 50%)";
def->full_label = "25%";
//def->tooltip = L("Speed for line of wall which has degree of overhang between 25% and 50% line width. "
// "0 means using original wall speed");
def->sidetext = L("mm/s");
@ -1050,9 +1050,9 @@ void PrintConfigDef::init_fff_params()
def->set_default_value(new ConfigOptionFloatsNullable{0});
def = this->add("overhang_3_4_speed", coFloats);
def->label = "[50%, 75%)";
def->label = "50%";
def->category = L("Speed");
def->full_label = "[50%, 75%)";
def->full_label = "50%";
//def->tooltip = L("Speed for line of wall which has degree of overhang between 50% and 75% line width. 0 means using original wall speed");
def->sidetext = L("mm/s");
def->min = 0;
@ -1061,9 +1061,9 @@ void PrintConfigDef::init_fff_params()
def->set_default_value(new ConfigOptionFloatsNullable{0});
def = this->add("overhang_4_4_speed", coFloats);
def->label = "[75%, 100%)";
def->label = "75%";
def->category = L("Speed");
def->full_label = "[75%, 100%)";
def->full_label = "75%";
// def->tooltip = L("Speed for line of wall which has degree of overhang between 75% and 100% line width. 0 means using original wall speed");
def->sidetext = L("mm/s");
def->min = 0;
@ -1072,14 +1072,15 @@ void PrintConfigDef::init_fff_params()
def->set_default_value(new ConfigOptionFloatsNullable{0});
def = this->add("overhang_totally_speed", coFloats);
def->label = L("over 100% wall (not bridge)");
def->label = L("100%");
def->category = L("Speed");
def->tooltip = L("Speed for line of wall which has degree of overhang over 100% line width, but the wall is not a bridge wall.");
def->full_label = "100%";
def->tooltip = L("Speed of 100% overhang wall which has 0 overlap with the lower layer.");
def->sidetext = L("mm/s");
def->min = 0;
def->mode = comAdvanced;
def->nullable = true;
def->set_default_value(new ConfigOptionFloatsNullable{ 24 });
def->set_default_value(new ConfigOptionFloatsNullable{ 10 });
def = this->add("bridge_speed", coFloats);
def->label = L("Bridge");
@ -7691,4 +7692,3 @@ float get_real_skirt_dist(const DynamicPrintConfig& cfg) {
#include <cereal/types/polymorphic.hpp>
CEREAL_REGISTER_TYPE(Slic3r::DynamicPrintConfig)
CEREAL_REGISTER_POLYMORPHIC_RELATION(Slic3r::DynamicConfig, Slic3r::DynamicPrintConfig)

View File

@ -2139,8 +2139,8 @@ void TabPrint::build()
line.append_option(optgroup->get_option("overhang_2_4_speed", 0));
line.append_option(optgroup->get_option("overhang_3_4_speed", 0));
line.append_option(optgroup->get_option("overhang_4_4_speed", 0));
line.append_option(optgroup->get_option("overhang_totally_speed", 0));
optgroup->append_line(line);
optgroup->append_single_option_line("overhang_totally_speed", "", 0);
optgroup->append_single_option_line("bridge_speed", "", 0);
optgroup->append_single_option_line("gap_infill_speed", "", 0);
optgroup->append_single_option_line("support_speed", "", 0);