From cd321f17116e159ea289f2a10521a74ae12b2d85 Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Tue, 19 Aug 2025 10:20:08 +0800 Subject: [PATCH] Fix build --- .../GUI/CalibrationWizardPresetPage.cpp | 6 +++--- src/slic3r/GUI/Widgets/AMSItem.cpp | 20 +++++++++++++++++++ src/slic3r/GUI/Widgets/AMSItem.hpp | 4 +++- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/slic3r/GUI/CalibrationWizardPresetPage.cpp b/src/slic3r/GUI/CalibrationWizardPresetPage.cpp index 148568c5af..32704c25cb 100644 --- a/src/slic3r/GUI/CalibrationWizardPresetPage.cpp +++ b/src/slic3r/GUI/CalibrationWizardPresetPage.cpp @@ -782,7 +782,7 @@ void CalibrationPresetPage::create_multi_extruder_filament_list_panel(wxWindow * m_main_ams_preview_list.push_back(preview_ams_item); size_t index = m_main_ams_preview_list.size() - 1; preview_ams_item->Bind(wxEVT_LEFT_DOWN, [this, index](wxMouseEvent &e) { - update_multi_extruder_filament_combobox(m_main_ams_preview_list[index]->m_amsinfo.ams_id, 0); + update_multi_extruder_filament_combobox(m_main_ams_preview_list[index]->get_ams_id(), 0); e.Skip(); }); ams_items_sizer->Add(preview_ams_item, 0, wxALIGN_CENTER | wxRIGHT, FromDIP(6)); @@ -841,7 +841,7 @@ void CalibrationPresetPage::create_multi_extruder_filament_list_panel(wxWindow * m_deputy_ams_preview_list.push_back(preview_ams_item); size_t index = m_deputy_ams_preview_list.size() - 1; preview_ams_item->Bind(wxEVT_LEFT_DOWN, [this, index](wxMouseEvent &e) { - update_multi_extruder_filament_combobox(m_deputy_ams_preview_list[index]->m_amsinfo.ams_id, 1); + update_multi_extruder_filament_combobox(m_deputy_ams_preview_list[index]->get_ams_id(), 1); e.Skip(); }); ams_items_sizer->Add(preview_ams_item, 0, wxALIGN_CENTER | wxRIGHT, FromDIP(6)); @@ -1780,7 +1780,7 @@ void CalibrationPresetPage::init_with_machine(MachineObject* obj) if (obj->is_multi_extruders()) { for (int i = 0; i < m_comboBox_nozzle_volume_types.size(); ++i) { m_comboBox_nozzle_volume_types[i]->Show(); - m_comboBox_nozzle_volume_types[i]->SetSelection(obj->m_nozzle_data.nozzles[i].flow_type); + m_comboBox_nozzle_volume_types[i]->SetSelection(0); } if (obj->printer_type.find("O1D") != std::string::npos && m_main_extruder_on_left) { diff --git a/src/slic3r/GUI/Widgets/AMSItem.cpp b/src/slic3r/GUI/Widgets/AMSItem.cpp index 9e519643c1..050f3e0889 100644 --- a/src/slic3r/GUI/Widgets/AMSItem.cpp +++ b/src/slic3r/GUI/Widgets/AMSItem.cpp @@ -55,6 +55,7 @@ bool AMSinfo::parse_ams_info(MachineObject *obj, Ams *ams, bool remain_flag, boo this->current_temperature = ams->current_temperature; this->ams_type = AMSModel(ams->type); + nozzle_id = ams->nozzle; cans.clear(); for (int i = 0; i < ams->trayList.size(); i++) { auto it = ams->trayList.find(std::to_string(i)); @@ -119,6 +120,25 @@ bool AMSinfo::parse_ams_info(MachineObject *obj, Ams *ams, bool remain_flag, boo return true; } +void AMSinfo::ReadExtInfo(AmsTray tray) { + this->ams_id = tray.id; + this->ams_type = AMSModel::EXT_AMS; + Caninfo can; + can.can_id = std::to_string(0); + can.material_name = tray.filament_setting_id; + this->cans.push_back(can); + if (tray.id == std::to_string(VIRTUAL_TRAY_MAIN_ID)) { + this->nozzle_id = 0; + } + else { + this->nozzle_id = 1; + } + this->cans[0].material_state = AMSCanType::AMS_CAN_TYPE_VIRTUAL; + this->cans[0].material_colour = tray.decode_color(tray.color); + this->cans[0].material_remain = tray.remain; + this->cans[0].material_name = tray.type; +} + /************************************************* Description:AMSrefresh **************************************************/ diff --git a/src/slic3r/GUI/Widgets/AMSItem.hpp b/src/slic3r/GUI/Widgets/AMSItem.hpp index 52a82fc04b..7cc45bd72d 100644 --- a/src/slic3r/GUI/Widgets/AMSItem.hpp +++ b/src/slic3r/GUI/Widgets/AMSItem.hpp @@ -176,6 +176,7 @@ struct AMSinfo public: std::string ams_id; std::vector cans; + int nozzle_id = 0; std::string current_can_id; AMSPassRoadSTEP current_step; AMSAction current_action; @@ -191,6 +192,7 @@ public: { if (ams_id == other.ams_id && cans == other.cans && + nozzle_id == other.nozzle_id && current_can_id == other.current_can_id && current_step == other.current_step && current_action == other.current_action && @@ -217,7 +219,7 @@ public: }; bool parse_ams_info(MachineObject* obj, Ams *ams, bool remain_flag = false, bool humidity_flag = false); - + void ReadExtInfo(AmsTray tray); bool support_drying() const { return (ams_type == AMSModel::N3S_AMS) || (ams_type == AMSModel::N3F_AMS); }; };