diff --git a/resources/printers/BL-P001.json b/resources/printers/BL-P001.json index 2b5fcd195e..227d5f4925 100644 --- a/resources/printers/BL-P001.json +++ b/resources/printers/BL-P001.json @@ -55,7 +55,8 @@ "printer_arch": "core_xy", "printer_series": "series_x1", "has_cali_line": true, - "printer_is_enclosed": true + "printer_is_enclosed": true, + "enable_set_nozzle_info": true }, "01.01.01.00": { "print": { diff --git a/resources/printers/BL-P002.json b/resources/printers/BL-P002.json index 8b3cc0f69e..f95effc2b7 100644 --- a/resources/printers/BL-P002.json +++ b/resources/printers/BL-P002.json @@ -55,7 +55,8 @@ "printer_arch": "core_xy", "printer_series": "series_x1", "has_cali_line": true, - "printer_is_enclosed": true + "printer_is_enclosed": true, + "enable_set_nozzle_info": true }, "01.01.01.00": { "print": { diff --git a/resources/printers/C11.json b/resources/printers/C11.json index 7cfb521f04..b62abdf677 100644 --- a/resources/printers/C11.json +++ b/resources/printers/C11.json @@ -51,7 +51,8 @@ "printer_arch": "core_xy", "printer_series": "series_p1p", "has_cali_line": false, - "printer_is_enclosed": false + "printer_is_enclosed": false, + "enable_set_nozzle_info": true }, "01.02.00.00": { "print": { diff --git a/resources/printers/C12.json b/resources/printers/C12.json index 4eae1d1357..1320aca2c7 100644 --- a/resources/printers/C12.json +++ b/resources/printers/C12.json @@ -51,7 +51,8 @@ "printer_arch": "core_xy", "printer_series": "series_p1p", "has_cali_line": false, - "printer_is_enclosed": true + "printer_is_enclosed": true, + "enable_set_nozzle_info": true }, "01.02.99.10": { "print": { diff --git a/resources/printers/C13.json b/resources/printers/C13.json index d01e95257d..29450f5420 100644 --- a/resources/printers/C13.json +++ b/resources/printers/C13.json @@ -59,7 +59,8 @@ "printer_arch": "core_xy", "printer_series": "series_x1", "has_cali_line": true, - "printer_is_enclosed": true + "printer_is_enclosed": true, + "enable_set_nozzle_info": true }, "01.05.06.06": { "rv2166": "00.00.21.20" diff --git a/resources/printers/N1.json b/resources/printers/N1.json index d99d2b94a2..86089b2a42 100644 --- a/resources/printers/N1.json +++ b/resources/printers/N1.json @@ -51,7 +51,8 @@ "printer_arch": "i3", "printer_series": "series_n", "has_cali_line": false, - "printer_is_enclosed": false + "printer_is_enclosed": false, + "enable_set_nozzle_info": true }, "01.01.50.01": { "print": { diff --git a/resources/printers/N2S.json b/resources/printers/N2S.json index 540f1fe013..4bf5d67dcf 100644 --- a/resources/printers/N2S.json +++ b/resources/printers/N2S.json @@ -51,7 +51,8 @@ "printer_arch": "i3", "printer_series": "series_n", "has_cali_line": false, - "printer_is_enclosed": false + "printer_is_enclosed": false, + "enable_set_nozzle_info": true }, "01.01.50.01": { "print": { diff --git a/resources/printers/version.txt b/resources/printers/version.txt index c4d9c69e10..db694704bf 100644 --- a/resources/printers/version.txt +++ b/resources/printers/version.txt @@ -1 +1 @@ -02.00.00.12 \ No newline at end of file +02.00.00.13 \ No newline at end of file diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 85ec78edaf..53ce89501a 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -7500,7 +7500,11 @@ std::string DeviceManager::get_printer_ext_img(std::string type_str, int pos) { } bool DeviceManager::get_printer_is_enclosed(std::string type_str) { - return get_value_from_config(type_str, "printer_is_enclosed"); + return get_value_from_config(type_str, "printer_is_enclosed"); } + +bool DeviceManager::get_printer_can_set_nozzle(std::string type_str) +{ + return get_value_from_config(type_str, "enable_set_nozzle_info"); } std::vector DeviceManager::get_resolution_supported(std::string type_str) diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 43a8d26e37..b9a4f1e31f 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -1474,6 +1474,7 @@ public: static PrinterArch get_printer_arch(std::string type_str); static std::string get_ftp_folder(std::string type_str); static bool get_printer_is_enclosed(std::string type_str); + static bool get_printer_can_set_nozzle(std::string type_str);// can set nozzle from studio static bool load_filaments_blacklist_config(); static std::vector get_resolution_supported(std::string type_str); static std::vector get_compatible_machine(std::string type_str); diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 9d5efb3cbd..951b687e2a 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -13583,8 +13583,14 @@ bool Plater::check_printer_initialized(MachineObject *obj, bool only_warning) if (!has_been_initialized) { if (!only_warning) { - MessageDialog dlg(wxGetApp().plater(), _L("The nozzle type is not set. Please set the nozzle and try again."), _L("Warning"), wxOK | wxICON_WARNING); - dlg.ShowModal(); + + if (DeviceManager::get_printer_can_set_nozzle(obj->printer_type)) { + MessageDialog dlg(wxGetApp().plater(), _L("The nozzle type is not set. Please set the nozzle and try again."), _L("Warning"), wxOK | wxICON_WARNING); + dlg.ShowModal(); + } else { + MessageDialog dlg(wxGetApp().plater(), _L("The nozzle type is not set. Please check."), _L("Warning"), wxOK | wxICON_WARNING); + dlg.ShowModal(); + } PrinterPartsDialog *print_parts_dlg = new PrinterPartsDialog(nullptr); print_parts_dlg->update_machine_obj(obj); diff --git a/src/slic3r/GUI/PrintOptionsDialog.cpp b/src/slic3r/GUI/PrintOptionsDialog.cpp index 6cb05ef531..aa3e4c7785 100644 --- a/src/slic3r/GUI/PrintOptionsDialog.cpp +++ b/src/slic3r/GUI/PrintOptionsDialog.cpp @@ -638,12 +638,18 @@ PrinterPartsDialog::PrinterPartsDialog(wxWindow* parent) line_sizer_nozzle_diameter->Add(0, 0, 1, wxEXPAND, 5); line_sizer_nozzle_diameter->Add(nozzle_diameter_checkbox, 0, wxALIGN_CENTER, 5); + change_nozzle_tips = new Label(single_panel, _L("*Tips: If you changed your nozzle lately, please change settings on printer screen.")); + change_nozzle_tips->SetFont(Label::Body_13); + change_nozzle_tips->SetForegroundColour(STATIC_TEXT_CAPTION_COL); + single_sizer->Add(m_line, 0, wxEXPAND, 0); single_sizer->Add(0, 0, 0, wxTOP, FromDIP(24)); single_sizer->Add(line_sizer_nozzle_type, 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, FromDIP(10)); single_sizer->Add(0, 0, 0, wxTOP, FromDIP(24)); single_sizer->Add(line_sizer_nozzle_diameter, 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, FromDIP(10)); single_sizer->Add(0, 0, 0, wxTOP, FromDIP(24)); + single_sizer->Add(change_nozzle_tips, 0, wxLEFT, FromDIP(24)); + single_sizer->Add(0, 0, 0, wxTOP, FromDIP(10)); single_panel->SetSizer(single_sizer); single_panel->Layout(); @@ -728,13 +734,19 @@ PrinterPartsDialog::PrinterPartsDialog(wxWindow* parent) multiple_right_line_sizer->Add(0, 0, 1, wxLEFT, FromDIP(8)); multiple_right_line_sizer->Add(multiple_right_nozzle_flow_checkbox, 0, wxALIGN_CENTER, 0); + multiple_change_nozzle_tips = new Label(multiple_panel, _L("*Tips: If you changed your nozzle lately, please change settings on printer screen.")); + multiple_change_nozzle_tips->SetFont(Label::Body_13); + multiple_change_nozzle_tips->SetForegroundColour(STATIC_TEXT_CAPTION_COL); + multiple_sizer->Add(0, 0, 0, wxTOP, FromDIP(40)); multiple_sizer->Add(leftTitle, 0, wxLEFT, FromDIP(18)); multiple_sizer->Add(multiple_left_line_sizer, 0, wxALIGN_CENTER|wxLEFT|wxRIGHT, FromDIP(18)); multiple_sizer->Add(0, 0, 0, wxTOP, FromDIP(24)); multiple_sizer->Add(rightTitle, 0, wxLEFT, FromDIP(18)); multiple_sizer->Add(multiple_right_line_sizer, 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, FromDIP(18)); - multiple_sizer->Add(0, 0, 0, wxTOP, FromDIP(40)); + multiple_sizer->Add(0, 0, 0, wxTOP, FromDIP(20)); + multiple_sizer->Add(multiple_change_nozzle_tips, 0, wxLEFT, FromDIP(18)); + multiple_sizer->Add(0, 0, 0, wxTOP, FromDIP(10)); multiple_panel->SetSizer(multiple_sizer); multiple_panel->Layout(); @@ -875,6 +887,9 @@ bool PrinterPartsDialog::Show(bool show) wxGetApp().UpdateDlgDarkUI(this); CentreOnParent(); + /*disable editing*/ + EnableEditing(DeviceManager::get_printer_can_set_nozzle(obj->printer_type)); + if (obj->m_extder_data.extders.size() <= 1) { single_panel->Show(); multiple_panel->Hide(); @@ -914,10 +929,6 @@ bool PrinterPartsDialog::Show(bool show) auto diameter = obj->m_extder_data.extders[DEPUTY_NOZZLE_ID].current_nozzle_diameter; auto flow_type = obj->m_extder_data.extders[DEPUTY_NOZZLE_ID].current_nozzle_flow_type; - multiple_left_nozzle_type_checkbox->Enable(); - multiple_left_nozzle_diameter_checkbox->Enable(); - multiple_left_nozzle_flow_checkbox->Enable(); - multiple_left_nozzle_diameter_checkbox->Clear(); if (type == NozzleType::ntUndefine) @@ -958,10 +969,6 @@ bool PrinterPartsDialog::Show(bool show) multiple_right_nozzle_diameter_checkbox->Clear(); - multiple_right_nozzle_type_checkbox->Enable(); - multiple_right_nozzle_diameter_checkbox->Enable(); - multiple_right_nozzle_flow_checkbox->Enable(); - if (type == NozzleType::ntUndefine) { multiple_right_nozzle_type_checkbox->SetValue(wxEmptyString); @@ -1000,4 +1007,20 @@ bool PrinterPartsDialog::Show(bool show) return DPIDialog::Show(show); } +void PrinterPartsDialog::EnableEditing(bool enable) { + + nozzle_type_checkbox->Enable(enable); + nozzle_diameter_checkbox->Enable(enable); + + multiple_left_nozzle_type_checkbox->Enable(enable); + multiple_left_nozzle_diameter_checkbox->Enable(enable); + multiple_left_nozzle_flow_checkbox->Enable(enable); + + multiple_right_nozzle_type_checkbox->Enable(enable); + multiple_right_nozzle_diameter_checkbox->Enable(enable); + multiple_right_nozzle_flow_checkbox->Enable(enable); + + change_nozzle_tips->Show(!enable); + multiple_change_nozzle_tips->Show(!enable); +} }} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/PrintOptionsDialog.hpp b/src/slic3r/GUI/PrintOptionsDialog.hpp index 860daa2f64..6204ad7fac 100644 --- a/src/slic3r/GUI/PrintOptionsDialog.hpp +++ b/src/slic3r/GUI/PrintOptionsDialog.hpp @@ -39,6 +39,7 @@ protected: ComboBox* nozzle_type_checkbox; ComboBox* nozzle_diameter_checkbox; + Label *change_nozzle_tips; ComboBox* multiple_left_nozzle_type_checkbox; ComboBox *multiple_left_nozzle_diameter_checkbox; @@ -48,6 +49,8 @@ protected: ComboBox *multiple_right_nozzle_diameter_checkbox; ComboBox *multiple_right_nozzle_flow_checkbox; + Label *multiple_change_nozzle_tips; + wxPanel *single_panel; wxPanel *multiple_panel; @@ -67,6 +70,10 @@ public: void on_dpi_changed(const wxRect& suggested_rect) override; void update_machine_obj(MachineObject* obj_); bool Show(bool show) override; + +private: + void EnableEditing(bool enable); + };