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();