mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-24 03:12:07 +00:00
ENH:add layer_filament_list.json record used filaments for each layer
jira: none Change-Id: Ib293ff9fdd284fef9e6de93260e2ba7cc3d66daa (cherry picked from commit 28046fbc23e174868f41535764076888a680d116)
This commit is contained in:
@@ -210,6 +210,8 @@ static constexpr const char *FILAMENT_COLOR_TAG = "color";
|
||||
static constexpr const char *FILAMENT_USED_M_TAG = "used_m";
|
||||
static constexpr const char *FILAMENT_USED_G_TAG = "used_g";
|
||||
static constexpr const char *FILAMENT_TRAY_INFO_ID_TAG = "tray_info_idx";
|
||||
static constexpr const char *LAYER_FILAMENT_LISTS_TAG = "layer_filament_lists";
|
||||
static constexpr const char *LAYER_FILAMENT_LIST_TAG = "layer_filament_list";
|
||||
|
||||
|
||||
static constexpr const char* CONFIG_TAG = "config";
|
||||
@@ -7953,6 +7955,30 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
||||
for (auto it = plate_data->warnings.begin(); it != plate_data->warnings.end(); it++) {
|
||||
stream << " <" << SLICE_WARNING_TAG << " msg=\"" << it->msg << "\" level=\"" << std::to_string(it->level) << "\" error_code =\"" << it->error_code << "\" />\n";
|
||||
}
|
||||
|
||||
if (!plate_data->layer_filaments.empty()) {
|
||||
stream << " <" << LAYER_FILAMENT_LISTS_TAG << ">\n";
|
||||
for (auto iter = plate_data->layer_filaments.begin(); iter != plate_data->layer_filaments.end(); ++iter) {
|
||||
// key
|
||||
std::vector<unsigned int> sequence = iter->first;
|
||||
std::stringstream key_stream;
|
||||
add_vector(key_stream, sequence);
|
||||
|
||||
// value
|
||||
std::vector<std::pair<int, int>> ranges = iter->second;
|
||||
std::stringstream value_stream;
|
||||
for (size_t i = 0; i < ranges.size(); ++i) {
|
||||
value_stream << ranges[i].first;
|
||||
value_stream << " ";
|
||||
value_stream << ranges[i].second;
|
||||
if (i != (ranges.size() - 1)) value_stream << ",";
|
||||
}
|
||||
|
||||
stream << " <" << LAYER_FILAMENT_LIST_TAG << " filament_list=\"" << key_stream.str() << "\" layer_ranges=\"" << value_stream.str() << "\" />\n";
|
||||
}
|
||||
stream << " </" << LAYER_FILAMENT_LISTS_TAG << ">\n";
|
||||
}
|
||||
|
||||
stream << " </" << PLATE_TAG << ">\n";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user