From c23f1233db2be6475a434de575fe93c9c08fae75 Mon Sep 17 00:00:00 2001 From: "xin.zhang" Date: Mon, 30 Dec 2024 11:54:27 +0800 Subject: [PATCH] FIX: support set temp to 65 for some devices jira: [STUDIO-9412] Change-Id: I530a8c18ae4b4133526b3e9d91153a7b26512f38 --- resources/printers/C13.json | 1 + resources/printers/O1D.json | 1 + src/slic3r/GUI/DeviceManager.cpp | 7 +++++++ src/slic3r/GUI/DeviceManager.hpp | 3 +++ src/slic3r/GUI/StatusPanel.cpp | 7 ++++--- 5 files changed, 16 insertions(+), 3 deletions(-) diff --git a/resources/printers/C13.json b/resources/printers/C13.json index c0976d805..21efb584a 100644 --- a/resources/printers/C13.json +++ b/resources/printers/C13.json @@ -39,6 +39,7 @@ "support_ai_monitoring": true, "support_first_layer_inspect": true, "support_chamber_temp_edit": true, + "support_chamber_temp_edit_range": [20, 60], "support_extrusion_cali": false, "support_user_preset": false, "bed_temperature_limit": 110, diff --git a/resources/printers/O1D.json b/resources/printers/O1D.json index 0dbbe414b..540e1632a 100644 --- a/resources/printers/O1D.json +++ b/resources/printers/O1D.json @@ -45,6 +45,7 @@ "support_ai_monitoring": true, "support_first_layer_inspect": false, "support_chamber_temp_edit": true, + "support_chamber_temp_edit_range": [20, 65], "support_extrusion_cali": false, "support_user_preset": false }, diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index fc1d63627..098118cfd 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -3250,6 +3250,13 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) if (jj["support_chamber_temp_edit"].is_boolean()) { is_support_chamber_edit = jj["support_chamber_temp_edit"].get(); } + + const auto& support_champer_range = jj["support_chamber_temp_edit_range"]; + if (support_champer_range.is_array() && !support_champer_range.empty()) + { + chamber_temp_edit_min = support_champer_range[0]; + chamber_temp_edit_max = support_champer_range[1]; + } } if (jj.contains("support_extrusion_cali")) { diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 3e49bd189..92a9733bd 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -490,6 +490,7 @@ private: // type, time stamp, delay std::vector> message_delay; + public: typedef std::function CommandCallBack; @@ -721,6 +722,8 @@ public: float bed_temp_target; float chamber_temp; float chamber_temp_target; + float chamber_temp_edit_min = 0; + float chamber_temp_edit_max = 60; float frame_temp; /* cooling */ diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 405331fe6..bbe9c6d07 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -35,7 +35,6 @@ static const wxFont SWITCH_FONT = Label::Body_10; /* const values */ static const int bed_temp_range[2] = {20, 120}; -static const int nozzle_chamber_range[2] = {20, 60}; /* colors */ static const wxColour STATUS_PANEL_BG = wxColour(238, 238, 238); @@ -1444,8 +1443,8 @@ wxBoxSizer *StatusBasePanel::create_temp_control(wxWindow *parent) m_tempCtrl_chamber = new TempInput(parent, frame_id, TEMP_BLANK_STR, TempInputType::TEMP_OF_NORMAL_TYPE, TEMP_BLANK_STR, wxString("monitor_frame_temp"), wxString("monitor_frame_temp_active"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER); m_tempCtrl_chamber->SetReadOnly(true); - m_tempCtrl_chamber->SetMinTemp(nozzle_chamber_range[0]); - m_tempCtrl_chamber->SetMaxTemp(nozzle_chamber_range[1]); + m_tempCtrl_chamber->SetMinTemp(obj->chamber_temp_edit_min); + m_tempCtrl_chamber->SetMaxTemp(obj->chamber_temp_edit_max); m_tempCtrl_chamber->SetMinSize(TEMP_CTRL_MIN_SIZE_OF_SINGLE_NOZZLE); m_tempCtrl_chamber->SetBorderWidth(FromDIP(2)); m_tempCtrl_chamber->SetTextColor(tempinput_text_colour); @@ -2595,6 +2594,8 @@ void StatusPanel::update(MachineObject *obj) if (obj->is_support_chamber_edit) { m_tempCtrl_chamber->SetReadOnly(false); m_tempCtrl_chamber->Enable(); + m_tempCtrl_chamber->SetMinTemp(obj->chamber_temp_edit_min); + m_tempCtrl_chamber->SetMaxTemp(obj->chamber_temp_edit_max); wxCursor cursor(wxCURSOR_IBEAM); m_tempCtrl_chamber->GetTextCtrl()->SetCursor(cursor); } else {