From e5e121a0362ed8e9960da3d89ad536f77a602615 Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Tue, 24 Dec 2024 16:37:50 +0800 Subject: [PATCH] FIX: disable the bed_exclude_area 2. fix crash of ams item 3. fix crash in update_sync_status when ams is not calibrated jira: STUDIO-8934 Change-Id: I4c8acd36e2f921d0750c23d2b8a1d65dfa6b241a (cherry picked from commit 21865dc0558dd5019fa3e800b51e01a9c923fd82) --- src/slic3r/GUI/Plater.cpp | 6 ++++++ src/slic3r/GUI/Widgets/AMSItem.cpp | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index d9208d172f..b568216738 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -1192,6 +1192,9 @@ void Sidebar::priv::update_sync_status(const MachineObject *obj) // 2. update extruder status int extruder_nums = preset_bundle->get_printer_extruder_count(); + if (extruder_nums != obj->m_extder_data.extders.size()) + return; + std::vector extruder_infos(extruder_nums); std::vector nozzle_volume_types = wxGetApp().preset_bundle->project_config.option("nozzle_volume_type")->values; //for (size_t i = 0; i < nozzle_volume_types.size(); ++i) { @@ -1231,6 +1234,9 @@ void Sidebar::priv::update_sync_status(const MachineObject *obj) // machine_extruder_infos[extruder.id].diameter = extruder.current_nozzle_diameter; //} for (auto &item : obj->amsList) { + if (item.second->nozzle >= machine_extruder_infos.size()) + continue; + if (item.second->type == 4) { // N3S machine_extruder_infos[item.second->nozzle].ams_1++; } else { diff --git a/src/slic3r/GUI/Widgets/AMSItem.cpp b/src/slic3r/GUI/Widgets/AMSItem.cpp index bec6274caa..1ca86384de 100644 --- a/src/slic3r/GUI/Widgets/AMSItem.cpp +++ b/src/slic3r/GUI/Widgets/AMSItem.cpp @@ -2615,7 +2615,7 @@ void AMSPreview::doRender(wxDC &dc) } //single slot - else { + else if (m_amsinfo.cans.size() == 1) { auto iter = m_amsinfo.cans[0]; dc.SetPen(wxPen(*wxTRANSPARENT_PEN)); dc.SetBrush(StateColor::darkModeColorFor(AMS_CONTROL_DEF_BLOCK_BK_COLOUR));