From 62624e2a13e5ef0372076673c2405dff1a7c92d0 Mon Sep 17 00:00:00 2001 From: "tao.wang" Date: Tue, 23 Jul 2024 17:49:23 +0800 Subject: [PATCH] FIX:fixed amscontrol issue-2 jira:[for fixed amscontrol issue2] Change-Id: Iefd80b4dbdeb1330c6a6a5695b5ceca45c99137a --- src/slic3r/GUI/StatusPanel.cpp | 6 +++--- src/slic3r/GUI/Widgets/AMSControl.cpp | 20 ++++++++++++-------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 58ec2e286..a486f0d65 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -2672,7 +2672,7 @@ void StatusPanel::update_ams(MachineObject *obj) is_vt_tray = true; // set segment 1, 2 - if (obj->m_tray_now == std::to_string(VIRTUAL_TRAY_MAIN_ID) ) { + if (obj->m_tray_now == std::to_string(VIRTUAL_TRAY_MAIN_ID) || obj->m_tray_now == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) { m_ams_control->SetAmsStep(obj->m_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE); } else { @@ -2688,7 +2688,7 @@ void StatusPanel::update_ams(MachineObject *obj) } // set segment 3 - if (obj->m_tray_now == std::to_string(VIRTUAL_TRAY_MAIN_ID)) { + if (obj->m_tray_now == std::to_string(VIRTUAL_TRAY_MAIN_ID) || obj->m_tray_now == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) { m_ams_control->SetExtruder(obj->is_filament_at_extruder(), true, obj->m_ams_id, obj->vt_slot[0].get_color()); } else { m_ams_control->SetExtruder(obj->is_filament_at_extruder(), false, obj->m_ams_id, m_ams_control->GetCanColour(obj->m_ams_id, obj->m_tray_id)); @@ -3723,7 +3723,7 @@ void StatusPanel::on_filament_edit(wxCommandEvent &event) try { m_filament_setting_dlg->ams_id = ams_id; m_filament_setting_dlg->slot_id = slot_id; - m_filament_setting_dlg->tray_id = 254; + //m_filament_setting_dlg->tray_id = 254; std::string sn_number; std::string filament; diff --git a/src/slic3r/GUI/Widgets/AMSControl.cpp b/src/slic3r/GUI/Widgets/AMSControl.cpp index f5ddca15c..34254f324 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.cpp +++ b/src/slic3r/GUI/Widgets/AMSControl.cpp @@ -3983,13 +3983,14 @@ void AMSControl::AddAmsPreview(AMSinfo info, AMSModel type) ams_prv = new AMSPreview(m_panel_items_left, wxID_ANY, info, type); m_sizer_items_left->Add(ams_prv, 0, wxALIGN_CENTER | wxRIGHT, 6); } - ams_prv->Bind(wxEVT_LEFT_DOWN, [this, ams_prv](wxMouseEvent& e) { - SwitchAms(ams_prv->m_amsinfo.ams_id); - e.Skip(); + + if (ams_prv){ + ams_prv->Bind(wxEVT_LEFT_DOWN, [this, ams_prv](wxMouseEvent &e) { + SwitchAms(ams_prv->m_amsinfo.ams_id); + e.Skip(); }); - - m_ams_preview_list[info.ams_id] = ams_prv; - + m_ams_preview_list[info.ams_id] = ams_prv; + } } void AMSControl::AddAms(AMSinfo info, bool left) @@ -4595,8 +4596,11 @@ void AMSControl::SetExtruder(bool on_off, bool is_vams, std::string ams_now, wxC m_vams_road->OnVamsLoading(false);*/ } else { - m_extruder->TurnOn(col); - m_extruder->OnAmsLoading(true, item->m_info.nozzle_id, col); + + if (item) { + m_extruder->TurnOn(col); + m_extruder->OnAmsLoading(true, item->m_info.nozzle_id, col); + } } } }