ENH: add decel para

thanks SoftFever

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I95a1240c8d6ce7365055e840e526f279a55939e4
This commit is contained in:
qing.zhang 2023-06-16 19:42:43 +08:00 committed by Lane.Wei
parent 4b23192d6f
commit 346321379a
7 changed files with 47 additions and 2 deletions

View file

@ -175,6 +175,11 @@ std::string GCodeWriter::set_acceleration(unsigned int acceleration)
// This is new MarlinFirmware with separated print/retraction/travel acceleration.
// Use M204 P, we don't want to override travel acc by M204 S (which is deprecated anyway).
gcode << "M204 P" << acceleration;
} else if (FLAVOR_IS(gcfKlipper) && this->config.accel_to_decel_enable) {
gcode << "SET_VELOCITY_LIMIT ACCEL_TO_DECEL=" << acceleration * this->config.accel_to_decel_factor / 100;
if (GCodeWriter::full_gcode_comment) gcode << " ; adjust ACCEL_TO_DECEL";
gcode << "\nM204 S" << acceleration;
// Set max accel to decel to half of acceleration
} else {
// M204: Set default acceleration
gcode << "M204 S" << acceleration;

View file

@ -728,8 +728,10 @@ static std::vector<std::string> s_Preset_print_options {
#endif /* HAS_PRESSURE_EQUALIZER */
"inner_wall_speed", "outer_wall_speed", "sparse_infill_speed", "internal_solid_infill_speed",
"top_surface_speed", "support_speed", "support_object_xy_distance", "support_interface_speed",
"bridge_speed", "gap_infill_speed", "travel_speed", "travel_speed_z", "initial_layer_speed",
"outer_wall_acceleration", "initial_layer_acceleration", "top_surface_acceleration", "default_acceleration", "skirt_loops", "skirt_distance", "skirt_height", "draft_shield",
"bridge_speed", "gap_infill_speed", "travel_speed", "travel_speed_z", "initial_layer_speed", "outer_wall_acceleration",
"initial_layer_acceleration", "top_surface_acceleration", "default_acceleration",
"accel_to_decel_enable", "accel_to_decel_factor", "skirt_loops", "skirt_distance",
"skirt_height", "draft_shield",
"brim_width", "brim_object_gap", "brim_type", "enable_support", "support_type", "support_threshold_angle", "enforce_support_layers",
"raft_layers", "raft_first_layer_density", "raft_first_layer_expansion", "raft_contact_distance", "raft_expansion",
"support_base_pattern", "support_base_pattern_spacing", "support_expansion", "support_style",

View file

@ -107,6 +107,8 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
"initial_layer_acceleration",
"outer_wall_acceleration",
"top_surface_acceleration",
"accel_to_decel_enable",
"accel_to_decel_factor",
// BBS
"cool_plate_temp_initial_layer",
"eng_plate_temp_initial_layer",

View file

@ -1411,6 +1411,21 @@ void PrintConfigDef::init_fff_params()
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloat(300));
def = this->add("accel_to_decel_enable", coBool);
def->label = L("Enable accel_to_decel");
def->tooltip = L("Klipper's max_accel_to_decel will be adjusted automatically");
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionBool(false));
def = this->add("accel_to_decel_factor", coPercent);
def->label = L("accel_to_decel");
def->tooltip = L("Klipper's max_accel_to_decel will be adjusted to this % of acceleration");
def->sidetext = L("%");
def->min = 1;
def->max = 100;
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionPercent(50));
def = this->add("default_jerk", coFloat);
def->label = L("Default");
def->tooltip = L("Default jerk");

View file

@ -859,6 +859,8 @@ PRINT_CONFIG_CLASS_DEFINE(
((ConfigOptionEnum<NozzleType>, nozzle_type))
((ConfigOptionInt, nozzle_hrc))
((ConfigOptionBool, auxiliary_fan))
((ConfigOptionBool, accel_to_decel_enable))
((ConfigOptionPercent, accel_to_decel_factor))
)
// This object is mapped to Perl as Slic3r::Config::Print.