From 68d2a9eedf3ea6d5969f6e4215ad2ad68d9c681c Mon Sep 17 00:00:00 2001 From: SoftFever Date: Sat, 8 Jun 2024 10:55:32 +0800 Subject: [PATCH] =?UTF-8?q?Fixed=20a=20minor=20bug=20where=20the=20maximum?= =?UTF-8?q?=20volumetric=20speed=20cap=20was=20slightly=E2=80=A6=20(#5629)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed a minor bug where the maximum volumetric speed cap was slightly off for the PA pattern calibration. --- src/libslic3r/calib.cpp | 2 +- src/slic3r/GUI/Plater.cpp | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/libslic3r/calib.cpp b/src/libslic3r/calib.cpp index e5e0923c7d..f3890dd6dc 100644 --- a/src/libslic3r/calib.cpp +++ b/src/libslic3r/calib.cpp @@ -37,7 +37,7 @@ double CalibPressureAdvance::e_per_mm( const Flow line_flow = Flow(line_width, layer_height, nozzle_diameter); const double filament_area = M_PI * std::pow(filament_diameter / 2, 2); - return line_flow.mm3_per_mm() / filament_area * print_flow_ratio; + return line_flow.mm3_per_mm() * print_flow_ratio / filament_area ; } std::string CalibPressureAdvance::convert_number_to_string(double num) const diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 4820003d94..ca8ed6a755 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -9360,11 +9360,6 @@ void Plater::_calib_pa_pattern(const Calib_Params& params) new ConfigOptionFloat(opt.second) ); } - print_config.set_key_value( - "outer_wall_speed", - new ConfigOptionFloat(CalibPressureAdvance::find_optimal_PA_speed( - wxGetApp().preset_bundle->full_config(), (fabs(print_config.get_abs_value("line_width", nozzle_diameter)) <= DBL_EPSILON)? (nozzle_diameter*1.125) : print_config.get_abs_value("line_width", nozzle_diameter), - print_config.get_abs_value("layer_height"), 0))); for (const auto opt : SuggestedConfigCalibPAPattern().nozzle_ratio_pairs) { print_config.set_key_value( @@ -9385,6 +9380,14 @@ void Plater::_calib_pa_pattern(const Calib_Params& params) new ConfigOptionEnum(SuggestedConfigCalibPAPattern().brim_pair.second) ); + // Orca: Set the outer wall speed to the optimal speed for the test, cap it with max volumetric speed + print_config.set_key_value("outer_wall_speed", new ConfigOptionFloat(CalibPressureAdvance::find_optimal_PA_speed( + wxGetApp().preset_bundle->full_config(), + (fabs(print_config.get_abs_value("line_width", nozzle_diameter)) <= DBL_EPSILON) ? + (nozzle_diameter * 1.125) : + print_config.get_abs_value("line_width", nozzle_diameter), + print_config.get_abs_value("layer_height"), 0))); + wxGetApp().get_tab(Preset::TYPE_PRINT)->update_dirty(); wxGetApp().get_tab(Preset::TYPE_FILAMENT)->update_dirty(); wxGetApp().get_tab(Preset::TYPE_PRINTER)->update_dirty();