From 73b1d1def5f14bbabbb3ed1ec8fa134e554513fc Mon Sep 17 00:00:00 2001 From: Ian Bassi Date: Mon, 17 Nov 2025 14:21:03 -0300 Subject: [PATCH] Reorder Calibrations list (#11389) * Reorder max volumetric speed calibration step Moved the max volumetric speed calibration step after temperature tower in the documentation and updated the calibration menu initialization in MainFrame.cpp to match the new order. * Update wiki image * Reorder flow rate and pressure advance calibration steps Updated documentation and GUI to list Pressure Advance calibration before Flow Rate calibration, reflecting the recommended calibration order. Adjusted menu item order in MainFrame.cpp and updated related documentation and image. --- doc/Home.md | 4 +- doc/calibration/Calibration.md | 14 +++---- doc/images/calibration.png | Bin 4835 -> 3856 bytes src/slic3r/GUI/MainFrame.cpp | 72 ++++++++++++++++----------------- 4 files changed, 45 insertions(+), 45 deletions(-) diff --git a/doc/Home.md b/doc/Home.md index 89e8e94ad1..2adfdffd95 100644 --- a/doc/Home.md +++ b/doc/Home.md @@ -136,13 +136,13 @@ OrcaSlicer is a powerful open source slicer for FFF (FDM) 3D Printers. This wiki ![tab_calibration_active](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/tab_calibration_active.svg?raw=true) The [Calibration Guide](Calibration) outlines Orca’s key calibration tests and their suggested order of execution. - [Temperature](temp-calib) -- [Flow Rate](flow-rate-calib) +- [Volumetric Speed](volumetric-speed-calib) - [Pressure Advance](pressure-advance-calib) - [Adaptive Pressure Advance Guide](adaptive-pressure-advance-calib) +- [Flow Rate](flow-rate-calib) - [Retraction](retraction-calib) - [Tolerance](tolerance-calib) - Advanced: - - [Volumetric Speed](volumetric-speed-calib) - [Cornering (Jerk & Junction Deviation)](cornering-calib) - [Input Shaping](input-shaping-calib) - [VFA](vfa-calib) diff --git a/doc/calibration/Calibration.md b/doc/calibration/Calibration.md index db8a9c83d6..e5e62da85f 100644 --- a/doc/calibration/Calibration.md +++ b/doc/calibration/Calibration.md @@ -17,9 +17,9 @@ The recommended order for calibration is as follows: temp-tower -2. **[Flow](flow-rate-calib):** Calibrate the flow rate to ensure that the correct amount of filament is being extruded. This is important for achieving accurate dimensions and good layer adhesion. +2. **[Max Volumetric Speed](volumetric-speed-calib):** Calibrate the maximum volumetric speed of the filament. This is important for ensuring that the printer can handle the flow rate of the filament without causing issues like under-extrusion. - flowcalibration-example + mvf_measurement_point 3. **[Pressure Advance](pressure-advance-calib):** Calibrate the pressure advance settings to improve print quality and reduce artifacts caused by pressure fluctuations in the nozzle. @@ -27,14 +27,14 @@ The recommended order for calibration is as follows: pa-tower -4. **[Retraction](retraction-calib):** Calibrate the retraction settings to minimize stringing and improve print quality. Doing this after Flow and Pressure Advance calibration is recommended, as it ensures that the printer is already set up for optimal extrusion. +4. **[Flow](flow-rate-calib):** Calibrate the flow rate to ensure that the correct amount of filament is being extruded. This is important for achieving accurate dimensions and good layer adhesion. + + flowcalibration-example + +5. **[Retraction](retraction-calib):** Calibrate the retraction settings to minimize stringing and improve print quality. Doing this after Flow and Pressure Advance calibration is recommended, as it ensures that the printer is already set up for optimal extrusion. retraction_test_print -5. **[Max Volumetric Speed](volumetric-speed-calib):** Calibrate the maximum volumetric speed of the filament. This is important for ensuring that the printer can handle the flow rate of the filament without causing issues such as under-extrusion or over-extrusion. - - mvf_measurement_point - 6. **[Cornering](cornering-calib):** Calibrate the Jerk/Junction Deviation settings to improve print quality and reduce artifacts caused by sharp corners and changes in direction. jd_second_print_measure diff --git a/doc/images/calibration.png b/doc/images/calibration.png index 06a0454f620d759db262c8ffa0218df19d0ba345..b26f203ff79d88149777ad5f367a7dc8cce28e8d 100644 GIT binary patch literal 3856 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 EUv>nI!~g&Q literal 4835 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 diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index c65d1a3ae3..3576d6caa1 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -3026,6 +3026,24 @@ void MainFrame::init_menubar_as_editor() }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); + // Max Volumetric Speed + append_menu_item(m_topbar->GetCalibMenu(), wxID_ANY, _L("Max flowrate"), _L("Max flowrate"), + [this](wxCommandEvent&) { + if (!m_vol_test_dlg) + m_vol_test_dlg = new MaxVolumetricSpeed_Test_Dlg((wxWindow*)this, wxID_ANY, m_plater); + m_vol_test_dlg->ShowModal(); + }, "", nullptr, + [this]() {return m_plater->is_view3D_shown();; }, this); + + // Pressure Advance + append_menu_item(m_topbar->GetCalibMenu(), wxID_ANY, _L("Pressure advance"), _L("Pressure advance"), + [this](wxCommandEvent&) { + if (!m_pa_calib_dlg) + m_pa_calib_dlg = new PA_Calibration_Dlg((wxWindow*)this, wxID_ANY, m_plater); + m_pa_calib_dlg->ShowModal(); + }, "", nullptr, + [this]() {return m_plater->is_view3D_shown();; }, this); + // Flow rate (with submenu) auto flowrate_menu = new wxMenu(); append_menu_item( @@ -3044,15 +3062,6 @@ void MainFrame::init_menubar_as_editor() [this]() {return m_plater->is_view3D_shown();; }, this); m_topbar->GetCalibMenu()->AppendSubMenu(flowrate_menu, _L("Flow rate")); - // Pressure Advance - append_menu_item(m_topbar->GetCalibMenu(), wxID_ANY, _L("Pressure advance"), _L("Pressure advance"), - [this](wxCommandEvent&) { - if (!m_pa_calib_dlg) - m_pa_calib_dlg = new PA_Calibration_Dlg((wxWindow*)this, wxID_ANY, m_plater); - m_pa_calib_dlg->ShowModal(); - }, "", nullptr, - [this]() {return m_plater->is_view3D_shown();; }, this); - // Retraction test append_menu_item(m_topbar->GetCalibMenu(), wxID_ANY, _L("Retraction test"), _L("Retraction test"), [this](wxCommandEvent&) { @@ -3062,15 +3071,6 @@ void MainFrame::init_menubar_as_editor() }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); - // Max Volumetric Speed - append_menu_item(m_topbar->GetCalibMenu(), wxID_ANY, _L("Max flowrate"), _L("Max flowrate"), - [this](wxCommandEvent&) { - if (!m_vol_test_dlg) - m_vol_test_dlg = new MaxVolumetricSpeed_Test_Dlg((wxWindow*)this, wxID_ANY, m_plater); - m_vol_test_dlg->ShowModal(); - }, "", nullptr, - [this]() {return m_plater->is_view3D_shown();; }, this); - // Cornering append_menu_item(m_topbar->GetCalibMenu(), wxID_ANY, _L("Cornering"), _L("Cornering calibration"), [this](wxCommandEvent&) { @@ -3144,6 +3144,24 @@ void MainFrame::init_menubar_as_editor() }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); + // Max Volumetric Speed + append_menu_item(calib_menu, wxID_ANY, _L("Max flowrate"), _L("Max flowrate"), + [this](wxCommandEvent&) { + if (!m_vol_test_dlg) + m_vol_test_dlg = new MaxVolumetricSpeed_Test_Dlg((wxWindow*)this, wxID_ANY, m_plater); + m_vol_test_dlg->ShowModal(); + }, "", nullptr, + [this]() {return m_plater->is_view3D_shown();; }, this); + + // Pressure Advance + append_menu_item(calib_menu, wxID_ANY, _L("Pressure advance"), _L("Pressure advance"), + [this](wxCommandEvent&) { + if (!m_pa_calib_dlg) + m_pa_calib_dlg = new PA_Calibration_Dlg((wxWindow*)this, wxID_ANY, m_plater); + m_pa_calib_dlg->ShowModal(); + }, "", nullptr, + [this]() {return m_plater->is_view3D_shown();; }, this); + // Flowrate (with submenu) auto flowrate_menu = new wxMenu(); append_menu_item(flowrate_menu, wxID_ANY, _L("Pass 1"), _L("Flow rate test - Pass 1"), @@ -3162,15 +3180,6 @@ void MainFrame::init_menubar_as_editor() [this](wxCommandEvent&) { if (m_plater) m_plater->calib_flowrate(true, 2); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); - // Pressure Advance - append_menu_item(calib_menu, wxID_ANY, _L("Pressure advance"), _L("Pressure advance"), - [this](wxCommandEvent&) { - if (!m_pa_calib_dlg) - m_pa_calib_dlg = new PA_Calibration_Dlg((wxWindow*)this, wxID_ANY, m_plater); - m_pa_calib_dlg->ShowModal(); - }, "", nullptr, - [this]() {return m_plater->is_view3D_shown();; }, this); - // Retraction test append_menu_item(calib_menu, wxID_ANY, _L("Retraction test"), _L("Retraction test"), [this](wxCommandEvent&) { @@ -3180,15 +3189,6 @@ void MainFrame::init_menubar_as_editor() }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); - // Max Volumetric Speed - append_menu_item(calib_menu, wxID_ANY, _L("Max flowrate"), _L("Max flowrate"), - [this](wxCommandEvent&) { - if (!m_vol_test_dlg) - m_vol_test_dlg = new MaxVolumetricSpeed_Test_Dlg((wxWindow*)this, wxID_ANY, m_plater); - m_vol_test_dlg->ShowModal(); - }, "", nullptr, - [this]() {return m_plater->is_view3D_shown();; }, this); - // Cornering append_menu_item(calib_menu, wxID_ANY, _L("Cornering"), _L("Cornering calibration"), [this](wxCommandEvent&) {