diff --git a/resources/printers/BL-P001.json b/resources/printers/BL-P001.json index 2b5fcd195..227d5f492 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 8b3cc0f69..f95effc2b 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 6575e80b1..78f0f86ff 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 89cf5de54..a8cb4c8bf 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 d01e95257..29450f542 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 d99d2b94a..86089b2a4 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 540f1fe01..4bf5d67dc 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/O1D.json b/resources/printers/O1D.json index 768e11ba5..3892481cd 100644 --- a/resources/printers/O1D.json +++ b/resources/printers/O1D.json @@ -68,6 +68,7 @@ "printer_arch": "core_xy", "printer_series": "series_o", "has_cali_line": true, - "printer_is_enclosed": true + "printer_is_enclosed": true, + "enable_set_nozzle_info": false } } \ No newline at end of file diff --git a/resources/printers/version.txt b/resources/printers/version.txt index c4d9c69e1..db694704b 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 b988c3e98..d0ac4d753 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -7533,7 +7533,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 779df3cd3..a985e8d4c 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 9ecaba275..7f5acdae3 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -13687,8 +13687,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 3716b8950..231f22d29 100644 --- a/src/slic3r/GUI/PrintOptionsDialog.cpp +++ b/src/slic3r/GUI/PrintOptionsDialog.cpp @@ -640,12 +640,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(); @@ -730,13 +736,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(); @@ -950,6 +962,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(); @@ -989,10 +1004,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) @@ -1033,10 +1044,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); @@ -1075,4 +1082,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 860daa2f6..6204ad7fa 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); + };