From 21865dc0558dd5019fa3e800b51e01a9c923fd82 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 --- src/slic3r/GUI/Plater.cpp | 6 ++++++ src/slic3r/GUI/Tab.cpp | 1 + src/slic3r/GUI/Widgets/AMSItem.cpp | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index aba9ca751..9423fe048 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -1228,6 +1228,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) { @@ -1267,6 +1270,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/Tab.cpp b/src/slic3r/GUI/Tab.cpp index b14cdf9b0..9fd18bf9e 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -4300,6 +4300,7 @@ void TabPrinter::toggle_options() toggle_option("support_chamber_temp_control",!is_BBL_printer); toggle_option("use_firmware_retraction", !is_BBL_printer); toggle_option("support_air_filtration",is_BBL_printer); + toggle_option("bed_exclude_area", !is_BBL_printer); auto flavor = m_config->option>("gcode_flavor")->value; bool is_marlin_flavor = flavor == gcfMarlinLegacy || flavor == gcfMarlinFirmware; // Disable silent mode for non-marlin firmwares. diff --git a/src/slic3r/GUI/Widgets/AMSItem.cpp b/src/slic3r/GUI/Widgets/AMSItem.cpp index 5bffacea2..af6878636 100644 --- a/src/slic3r/GUI/Widgets/AMSItem.cpp +++ b/src/slic3r/GUI/Widgets/AMSItem.cpp @@ -2614,7 +2614,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));