diff --git a/resources/printers/C13.json b/resources/printers/C13.json index c0976d8053..21efb584ad 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/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index f76b428d8c..55e68db80d 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -3230,6 +3230,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 f2a621c5eb..11f089d0ab 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -497,6 +497,7 @@ private: // type, time stamp, delay std::vector> message_delay; + public: typedef std::function CommandCallBack; @@ -733,6 +734,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 d7e0da2709..1d87b42ff3 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -36,7 +36,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); @@ -1480,8 +1479,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); @@ -2626,6 +2625,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 {