diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index 7c6522310c..bb004ba1e2 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -2197,16 +2197,32 @@ void PresetBundle::set_num_filaments(unsigned int n, std::vector ne filament_presets.resize(n); } ConfigOptionStrings* filament_color = project_config.option("filament_colour"); + ConfigOptionStrings *filament_multi_color = project_config.option("filament_multi_colour"); + ConfigOptionStrings* filament_color_type = project_config.option("filament_colour_type"); + ConfigOptionInts* filament_map = project_config.option("filament_map"); + + filament_color->resize(n); + // Sync filament multi colour + filament_multi_color->values.resize(n); + for (size_t i = 0; i < n; i++) { + filament_multi_color->values[i] = filament_color->values[i]; + } + filament_color_type->resize(n); + filament_map->values.resize(n, 1); ams_multi_color_filment.resize(n); + // BBS set new filament color to new_color if (old_filament_count < n) { if (!new_colors.empty()) { for (int i = old_filament_count; i < n; i++) { filament_color->values[i] = new_colors[i - old_filament_count]; + filament_multi_color->values[i] = new_colors[i - old_filament_count]; + filament_color_type->values[i] = "1"; // default color type } } } + update_multi_material_filament_presets(); } void PresetBundle::set_num_filaments(unsigned int n, std::string new_color)