From 6b366ad8a99e1e9171325c2a32f192f54b1b8cd7 Mon Sep 17 00:00:00 2001 From: Ian Chua Date: Thu, 8 Oct 2026 20:42:11 +0800 Subject: [PATCH] fix: sync_ams_list should drop placeholder filaments --- src/libslic3r/PresetBundle.cpp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index 0b3d30d5a5..0522e8dcaa 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -3894,6 +3894,16 @@ unsigned int PresetBundle::sync_ams_list(std::vector{ams_filament_colors[i]}); + } else if (i < ams_infos.size() && ams_infos[i].is_placeholder) { + // Orca: an empty AMS slot is a placeholder, not a filament, so drop it instead of + // keeping or filling a slot for it. The device AMS panel still shows the empty tray. + continue; } else if (i < exist_presets.size()) { // Empty tray or beyond tray count: keep existing filament result_colors.push_back(exist_colors[i]); @@ -4295,8 +4303,8 @@ unsigned int PresetBundle::sync_ams_list(std::vectorvalues = result_color_types; this->filament_presets = result_presets; ams_multi_color_filment = result_multi_colors; - filament_map->values.resize(total, 1); - filament_volume_map->values.resize(total, static_cast(NozzleVolumeType::nvtStandard)); + filament_map->values.resize(result_presets.size(), 1); + filament_volume_map->values.resize(result_presets.size(), static_cast(NozzleVolumeType::nvtStandard)); } else { // BBL: existing wholesale replace filament_color->values = ams_filament_colors;