FIX: config: add some error process logic when loading 3mf

jira: STUDIO-7956
Change-Id: I13084cfe5233da9e928dc8eb10d8ffe1bc38080c
This commit is contained in:
lane.wei 2025-03-19 14:54:20 +08:00
parent bf5d7811a0
commit 2ccc72f16e
1 changed files with 5 additions and 2 deletions

View File

@ -2781,7 +2781,10 @@ void PresetBundle::load_config_file_config(const std::string &name_or_path, bool
1;
#else
// BBS: use filament_colour insteadof filament_settings_id, filament_settings_id sometimes is not generated
size_t num_filaments = config.option<ConfigOptionStrings>("filament_colour")->size();
ConfigOptionStrings* filament_colour_option = config.option<ConfigOptionStrings>("filament_colour");
size_t num_filaments = filament_colour_option?filament_colour_option->size():0;
if (num_filaments == 0)
throw Slic3r::RuntimeError(std::string("Invalid configuration file: ") + name_or_path);
#endif
//BBS: add config related logs
@ -2836,7 +2839,7 @@ void PresetBundle::load_config_file_config(const std::string &name_or_path, bool
|| (extruder_variant_count < num_filaments)) {
assert(false);
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(": invalid config file %1%, can not find suitable filament_extruder_variant or filament_self_index") % name_or_path;
throw Slic3r::RuntimeError(std::string("invalid configuration file: ") + name_or_path);
throw Slic3r::RuntimeError(std::string("Invalid configuration file: ") + name_or_path);
}
if (num_filaments != extruder_variant_count) {
process_multi_extruder = true;