From d050aa4d3609e7ccf072b23fbfe820a839e0c3fd 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 --- src/BambuStudio.cpp | 2 +- src/libslic3r/PresetBundle.cpp | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/BambuStudio.cpp b/src/BambuStudio.cpp index 38383d53d..41bb161ca 100644 --- a/src/BambuStudio.cpp +++ b/src/BambuStudio.cpp @@ -3166,7 +3166,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 602148950..58cdb1e79 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -2544,7 +2544,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();