From 8cb358305c341074418fc8d75c260b0cb6bc661b Mon Sep 17 00:00:00 2001 From: tao wang Date: Wed, 5 Mar 2025 21:40:53 +0800 Subject: [PATCH] ENH:fix X&P printer displaying incorrect N3S jira:[none] Change-Id: I15b30e3f45b060b696e7dd2ab4617a7835e9e6c9 --- src/slic3r/GUI/Widgets/AMSControl.cpp | 154 +++++++++++--------------- 1 file changed, 64 insertions(+), 90 deletions(-) diff --git a/src/slic3r/GUI/Widgets/AMSControl.cpp b/src/slic3r/GUI/Widgets/AMSControl.cpp index 58d48faa6..5a32618be 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.cpp +++ b/src/slic3r/GUI/Widgets/AMSControl.cpp @@ -3125,7 +3125,11 @@ void AMSControl::CreateAmsSingleNozzle() //AddExtraAms(*ams_info); } else if (ams_info->cans.size() == 1) { - single_info.push_back(*ams_info); + m_item_ids[DEPUTY_NOZZLE_ID].push_back(ams_info->ams_id); + AddAmsPreview(*ams_info, ams_info->ams_type); + AddAms(*ams_info, AMSPanelPos::LEFT_PANEL); + + /*single_info.push_back(*ams_info); if (single_info.size() == MAX_AMS_NUM_IN_PANEL) { m_item_ids[DEPUTY_NOZZLE_ID].push_back(single_info[0].ams_id); m_item_ids[DEPUTY_NOZZLE_ID].push_back(single_info[1].ams_id); @@ -3134,7 +3138,7 @@ void AMSControl::CreateAmsSingleNozzle() AddAmsPreview(single_info, AMSPanelPos::LEFT_PANEL); AddAms(single_info, AMSPanelPos::LEFT_PANEL); single_info.clear(); - } + }*/ } } if (single_info.size() > 0){ @@ -3200,30 +3204,6 @@ void AMSControl::CreateAmsSingleNozzle() void AMSControl::Reset() { - /*auto caninfo0_0 = Caninfo{"0", "", *wxWHITE, AMSCanType::AMS_CAN_TYPE_NONE}; - auto caninfo0_1 = Caninfo{"1", "", *wxWHITE, AMSCanType::AMS_CAN_TYPE_NONE}; - auto caninfo0_2 = Caninfo{"2", "", *wxWHITE, AMSCanType::AMS_CAN_TYPE_NONE}; - auto caninfo0_3 = Caninfo{"3", "", *wxWHITE, AMSCanType::AMS_CAN_TYPE_NONE}; - - AMSinfo ams1 = AMSinfo{"0", std::vector{caninfo0_0, caninfo0_1, caninfo0_2, caninfo0_3}}; - AMSinfo ams2 = AMSinfo{"1", std::vector{caninfo0_0, caninfo0_1, caninfo0_2, caninfo0_3}}; - AMSinfo ams3 = AMSinfo{"2", std::vector{caninfo0_0, caninfo0_1, caninfo0_2, caninfo0_3}}; - AMSinfo ams4 = AMSinfo{"3", std::vector{caninfo0_0, caninfo0_1, caninfo0_2, caninfo0_3}}; - - std::vector ams_info{ams1, ams2, ams3, ams4}; - std::vector::iterator it;*/ - - /*Slic3r::DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager(); - if (dev) { - MachineObject* obj = dev->get_selected_machine(); - parse_object(obj); - } - - UpdateAms(m_ams_info, true); - m_current_show_ams = ""; - m_current_ams = ""; - m_current_select = "";*/ - m_ams_info.clear(); m_ext_info.clear(); m_dev_id.clear(); @@ -3392,74 +3372,68 @@ void AMSControl::UpdateAms(const std::string& series_name, std::vector //m_simplebook_ams_left->SetSelection(m_simplebook_ams_left->m_first); } - else - { - static bool first_time = true; - bool fresh = false; - static std::vectorams_info; - int nozzle_num = 2; - if (first_time){ - ams_info = GenerateSimulateData(); - fresh = true; - first_time = false; - } + //else + //{ + // static bool first_time = true; + // bool fresh = false; + // static std::vectorams_info; + // int nozzle_num = 2; + // if (first_time){ + // ams_info = GenerateSimulateData(); + // fresh = true; + // first_time = false; + // } - //Freeze(); + // //Freeze(); - // update item - m_ams_info.clear(); - m_ams_info = ams_info; - m_ext_info.clear(); - m_ext_info.push_back(ext_info[0]); - m_ext_info.push_back(ext_info[0]); - m_ext_info[0].ams_id = std::to_string(VIRTUAL_TRAY_MAIN_ID); - m_ext_info[0].nozzle_id = MAIN_NOZZLE_ID; - m_ext_info[1].ams_id = std::to_string(VIRTUAL_TRAY_DEPUTY_ID); - m_ext_info[1].nozzle_id = DEPUTY_NOZZLE_ID; - m_extder_data = data; - if (fresh){ - ClearAms(); - if (m_extder_data.total_extder_count >= 2) { - CreateAmsDoubleNozzle(); - } - else { - CreateAmsSingleNozzle(); - } - SetSize(wxSize(FromDIP(578), -1)); - SetMinSize(wxSize(FromDIP(578), -1)); - Layout(); - } - //Thaw(); + // // update item + // m_ams_info.clear(); + // m_ams_info = ams_info; + // m_ext_info.clear(); + // m_ext_info.push_back(ext_info[0]); + // m_ext_info.push_back(ext_info[0]); + // m_ext_info[0].ams_id = std::to_string(VIRTUAL_TRAY_MAIN_ID); + // m_ext_info[0].nozzle_id = MAIN_NOZZLE_ID; + // m_ext_info[1].ams_id = std::to_string(VIRTUAL_TRAY_DEPUTY_ID); + // m_ext_info[1].nozzle_id = DEPUTY_NOZZLE_ID; + // m_extder_data = data; + // if (fresh){ + // ClearAms(); + // if (m_extder_data.total_extder_count >= 2) { + // CreateAmsDoubleNozzle(); + // } + // else { + // CreateAmsSingleNozzle(); + // } + // SetSize(wxSize(FromDIP(578), -1)); + // SetMinSize(wxSize(FromDIP(578), -1)); + // Layout(); + // } + // //Thaw(); - // update cans + // // update cans - for (auto ams_item : m_ams_item_list) { - std::string ams_id = ams_item.first; - AmsItem* cans = ams_item.second; - if (atoi(cans->get_ams_id().c_str()) >= VIRTUAL_TRAY_DEPUTY_ID) { - for (auto ifo : m_ext_info) { - if (ifo.ams_id == ams_id) { - cans->Update(ifo); - cans->show_sn_value(m_ams_model == AMSModel::AMS_LITE ? false : true); - } - } - } - else { - for (auto ifo : m_ams_info) { - if (ifo.ams_id == ams_id) { - cans->Update(ifo); - cans->show_sn_value(m_ams_model == AMSModel::AMS_LITE ? false : true); - } - } - } - } - - /*if (m_current_show_ams.empty() && !is_reset) { - if (ams_info.size() > 0) { - SwitchAms(ams_info[0].ams_id); - } - }*/ - } + // for (auto ams_item : m_ams_item_list) { + // std::string ams_id = ams_item.first; + // AmsItem* cans = ams_item.second; + // if (atoi(cans->get_ams_id().c_str()) >= VIRTUAL_TRAY_DEPUTY_ID) { + // for (auto ifo : m_ext_info) { + // if (ifo.ams_id == ams_id) { + // cans->Update(ifo); + // cans->show_sn_value(m_ams_model == AMSModel::AMS_LITE ? false : true); + // } + // } + // } + // else { + // for (auto ifo : m_ams_info) { + // if (ifo.ams_id == ams_id) { + // cans->Update(ifo); + // cans->show_sn_value(m_ams_model == AMSModel::AMS_LITE ? false : true); + // } + // } + // } + // } + //} /*update humidity popup*/ if (m_percent_humidity_dry_popup->IsShown())