mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-31 20:51:12 -06:00 
			
		
		
		
	FIX: add cali for 3rd party printer in mac
Change-Id: I62be98bcd6bb70c34aa83fcefe819200231bd33c (cherry picked from commit 543d751818d80892dd3371026987199e4768b8bc)
This commit is contained in:
		
							parent
							
								
									8f580895a7
								
							
						
					
					
						commit
						176c9053b5
					
				
					 2 changed files with 160 additions and 10 deletions
				
			
		|  | @ -2693,8 +2693,8 @@ void MainFrame::init_menubar_as_editor() | |||
|         m_topbar->GetCalibMenu()->AppendSubMenu(flowrate_menu, _L("Flow rate")); | ||||
|         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); | ||||
|                 //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); | ||||
|  | @ -2751,6 +2751,139 @@ void MainFrame::init_menubar_as_editor() | |||
|         m_menubar->Append(viewMenu, wxString::Format("&%s", _L("View"))); | ||||
|     //if (publishMenu)
 | ||||
|     //    m_menubar->Append(publishMenu, wxString::Format("&%s", _L("3D Models")));
 | ||||
| 
 | ||||
|         // SoftFever calibrations
 | ||||
|     auto calib_menu = new wxMenu(); | ||||
| 
 | ||||
|     // Temp
 | ||||
|     append_menu_item( | ||||
|         calib_menu, wxID_ANY, _L("Temperature"), _L("Temperature"), | ||||
|         [this](wxCommandEvent &) { | ||||
|             if (!m_temp_calib_dlg) | ||||
|                 m_temp_calib_dlg = new Temp_Calibration_Dlg((wxWindow *) this, wxID_ANY, m_plater); | ||||
|             m_temp_calib_dlg->ShowModal(); | ||||
|         }, | ||||
|         "", nullptr, | ||||
|         [this]() { | ||||
|             return m_plater->is_view3D_shown(); | ||||
|             ; | ||||
|         }, | ||||
|         this); | ||||
| 
 | ||||
|     // Flowrate
 | ||||
|     auto flowrate_menu = new wxMenu(); | ||||
|     append_menu_item( | ||||
|         flowrate_menu, wxID_ANY, _L("Pass 1"), _L("Flow rate test - Pass 1"), | ||||
|         [this](wxCommandEvent &) { | ||||
|             if (m_plater) m_plater->calib_flowrate(1); | ||||
|         }, | ||||
|         "", nullptr, | ||||
|         [this]() { | ||||
|             return m_plater->is_view3D_shown(); | ||||
|             ; | ||||
|         }, | ||||
|         this); | ||||
|     append_menu_item( | ||||
|         flowrate_menu, wxID_ANY, _L("Pass 2"), _L("Flow rate test - Pass 2"), | ||||
|         [this](wxCommandEvent &) { | ||||
|             if (m_plater) m_plater->calib_flowrate(2); | ||||
|         }, | ||||
|         "", nullptr, | ||||
|         [this]() { | ||||
|             return m_plater->is_view3D_shown(); | ||||
|             ; | ||||
|         }, | ||||
|         this); | ||||
|     append_submenu(calib_menu, flowrate_menu, wxID_ANY, _L("Flow rate"), _L("Flow rate"), "", [this]() { | ||||
|         return m_plater->is_view3D_shown(); | ||||
|         ; | ||||
|     }); | ||||
| 
 | ||||
|     // PA
 | ||||
|     append_menu_item( | ||||
|         calib_menu, wxID_ANY, _L("Pressure advance"), _L("Pressure advance"), | ||||
|         [this](wxCommandEvent &) { | ||||
|             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
 | ||||
|     append_menu_item( | ||||
|         calib_menu, wxID_ANY, _L("Retraction test"), _L("Retraction test"), | ||||
|         [this](wxCommandEvent &) { | ||||
|             if (!m_retraction_calib_dlg) m_retraction_calib_dlg = new Retraction_Test_Dlg((wxWindow *) this, wxID_ANY, m_plater); | ||||
|             m_retraction_calib_dlg->ShowModal(); | ||||
|         }, | ||||
|         "", nullptr, | ||||
|         [this]() { | ||||
|             return m_plater->is_view3D_shown(); | ||||
|             ; | ||||
|         }, | ||||
|         this); | ||||
| 
 | ||||
|     // Tolerance Test
 | ||||
|     append_menu_item( | ||||
|         calib_menu, wxID_ANY, _L("Orca Tolerance Test"), _L("Orca Tolerance Test"), | ||||
|         [this](wxCommandEvent &) { | ||||
|             m_plater->new_project(); | ||||
|             m_plater->add_model(false, Slic3r::resources_dir() + "/calib/tolerance_test/OrcaToleranceTest.stl"); | ||||
|         }, | ||||
|         "", nullptr, | ||||
|         [this]() { | ||||
|             return m_plater->is_view3D_shown(); | ||||
|             ; | ||||
|         }, | ||||
|         this); | ||||
| 
 | ||||
|     // Advance calibrations
 | ||||
|     auto advance_menu = new wxMenu(); | ||||
|     append_menu_item( | ||||
|         advance_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); | ||||
|     append_menu_item( | ||||
|         advance_menu, wxID_ANY, _L("VFA"), _L("VFA"), | ||||
|         [this](wxCommandEvent &) { | ||||
|             if (!m_vfa_test_dlg) m_vfa_test_dlg = new VFA_Test_Dlg((wxWindow *) this, wxID_ANY, m_plater); | ||||
|             m_vfa_test_dlg->ShowModal(); | ||||
|         }, | ||||
|         "", nullptr, | ||||
|         [this]() { | ||||
|             return m_plater->is_view3D_shown(); | ||||
|             ; | ||||
|         }, | ||||
|         this); | ||||
| 
 | ||||
|     append_submenu(calib_menu, advance_menu, wxID_ANY, _L("More..."), _L("More calibrations"), "", [this]() { | ||||
|         return m_plater->is_view3D_shown(); | ||||
|         ; | ||||
|     }); | ||||
|     // help
 | ||||
|     append_menu_item( | ||||
|         calib_menu, wxID_ANY, _L("Tutorial"), _L("Calibration help"), | ||||
|         [this](wxCommandEvent &) { wxLaunchDefaultBrowser("https://github.com/SoftFever/OrcaSlicer/wiki/Calibration", wxBROWSER_NEW_WINDOW); }, "", nullptr, | ||||
|         [this]() { | ||||
|             return m_plater->is_view3D_shown(); | ||||
|             ; | ||||
|         }, | ||||
|         this); | ||||
| 
 | ||||
|     m_menubar->Append(calib_menu, wxString::Format("&%s", _L("Calibration"))); | ||||
| 
 | ||||
|     if (helpMenu) | ||||
|         m_menubar->Append(helpMenu, wxString::Format("&%s", _L("Help"))); | ||||
|     SetMenuBar(m_menubar); | ||||
|  |  | |||
|  | @ -5,6 +5,9 @@ | |||
| #include <wx/dcgraph.h> | ||||
| #include "MainFrame.hpp" | ||||
| #include <string> | ||||
| #include "libslic3r/Config.hpp" | ||||
| #include "libslic3r/PrintConfig.hpp" | ||||
| 
 | ||||
| namespace Slic3r { namespace GUI { | ||||
|      | ||||
| wxBoxSizer* create_item_checkbox(wxString title, wxWindow* parent, bool* value, CheckBox*& checkbox) | ||||
|  | @ -40,12 +43,14 @@ PA_Calibration_Dlg::PA_Calibration_Dlg(wxWindow* parent, wxWindowID id, Plater* | |||
|     SetSizer(v_sizer); | ||||
| 	wxBoxSizer* choice_sizer = new wxBoxSizer(wxHORIZONTAL); | ||||
| 
 | ||||
|     wxString m_rbExtruderTypeChoices[] = { _L("DDE"), _L("Bowden") }; | ||||
| 	int m_rbExtruderTypeNChoices = sizeof(m_rbExtruderTypeChoices) / sizeof(wxString); | ||||
| 	m_rbExtruderType = new wxRadioBox(this, wxID_ANY, _L("Extruder type"), wxDefaultPosition, wxDefaultSize, m_rbExtruderTypeNChoices, m_rbExtruderTypeChoices, 2, wxRA_SPECIFY_COLS); | ||||
| 	m_rbExtruderType->SetSelection(0); | ||||
| 	choice_sizer->Add(m_rbExtruderType, 0, wxALL, 5); | ||||
| 	choice_sizer->Add(FromDIP(5), 0, 0, wxEXPAND, 5); | ||||
|     // BBS: get from printer preset
 | ||||
|     //wxString m_rbExtruderTypeChoices[] = { _L("DDE"), _L("Bowden") };
 | ||||
| 	//int m_rbExtruderTypeNChoices = sizeof(m_rbExtruderTypeChoices) / sizeof(wxString);
 | ||||
| 	//m_rbExtruderType = new wxRadioBox(this, wxID_ANY, _L("Extruder type"), wxDefaultPosition, wxDefaultSize, m_rbExtruderTypeNChoices, m_rbExtruderTypeChoices, 2, wxRA_SPECIFY_COLS);
 | ||||
| 	//m_rbExtruderType->SetSelection(0);
 | ||||
| 	//choice_sizer->Add(m_rbExtruderType, 0, wxALL, 5);
 | ||||
| 	//choice_sizer->Add(FromDIP(5), 0, 0, wxEXPAND, 5);
 | ||||
| 
 | ||||
| 	wxString m_rbMethodChoices[] = { _L("PA Tower"), _L("PA Line") }; | ||||
| 	int m_rbMethodNChoices = sizeof(m_rbMethodChoices) / sizeof(wxString); | ||||
| 	m_rbMethod = new wxRadioBox(this, wxID_ANY, _L("Method"), wxDefaultPosition, wxDefaultSize, m_rbMethodNChoices, m_rbMethodChoices, 2, wxRA_SPECIFY_COLS); | ||||
|  | @ -116,18 +121,30 @@ PA_Calibration_Dlg::PA_Calibration_Dlg(wxWindow* parent, wxWindowID id, Plater* | |||
| 	v_sizer->Add(m_btnStart, 0, wxALL | wxALIGN_RIGHT, FromDIP(5)); | ||||
| 
 | ||||
|     // Connect Events
 | ||||
|     m_rbExtruderType->Connect(wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler(PA_Calibration_Dlg::on_extruder_type_changed), NULL, this); | ||||
|     //m_rbExtruderType->Connect(wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler(PA_Calibration_Dlg::on_extruder_type_changed), NULL, this);
 | ||||
|     m_rbMethod->Connect(wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler(PA_Calibration_Dlg::on_method_changed), NULL, this); | ||||
|     this->Connect(wxEVT_SHOW, wxShowEventHandler(PA_Calibration_Dlg::on_show)); | ||||
|     //wxGetApp().UpdateDlgDarkUI(this);
 | ||||
| 
 | ||||
|     Preset &printer_preset = wxGetApp().preset_bundle->printers.get_edited_preset(); | ||||
|     int extruder_type  = printer_preset.config.opt_enum("extruder_type", 0); | ||||
|     if (extruder_type == ExtruderType::etBowden) { | ||||
|         m_tiEndPA->GetTextCtrl()->SetValue(wxString::FromDouble(1.0)); | ||||
|         m_tiStartPA->GetTextCtrl()->SetValue(wxString::FromDouble(0.0)); | ||||
|         m_tiPAStep->GetTextCtrl()->SetValue(wxString::FromDouble(0.02)); | ||||
|     } else { | ||||
|         m_tiEndPA->GetTextCtrl()->SetValue(wxString::FromDouble(0.1)); | ||||
|         m_tiStartPA->GetTextCtrl()->SetValue(wxString::FromDouble(0.0)); | ||||
|         m_tiPAStep->GetTextCtrl()->SetValue(wxString::FromDouble(0.002)); | ||||
|     } | ||||
| 
 | ||||
|     Layout(); | ||||
|     Fit(); | ||||
| } | ||||
| 
 | ||||
| PA_Calibration_Dlg::~PA_Calibration_Dlg() { | ||||
|     // Disconnect Events
 | ||||
|     m_rbExtruderType->Disconnect(wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler(PA_Calibration_Dlg::on_extruder_type_changed), NULL, this); | ||||
|     //m_rbExtruderType->Disconnect(wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler(PA_Calibration_Dlg::on_extruder_type_changed), NULL, this);
 | ||||
|     m_rbMethod->Disconnect(wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler(PA_Calibration_Dlg::on_method_changed), NULL, this); | ||||
|     m_btnStart->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PA_Calibration_Dlg::on_start), NULL, this); | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 zhimin.zeng
						zhimin.zeng