From 478e8bda16c34609cb43692b70334f06122edcac Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Sat, 14 Mar 2026 23:30:37 +0800 Subject: [PATCH] Fix non-bbl printer filament grouping by mapping all filaments/tools to group 0 (#12449, #12766) --- src/libslic3r/GCode/ToolOrdering.cpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/libslic3r/GCode/ToolOrdering.cpp b/src/libslic3r/GCode/ToolOrdering.cpp index 08e004bc30..b75195ae67 100644 --- a/src/libslic3r/GCode/ToolOrdering.cpp +++ b/src/libslic3r/GCode/ToolOrdering.cpp @@ -1321,19 +1321,18 @@ void ToolOrdering::reorder_extruders_for_minimum_flush_volume(bool reorder_first return false; }; - if (m_print->is_BBL_printer() || number_of_extruders == 1){ + auto maps_without_group = filament_maps; + for (auto& item : maps_without_group) + item = 0; + reorder_filaments_for_minimum_flush_volume( filament_lists, - filament_maps, + m_print->is_BBL_printer() ? filament_maps : maps_without_group, // non-bbl printers do not support filament group yet layer_filaments, nozzle_flush_mtx, get_custom_seq, &filament_sequences ); - } else { - // For non-bbl multi-extruder printers we don't support filament group yet, so we keep the layer sequence because we don't flush based on order - filament_sequences = layer_filaments; - } auto curr_flush_info = calc_filament_change_info_by_toolorder(print_config, filament_maps, nozzle_flush_mtx, filament_sequences); if (nozzle_nums <= 1) @@ -1349,9 +1348,6 @@ void ToolOrdering::reorder_extruders_for_minimum_flush_volume(bool reorder_first // always calculate the info by one extruder { std::vector>filament_sequences_one_extruder; - auto maps_without_group = filament_maps; - for (auto& item : maps_without_group) - item = 0; reorder_filaments_for_minimum_flush_volume( filament_lists, maps_without_group,