diff --git a/resources/printers/BL-P001.json b/resources/printers/BL-P001.json index 0d7173a2aa..9841799aac 100644 --- a/resources/printers/BL-P001.json +++ b/resources/printers/BL-P001.json @@ -43,6 +43,7 @@ "support_ai_monitoring": false, "support_first_layer_inspect": true, "support_save_remote_print_file_to_storage": true, + "support_chamber": true, "support_chamber_temp_edit": false, "support_extrusion_cali": false, "support_user_preset": false diff --git a/resources/printers/BL-P002.json b/resources/printers/BL-P002.json index 913b28a57c..eee4691d4c 100644 --- a/resources/printers/BL-P002.json +++ b/resources/printers/BL-P002.json @@ -43,6 +43,7 @@ "support_ai_monitoring": false, "support_first_layer_inspect": true, "support_save_remote_print_file_to_storage": true, + "support_chamber": true, "support_chamber_temp_edit": false, "support_extrusion_cali": false, "support_user_preset": false diff --git a/resources/printers/C11.json b/resources/printers/C11.json index 2e69f66105..bc8894158a 100644 --- a/resources/printers/C11.json +++ b/resources/printers/C11.json @@ -37,6 +37,7 @@ "support_lidar_calibration": false, "support_ai_monitoring": false, "support_first_layer_inspect": false, + "support_chamber": false, "support_chamber_temp_edit": false, "support_extrusion_cali": true, "support_user_preset": false, diff --git a/resources/printers/C12.json b/resources/printers/C12.json index bc0599937c..754d2aba92 100644 --- a/resources/printers/C12.json +++ b/resources/printers/C12.json @@ -37,6 +37,7 @@ "support_lidar_calibration": false, "support_ai_monitoring": false, "support_first_layer_inspect": false, + "support_chamber": true, "support_chamber_temp_edit": false, "support_extrusion_cali": true, "support_user_preset": false, diff --git a/resources/printers/C13.json b/resources/printers/C13.json index 974781f36c..2b2fd54a5a 100644 --- a/resources/printers/C13.json +++ b/resources/printers/C13.json @@ -44,6 +44,7 @@ "support_lidar_calibration": true, "support_ai_monitoring": true, "support_first_layer_inspect": true, + "support_chamber": true, "support_chamber_temp_edit": true, "support_chamber_temp_edit_range": [0, 60], "support_extrusion_cali": false, diff --git a/resources/printers/N1.json b/resources/printers/N1.json index 6899b2f77a..025bdf888d 100644 --- a/resources/printers/N1.json +++ b/resources/printers/N1.json @@ -37,6 +37,7 @@ "support_lidar_calibration": false, "support_ai_monitoring": false, "support_first_layer_inspect": false, + "support_chamber": false, "support_chamber_temp_edit": false, "support_extrusion_cali": true, "support_user_preset": false, diff --git a/resources/printers/N2S.json b/resources/printers/N2S.json index 5c331bc36f..1aea65ae9a 100644 --- a/resources/printers/N2S.json +++ b/resources/printers/N2S.json @@ -37,6 +37,7 @@ "support_lidar_calibration": false, "support_ai_monitoring": false, "support_first_layer_inspect": false, + "support_chamber": false, "support_chamber_temp_edit": false, "support_extrusion_cali": true, "support_user_preset": false, diff --git a/resources/printers/O1D.json b/resources/printers/O1D.json index 5a9de409f2..a3e682a2de 100644 --- a/resources/printers/O1D.json +++ b/resources/printers/O1D.json @@ -54,6 +54,7 @@ "support_ai_monitoring": true, "support_first_layer_inspect": false, "support_save_remote_print_file_to_storage": true, + "support_chamber": true, "support_chamber_temp_edit": true, "support_chamber_temp_edit_range": [ 0, 65 ], "support_chamber_temp_switch_heating": 40, diff --git a/resources/printers/O1E.json b/resources/printers/O1E.json index 0b1f712c54..922c138089 100644 --- a/resources/printers/O1E.json +++ b/resources/printers/O1E.json @@ -54,6 +54,7 @@ "support_ai_monitoring": true, "support_first_layer_inspect": false, "support_save_remote_print_file_to_storage": true, + "support_chamber": true, "support_chamber_temp_edit": true, "support_chamber_temp_edit_range": [ 0, 65 ], "support_chamber_temp_switch_heating": 40, diff --git a/resources/printers/version.txt b/resources/printers/version.txt index 41d4966d13..49589e8c68 100644 --- a/resources/printers/version.txt +++ b/resources/printers/version.txt @@ -1 +1,5 @@ +<<<<<<< HEAD (29536a NEW:add helio file to translate list) 02.00.00.26 +======= +02.00.00.29 +>>>>>>> CHANGE (5fa0cb FIX: check close chamber temperature) diff --git a/src/libslic3r/ProjectTask.hpp b/src/libslic3r/ProjectTask.hpp index 9012c9710b..6aa71b5baf 100644 --- a/src/libslic3r/ProjectTask.hpp +++ b/src/libslic3r/ProjectTask.hpp @@ -80,7 +80,7 @@ public: }; /*copied from AmsTray::get_display_filament_type()*/ - std::string get_display_filament_type() + std::string get_display_filament_type() const { if (type == "PLA-S") return "Sup.PLA"; diff --git a/src/slic3r/GUI/DeviceCore/DevConfig.cpp b/src/slic3r/GUI/DeviceCore/DevConfig.cpp index 52d28714e5..bcabff22be 100644 --- a/src/slic3r/GUI/DeviceCore/DevConfig.cpp +++ b/src/slic3r/GUI/DeviceCore/DevConfig.cpp @@ -18,6 +18,7 @@ void DevConfig::ParseConfig(const json& print_json) void DevConfig::ParseChamberConfig(const json& print_json) { + DevJsonValParser::ParseVal(print_json, "support_chamber", m_has_chamber); DevJsonValParser::ParseVal(print_json, "support_chamber_temp_edit", m_support_chamber_edit); if (m_support_chamber_edit) { diff --git a/src/slic3r/GUI/DeviceCore/DevConfig.h b/src/slic3r/GUI/DeviceCore/DevConfig.h index 29fd1208b2..1468ffc19e 100644 --- a/src/slic3r/GUI/DeviceCore/DevConfig.h +++ b/src/slic3r/GUI/DeviceCore/DevConfig.h @@ -21,6 +21,7 @@ public: public: // chamber + bool HasChamber() const { return m_has_chamber; } bool SupportChamberEdit() const { return m_support_chamber_edit; } int GetChamberTempEditMin() const { return m_chamber_temp_edit_min; } int GetChamberTempEditMax() const { return m_chamber_temp_edit_max; } @@ -54,6 +55,7 @@ private: /*configure vals*/ // chamber + bool m_has_chamber = false; // whether the machine has a chamber bool m_support_chamber_edit = false; int m_chamber_temp_edit_min = 0; int m_chamber_temp_edit_max = 60; diff --git a/src/slic3r/GUI/PrePrintChecker.cpp b/src/slic3r/GUI/PrePrintChecker.cpp index f3b3adb3af..1b041bc1f9 100644 --- a/src/slic3r/GUI/PrePrintChecker.cpp +++ b/src/slic3r/GUI/PrePrintChecker.cpp @@ -8,13 +8,16 @@ namespace Slic3r { namespace GUI { std::string PrePrintChecker::get_print_status_info(PrintDialogStatus status) { - switch (status) { + switch (status) + { case PrintStatusInit: return "PrintStatusInit"; case PrintStatusNoUserLogin: return "PrintStatusNoUserLogin"; case PrintStatusInvalidPrinter: return "PrintStatusInvalidPrinter"; case PrintStatusConnectingServer: return "PrintStatusConnectingServer"; case PrintStatusReadingTimeout: return "PrintStatusReadingTimeout"; case PrintStatusReading: return "PrintStatusReading"; + case PrintStatusConnecting: return "PrintStatusConnecting"; + case PrintStatusReconnecting: return "PrintStatusReconnecting"; case PrintStatusInUpgrading: return "PrintStatusInUpgrading"; case PrintStatusModeNotFDM: return "PrintStatusModeNotFDM"; case PrintStatusInSystemPrinting: return "PrintStatusInSystemPrinting"; @@ -34,25 +37,30 @@ std::string PrePrintChecker::get_print_status_info(PrintDialogStatus status) case PrintStatusBlankPlate: return "PrintStatusBlankPlate"; case PrintStatusUnsupportedPrinter: return "PrintStatusUnsupportedPrinter"; case PrintStatusInvalidMapping: return "PrintStatusInvalidMapping"; - // Handle filament errors case PrintStatusAmsOnSettingup: return "PrintStatusAmsOnSettingup"; case PrintStatusAmsMappingInvalid: return "PrintStatusAmsMappingInvalid"; case PrintStatusAmsMappingU0Invalid: return "PrintStatusAmsMappingU0Invalid"; case PrintStatusAmsMappingMixInvalid: return "PrintStatusAmsMappingMixInvalid"; case PrintStatusTPUUnsupportAutoCali: return "PrintStatusTPUUnsupportAutoCali"; - // Handle warnings + case PrintStatusHasFilamentInBlackListError: return "PrintStatusHasFilamentInBlackListError"; case PrintStatusTimelapseNoSdcard: return "PrintStatusTimelapseNoSdcard"; case PrintStatusTimelapseWarning: return "PrintStatusTimelapseWarning"; case PrintStatusMixAmsAndVtSlotWarning: return "PrintStatusMixAmsAndVtSlotWarning"; - // Handle success statuses + case PrintStatusWarningKvalueNotUsed: return "PrintStatusWarningKvalueNotUsed"; + case PrintStatusWarningTpuRightColdPulling: return "PrintStatusWarningTpuRightColdPulling"; + case PrintStatusHasFilamentInBlackListWarning: return "PrintStatusHasFilamentInBlackListWarning"; + case PrintStatusFilamentWarningHighChamberTemp: return "PrintStatusFilamentWarningHighChamberTemp"; + case PrintStatusFilamentWarningHighChamberTempCloseDoor: return "PrintStatusFilamentWarningHighChamberTempCloseDoor"; + case PrintStatusFilamentWarningHighChamberTempSoft: return "PrintStatusFilamentWarningHighChamberTempSoft"; + case PrintStatusFilamentWarningUnknownHighChamberTempSoft: return "PrintStatusFilamentWarningUnknownHighChamberTempSoft"; case PrintStatusReadingFinished: return "PrintStatusReadingFinished"; case PrintStatusSendingCanceled: return "PrintStatusSendingCanceled"; case PrintStatusAmsMappingSuccess: return "PrintStatusAmsMappingSuccess"; + case PrintStatusReadyToGo: return "PrintStatusReadyToGo"; case PrintStatusNotOnTheSameLAN: return "PrintStatusNotOnTheSameLAN"; case PrintStatusNotSupportedSendToSDCard: return "PrintStatusNotSupportedSendToSDCard"; case PrintStatusPublicInitFailed: return "PrintStatusPublicInitFailed"; case PrintStatusPublicUploadFiled: return "PrintStatusPublicUploadFiled"; - case PrintStatusReadyToGo: return "PrintStatusReadyToGo"; default: return "Unknown status"; } } @@ -83,7 +91,6 @@ wxString PrePrintChecker::get_pre_state_msg(PrintDialogStatus status) case PrintStatusWarningKvalueNotUsed: return _L("Set dynamic flow calibration to 'OFF' to enable custom dynamic flow value."); case PrintStatusNotSupportedPrintAll: return _L("This printer does not support printing all plates"); case PrintStatusWarningTpuRightColdPulling: return _L("Please cold pull before printing TPU to avoid clogging. You may use cold pull maintenance on the printer."); - case PrintStatusFilamentWarningHighChamberTempCloseDoor: return _L("High chamber temperature is required. Please close the door."); } return wxEmptyString; } diff --git a/src/slic3r/GUI/PrePrintChecker.hpp b/src/slic3r/GUI/PrePrintChecker.hpp index f2a67df341..f02f9c1b33 100644 --- a/src/slic3r/GUI/PrePrintChecker.hpp +++ b/src/slic3r/GUI/PrePrintChecker.hpp @@ -95,6 +95,7 @@ enum PrintDialogStatus : unsigned int { PrintStatusWarningKvalueNotUsed, PrintStatusWarningTpuRightColdPulling, PrintStatusHasFilamentInBlackListWarning, + PrintStatusFilamentWarningHighChamberTemp, PrintStatusFilamentWarningHighChamberTempCloseDoor, PrintStatusFilamentWarningHighChamberTempSoft, PrintStatusFilamentWarningUnknownHighChamberTempSoft, diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 9aecca6bf4..29b53ff9f6 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1512,8 +1512,9 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vector high_temp_filaments; std::unordered_set known_fila_soften_extruders; std::unordered_set unknown_fila_soften_extruders; auto preset_full_config = wxGetApp().preset_bundle->full_config(); @@ -3527,9 +3529,8 @@ void SelectMachineDialog::update_show_status(MachineObject* obj_) try { int chamber_temp = chamber_temperatures->values[item.id]; - if (chamber_temp >= obj_->GetConfig()->GetChamberTempSwitchHeat()) {// check close door - show_status(PrintDialogStatus::PrintStatusFilamentWarningHighChamberTempCloseDoor); - if (PrePrintChecker::is_error(PrintDialogStatus::PrintStatusFilamentWarningHighChamberTempCloseDoor)) { return; } + if (chamber_temp >= 40) { + high_temp_filaments.insert(item.get_display_filament_type());// high printing chamber temperature } for (const auto& extder : obj_->GetExtderSystem()->GetExtruders()) { // check vitrification @@ -3550,6 +3551,26 @@ void SelectMachineDialog::update_show_status(MachineObject* obj_) catch (std::exception&) { assert(0); } } + if (!high_temp_filaments.empty()) { + wxString filament_strs;/*join the filament strs*/ + for (auto filament : high_temp_filaments) { + filament_strs += filament; + if (filament != *high_temp_filaments.rbegin()) { + filament_strs += ", "; + } + } + + if (obj_->GetConfig()->HasChamber()) { + const auto& msg = wxString::Format(_L("[ %s ] requires printing in a high-temperature environment."), filament_strs); + show_status(PrintDialogStatus::PrintStatusFilamentWarningHighChamberTempCloseDoor, { msg }); + if (PrePrintChecker::is_error(PrintDialogStatus::PrintStatusFilamentWarningHighChamberTempCloseDoor)) { return; } + } else { + const auto& msg = wxString::Format(_L("[ %s ] requires printing in a high-temperature environment.Please close the door."), filament_strs); + show_status(PrintDialogStatus::PrintStatusFilamentWarningHighChamberTemp, { msg }); + if (PrePrintChecker::is_error(PrintDialogStatus::PrintStatusFilamentWarningHighChamberTemp)) { return; } + } + } + if (!known_fila_soften_extruders.empty()) { const wxString& msg = wxString::Format(_L("The filament on %s may soften. Please unload."), _get_ext_loc_str(known_fila_soften_extruders, obj_->GetExtderSystem()->GetTotalExtderCount()));