diff --git a/resources/printers/version.txt b/resources/printers/version.txt index 43119ba0fc..196e043acc 100644 --- a/resources/printers/version.txt +++ b/resources/printers/version.txt @@ -1 +1 @@ -02.00.00.01 \ No newline at end of file +02.00.00.02 \ No newline at end of file diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 3a4d4d48a9..363ebb25a7 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -3268,6 +3268,15 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) chamber_temp_edit_min = support_champer_range[0]; chamber_temp_edit_max = support_champer_range[1]; } + + if (jj.contains("support_chamber_temp_switch_heating")) + { + const auto& support_chamber_temp_switch_heating = jj["support_chamber_temp_switch_heating"]; + if (support_chamber_temp_switch_heating.is_number()) + { + chamber_temp_switch_heat = support_chamber_temp_switch_heating.get(); + } + } } if (jj.contains("support_extrusion_cali")) { diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 00bed2427d..c51870ac84 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -737,6 +737,7 @@ public: float chamber_temp_target; float chamber_temp_edit_min = 0; float chamber_temp_edit_max = 60; + long chamber_temp_switch_heat = LONG_MAX;/*default to LONG_MAX*/ float frame_temp; /* cooling */ diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index dba3d74851..71f1429ff0 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -3885,6 +3885,18 @@ void StatusPanel::on_set_chamber_temp() m_tempCtrl_chamber->SetTagTemp(wxString::Format("%d", chamber_temp)); m_tempCtrl_chamber->Warning(false); } + + if (chamber_temp > obj->chamber_temp_switch_heat) + { + delete champer_switch_head_dlg; + champer_switch_head_dlg = new MessageDialog(nullptr, _L("If the chamber temperature exceeds 40\u2103, the system will automatically switch to heating mode. Please confirm whether to switch."), wxEmptyString, wxICON_WARNING | wxOK | wxCANCEL); + + if (champer_switch_head_dlg->ShowModal() != wxID_OK) + { + return; + } + } + obj->command_set_chamber(chamber_temp); } } diff --git a/src/slic3r/GUI/StatusPanel.hpp b/src/slic3r/GUI/StatusPanel.hpp index a5a3c6387a..fd8f4b37e9 100644 --- a/src/slic3r/GUI/StatusPanel.hpp +++ b/src/slic3r/GUI/StatusPanel.hpp @@ -41,6 +41,9 @@ class StepIndicator; namespace Slic3r { namespace GUI { +// Previous definitions +class MessageDialog; + enum CameraRecordingStatus { RECORDING_NONE, RECORDING_OFF_NORMAL, @@ -565,6 +568,7 @@ protected: SecondaryCheckDialog* con_load_dlg = nullptr; SecondaryCheckDialog* ctrl_e_hint_dlg = nullptr; SecondaryCheckDialog* sdcard_hint_dlg = nullptr; + MessageDialog* champer_switch_head_dlg = nullptr; FanControlPopupNew* m_fan_control_popup{nullptr};