diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index cbfeac576e..f36ec8124c 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -3713,7 +3713,10 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, jerk = m_config.inner_wall_jerk.value; } else if (m_config.top_surface_jerk.value > 0 && is_top_surface(path.role())) { jerk = m_config.top_surface_jerk.value; - } else { + } else if (m_config.infill_jerk.value > 0 && is_infill(path.role())) { + jerk = m_config.infill_jerk.value; + } + else { jerk = m_config.default_jerk.value; } gcode += m_writer.set_jerk_xy((unsigned int)floor(jerk + 0.5)); diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index dffc2dc701..4836142941 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -750,7 +750,7 @@ static std::vector s_Preset_print_options { "wall_distribution_count", "min_feature_size", "min_bead_width", // SoftFever "small_perimeter_speed", "small_perimeter_threshold","bridge_angle", "filter_out_gap_fill", "post_process", "travel_acceleration","inner_wall_acceleration", - "default_jerk", "outer_wall_jerk", "inner_wall_jerk", "top_surface_jerk", "initial_layer_jerk","travel_jerk", + "default_jerk", "outer_wall_jerk", "inner_wall_jerk", "infill_jerk", "top_surface_jerk", "initial_layer_jerk","travel_jerk", "top_solid_infill_flow_ratio","bottom_solid_infill_flow_ratio","only_one_wall_first_layer", "print_flow_ratio","seam_gap","role_based_wipe_speed","wipe_speed" diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 988cceea6b..5f0e9387e8 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -1484,6 +1484,14 @@ void PrintConfigDef::init_fff_params() def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(9)); + def = this->add("infill_jerk", coFloat); + def->label = L("Infill"); + def->tooltip = L("Jerk for infill"); + def->sidetext = L("mm/s"); + def->min = 1; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionFloat(9)); + def = this->add("initial_layer_jerk", coFloat); def->label = L("Initial layer"); def->tooltip = L("Jerk for initial layer"); diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index b53cdb0a7a..4ca65b5054 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -906,6 +906,7 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE( ((ConfigOptionFloat, default_jerk)) ((ConfigOptionFloat, outer_wall_jerk)) ((ConfigOptionFloat, inner_wall_jerk)) + ((ConfigOptionFloat, infill_jerk)) ((ConfigOptionFloat, top_surface_jerk)) ((ConfigOptionFloat, initial_layer_jerk)) ((ConfigOptionFloat, travel_jerk)) diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 9795abbf3f..213baa3537 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -548,7 +548,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co bool have_default_jerk = config->opt_float("default_jerk") > 0; - for (auto el : { "outer_wall_jerk", "inner_wall_jerk", "initial_layer_jerk", "top_surface_jerk","travel_jerk" }) + for (auto el : { "outer_wall_jerk", "inner_wall_jerk", "initial_layer_jerk", "top_surface_jerk","travel_jerk", "infill_jerk"}) toggle_field(el, have_default_jerk); bool have_skirt = config->opt_int("skirt_loops") > 0; diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 7a43796c36..e861083293 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -7913,10 +7913,9 @@ void Plater::calib_pa(bool line_method, bool bowden) { auto printer_config = &wxGetApp().preset_bundle->printers.get_edited_preset().config; auto filament_config = &wxGetApp().preset_bundle->filaments.get_edited_preset().config; filament_config->set_key_value("slow_down_layer_time", new ConfigOptionFloats{ 1.0f }); - print_config->set_key_value("default_jerk", new ConfigOptionFloat(1.0f)); + print_config->set_key_value("default_jerk", new ConfigOptionFloat(9.0f)); print_config->set_key_value("outer_wall_jerk", new ConfigOptionFloat(1.0f)); print_config->set_key_value("inner_wall_jerk", new ConfigOptionFloat(1.0f)); - print_config->set_key_value("top_surface_jerk", new ConfigOptionFloat(1.0f)); model().objects[0]->config.set_key_value("seam_position", new ConfigOptionEnum(spRear)); changed_objects({ 0 }); diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index adadf3bef8..1b5cff14fa 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1944,6 +1944,7 @@ void TabPrint::build() optgroup->append_single_option_line("default_jerk"); optgroup->append_single_option_line("outer_wall_jerk"); optgroup->append_single_option_line("inner_wall_jerk"); + optgroup->append_single_option_line("infill_jerk"); optgroup->append_single_option_line("top_surface_jerk"); optgroup->append_single_option_line("initial_layer_jerk"); optgroup->append_single_option_line("travel_jerk");