2581 {
2582 static const unsigned int MAX_TAGS_COUNT = 5;
2583 std::vector<std::pair<std::string, std::string>> ret;
2584
2585 auto check = [&ret, is_bbl_printer = print.
is_BBL_printer()](
const std::string& source,
const std::string& gcode) {
2586 std::vector<std::string> tags;
2588 if (!tags.empty()) {
2589 size_t i = 0;
2590 while (ret.size() < MAX_TAGS_COUNT && i < tags.size()) {
2591 ret.push_back({ source, tags[i] });
2592 ++i;
2593 }
2594 }
2595 }
2596 };
2597
2599 check(
_(
L(
"Machine start G-code")), config.machine_start_gcode.value);
2600 if (ret.size() < MAX_TAGS_COUNT)
check(
_(
L(
"Machine end G-code")), config.machine_end_gcode.value);
2601 if (ret.size() < MAX_TAGS_COUNT)
check(
_(
L(
"Before layer change G-code")), config.before_layer_change_gcode.value);
2602 if (ret.size() < MAX_TAGS_COUNT)
check(
_(
L(
"Layer change G-code")), config.layer_change_gcode.value);
2603 if (ret.size() < MAX_TAGS_COUNT)
check(
_(
L(
"Timelapse G-code")), config.time_lapse_gcode.value);
2604 if (ret.size() < MAX_TAGS_COUNT)
check(
_(
L(
"Timelapse G-code")), config.wrapping_detection_gcode.value);
2605 if (ret.size() < MAX_TAGS_COUNT)
check(
_(
L(
"Change filament G-code")), config.change_filament_gcode.value);
2606 if (ret.size() < MAX_TAGS_COUNT)
check(
_(
L(
"Printing by object G-code")), config.printing_by_object_gcode.value);
2607
2608
2609 if (ret.size() < MAX_TAGS_COUNT)
check(
_(
L(
"Change extrusion role G-code")), config.change_extrusion_role_gcode.value);
2610 if (ret.size() < MAX_TAGS_COUNT)
check(
_(
L(
"Process change extrusion role G-code")), config.process_change_extrusion_role_gcode.value);
2611 if (ret.size() < MAX_TAGS_COUNT)
check(
_(
L(
"Pause G-code")), config.machine_pause_gcode.value);
2612 if (ret.size() < MAX_TAGS_COUNT)
check(
_(
L(
"Template Custom G-code")), config.template_custom_gcode.value);
2613 if (ret.size() < MAX_TAGS_COUNT) {
2614 for (const std::string& value : config.filament_start_gcode.values) {
2615 check(
_(
L(
"Filament start G-code")), value);
2616 if (ret.size() == MAX_TAGS_COUNT)
2617 break;
2618 }
2619 }
2620 if (ret.size() < MAX_TAGS_COUNT) {
2621 for (const std::string& value : config.filament_end_gcode.values) {
2622 check(
_(
L(
"Filament end G-code")), value);
2623 if (ret.size() == MAX_TAGS_COUNT)
2624 break;
2625 }
2626 }
2627 if (ret.size() < MAX_TAGS_COUNT) {
2628 for (const std::string& value : config.filament_change_extrusion_role_gcode.values) {
2629 check(
_(
L(
"Filament change extrusion role G-code")), value);
2630 if (ret.size() == MAX_TAGS_COUNT)
2631 break;
2632 }
2633 }
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644 return ret;
2645 }
#define _(s)
Definition 3mf.cpp:306
#define L(s)
Definition ExtrusionEntity.cpp:25
static bool contains_reserved_tags(const std::string &gcode, unsigned int max_count, std::vector< std::string > &found_tag, bool is_bbl_printer)
Definition GCodeProcessor.cpp:2789
bool & is_BBL_printer()
Definition Print.hpp:1341
zaa_minimize_perimeter_height GCodeConfig
Definition PrintConfig.hpp:1951
bool check(ModelVolumeType volume_type)
Definition GLGizmoEmboss.cpp:515