diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index 5e92e762e..c3bda6624 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -1767,12 +1767,20 @@ unsigned int PresetBundle::sync_ams_list(unsigned int &unknowns) && boost::algorithm::starts_with(f.name, filament_type); }); } - if (iter == filaments.end()) + if (iter == filaments.end()) { + // Prefer old selection + if (filament_presets.size() < this->filament_presets.size()) { + filament_presets.push_back(this->filament_presets[filament_presets.size()]); + filament_colors.push_back(filament_color); + ++unknowns; + continue; + } iter = std::find_if(filaments.begin(), filaments.end(), [&filament_type](auto &f) { return f.is_compatible && f.is_system; }); - if (iter == filaments.end()) - continue; + if (iter == filaments.end()) + continue; + } ++unknowns; filament_id = iter->filament_id; }