From d0cbf620d7ce359ac7f437527d7969c7824d9fff Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Tue, 12 Nov 2024 18:42:13 +0800 Subject: [PATCH] FIX: config: fix some loading issue with filament_self_index 1. generate filament_self_index for old files in cli 2. set filament_self_index to default for old files using single extruder jira: no-jira Change-Id: I6e3f520723ee7f3a75634121604023ba319ff97a (cherry picked from commit d050aa4d3609e7ccf072b23fbfe820a839e0c3fd) --- src/OrcaSlicer.cpp | 2 +- src/libslic3r/PresetBundle.cpp | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/OrcaSlicer.cpp b/src/OrcaSlicer.cpp index e327cc1d13..9582adfe01 100644 --- a/src/OrcaSlicer.cpp +++ b/src/OrcaSlicer.cpp @@ -2840,7 +2840,7 @@ int CLI::run(int argc, char **argv) } } - if ((load_filament_count > 0) && m_print_config.option("filament_extruder_variant")) { + if (m_print_config.option("filament_extruder_variant")) { std::vector& filament_self_indice = m_print_config.option("filament_self_index", true)->values; int index_size = m_print_config.option("filament_extruder_variant")->size(); filament_self_indice.resize(index_size, 1); diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index f5acbe58b3..4a8e0b95a2 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -2633,7 +2633,13 @@ void PresetBundle::load_config_file_config(const std::string &name_or_path, bool bool process_multi_extruder = false; std::vector filament_variant_index; size_t extruder_variant_count; - std::vector filament_self_indice = std::move(config.option("filament_self_index", true)->values); + if (!config.option("filament_self_index")) { + std::vector& filament_self_indice = config.option("filament_self_index", true)->values; + filament_self_indice.resize(num_filaments); + for (int index = 0; index < num_filaments; index++) + filament_self_indice[index] = index + 1; + } + std::vector filament_self_indice = std::move(config.option("filament_self_index")->values); if (config.option("extruder_variant_list")) { //3mf support multiple extruder logic size_t extruder_count = config.option("nozzle_diameter")->values.size();