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));