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)
This commit is contained in:
lane.wei 2024-11-12 18:42:13 +08:00 committed by Noisyfox
parent 71f9126b77
commit d0cbf620d7
2 changed files with 8 additions and 2 deletions

View file

@ -2840,7 +2840,7 @@ int CLI::run(int argc, char **argv)
}
}
if ((load_filament_count > 0) && m_print_config.option<ConfigOptionStrings>("filament_extruder_variant")) {
if (m_print_config.option<ConfigOptionStrings>("filament_extruder_variant")) {
std::vector<int>& filament_self_indice = m_print_config.option<ConfigOptionInts>("filament_self_index", true)->values;
int index_size = m_print_config.option<ConfigOptionStrings>("filament_extruder_variant")->size();
filament_self_indice.resize(index_size, 1);

View file

@ -2633,7 +2633,13 @@ void PresetBundle::load_config_file_config(const std::string &name_or_path, bool
bool process_multi_extruder = false;
std::vector<int> filament_variant_index;
size_t extruder_variant_count;
std::vector<int> filament_self_indice = std::move(config.option<ConfigOptionInts>("filament_self_index", true)->values);
if (!config.option<ConfigOptionInts>("filament_self_index")) {
std::vector<int>& filament_self_indice = config.option<ConfigOptionInts>("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<int> filament_self_indice = std::move(config.option<ConfigOptionInts>("filament_self_index")->values);
if (config.option("extruder_variant_list")) {
//3mf support multiple extruder logic
size_t extruder_count = config.option<ConfigOptionFloats>("nozzle_diameter")->values.size();