FIX: slice crash with incorrect filament_map of single printer

jira: none
Change-Id: I49bdcf03fc8abb24e41e0545e2d9cd3c55941df4
This commit is contained in:
zhimin.zeng 2024-10-30 15:06:17 +08:00 committed by lane.wei
parent d3c1c36a68
commit 83681128e0
1 changed files with 17 additions and 0 deletions

View File

@ -1130,6 +1130,23 @@ void ToolOrdering::reorder_extruders_for_minimum_flush_volume(bool reorder_first
std::transform(filament_maps.begin(), filament_maps.end(), filament_maps.begin(), [](int value) {return value - 1; });
}
}
else if (nozzle_nums == 1) {
filament_maps = m_print->get_filament_maps();
bool invalid = std::any_of(filament_maps.begin(), filament_maps.end(), [](int value) { return value != 1; });
if (invalid) {
assert(false);
std::stringstream sstream;
for (size_t i = 0; i < filament_maps.size(); ++i) {
if (i != 0)
sstream << " ";
sstream << filament_maps[i];
}
BOOST_LOG_TRIVIAL(error) << "The filament_map of single printer is invalid. filament_map = " << sstream.str();
std::fill(filament_maps.begin(), filament_maps.end(), 1);
m_print->update_filament_maps_to_config(filament_maps);
}
std::transform(filament_maps.begin(), filament_maps.end(), filament_maps.begin(), [](int value) { return value - 1; });
}
std::vector<std::vector<unsigned int>>filament_sequences;
std::vector<unsigned int>filament_lists(number_of_extruders);