diff --git a/src/slic3r/GUI/ObjColorDialog.cpp b/src/slic3r/GUI/ObjColorDialog.cpp index cf374c1ad6..e72459af62 100644 --- a/src/slic3r/GUI/ObjColorDialog.cpp +++ b/src/slic3r/GUI/ObjColorDialog.cpp @@ -814,10 +814,22 @@ void ObjColorPanel::update_new_add_final_colors() } else { m_max_filament_index = 0; } + if (m_max_filament_index <= m_colours.size()) { // Fix 20240904 m_new_add_final_colors.clear(); - } else { + } + else { m_new_add_final_colors.resize(m_max_filament_index - m_colours.size()); + for (int ii = m_colours.size() ; ii < m_max_filament_index; ii++) { + for (int j = 0; j < m_cluster_map_filaments.size(); j++) { + if (m_cluster_map_filaments[j] == (ii+ 1) && j < m_new_add_colors.size()) { + auto index = ii - m_colours.size(); + if (index < m_new_add_final_colors.size()) { + m_new_add_final_colors[index] = m_new_add_colors[j]; + } + } + } + } } if (m_new_add_final_colors.size() > 0) { m_is_add_filament = true;