Browse Source

🧑‍💻 EXTRUDER_LOOP macro

Scott Lahteine 3 years ago
parent
commit
a80a303cbe

+ 10
- 10
Marlin/src/feature/fwretract.cpp View File

73
   settings.swap_retract_recover_feedrate_mm_s = RETRACT_RECOVER_FEEDRATE_SWAP;
73
   settings.swap_retract_recover_feedrate_mm_s = RETRACT_RECOVER_FEEDRATE_SWAP;
74
   current_hop = 0.0;
74
   current_hop = 0.0;
75
 
75
 
76
-  LOOP_L_N(i, EXTRUDERS) {
77
-    retracted[i] = false;
78
-    E_TERN_(retracted_swap[i] = false);
79
-    current_retract[i] = 0.0;
76
+  EXTRUDER_LOOP() {
77
+    retracted[e] = false;
78
+    E_TERN_(retracted_swap[e] = false);
79
+    current_retract[e] = 0.0;
80
   }
80
   }
81
 }
81
 }
82
 
82
 
111
       " swapping ", swapping,
111
       " swapping ", swapping,
112
       " active extruder ", active_extruder
112
       " active extruder ", active_extruder
113
     );
113
     );
114
-    LOOP_L_N(i, EXTRUDERS) {
115
-      SERIAL_ECHOLNPGM("retracted[", i, "] ", AS_DIGIT(retracted[i]));
114
+    EXTRUDER_LOOP() {
115
+      SERIAL_ECHOLNPGM("retracted[", e, "] ", AS_DIGIT(retracted[e]));
116
       #if HAS_MULTI_EXTRUDER
116
       #if HAS_MULTI_EXTRUDER
117
-        SERIAL_ECHOLNPGM("retracted_swap[", i, "] ", AS_DIGIT(retracted_swap[i]));
117
+        SERIAL_ECHOLNPGM("retracted_swap[", e, "] ", AS_DIGIT(retracted_swap[e]));
118
       #endif
118
       #endif
119
     }
119
     }
120
     SERIAL_ECHOLNPGM("current_position.z ", current_position.z);
120
     SERIAL_ECHOLNPGM("current_position.z ", current_position.z);
184
     SERIAL_ECHOLNPGM("retracting ", AS_DIGIT(retracting));
184
     SERIAL_ECHOLNPGM("retracting ", AS_DIGIT(retracting));
185
     SERIAL_ECHOLNPGM("swapping ", AS_DIGIT(swapping));
185
     SERIAL_ECHOLNPGM("swapping ", AS_DIGIT(swapping));
186
     SERIAL_ECHOLNPGM("active_extruder ", active_extruder);
186
     SERIAL_ECHOLNPGM("active_extruder ", active_extruder);
187
-    LOOP_L_N(i, EXTRUDERS) {
188
-      SERIAL_ECHOLNPGM("retracted[", i, "] ", AS_DIGIT(retracted[i]));
187
+    EXTRUDER_LOOP() {
188
+      SERIAL_ECHOLNPGM("retracted[", e, "] ", AS_DIGIT(retracted[e]));
189
       #if HAS_MULTI_EXTRUDER
189
       #if HAS_MULTI_EXTRUDER
190
-        SERIAL_ECHOLNPGM("retracted_swap[", i, "] ", AS_DIGIT(retracted_swap[i]));
190
+        SERIAL_ECHOLNPGM("retracted_swap[", e, "] ", AS_DIGIT(retracted_swap[e]));
191
       #endif
191
       #endif
192
     }
192
     }
193
     SERIAL_ECHOLNPGM("current_position.z ", current_position.z);
193
     SERIAL_ECHOLNPGM("current_position.z ", current_position.z);

+ 1
- 1
Marlin/src/feature/fwretract.h View File

64
   static void reset();
64
   static void reset();
65
 
65
 
66
   static void refresh_autoretract() {
66
   static void refresh_autoretract() {
67
-    LOOP_L_N(i, EXTRUDERS) retracted[i] = false;
67
+    EXTRUDER_LOOP() retracted[e] = false;
68
   }
68
   }
69
 
69
 
70
   static void enable_autoretract(const bool enable) {
70
   static void enable_autoretract(const bool enable) {

+ 5
- 5
Marlin/src/feature/powerloss.cpp View File

196
     #if DISABLED(NO_VOLUMETRICS)
196
     #if DISABLED(NO_VOLUMETRICS)
197
       info.flag.volumetric_enabled = parser.volumetric_enabled;
197
       info.flag.volumetric_enabled = parser.volumetric_enabled;
198
       #if HAS_MULTI_EXTRUDER
198
       #if HAS_MULTI_EXTRUDER
199
-        for (int8_t e = 0; e < EXTRUDERS; e++) info.filament_size[e] = planner.filament_size[e];
199
+        EXTRUDER_LOOP() info.filament_size[e] = planner.filament_size[e];
200
       #else
200
       #else
201
         if (parser.volumetric_enabled) info.filament_size[0] = planner.filament_size[active_extruder];
201
         if (parser.volumetric_enabled) info.filament_size[0] = planner.filament_size[active_extruder];
202
       #endif
202
       #endif
461
   // Recover volumetric extrusion state
461
   // Recover volumetric extrusion state
462
   #if DISABLED(NO_VOLUMETRICS)
462
   #if DISABLED(NO_VOLUMETRICS)
463
     #if HAS_MULTI_EXTRUDER
463
     #if HAS_MULTI_EXTRUDER
464
-      for (int8_t e = 0; e < EXTRUDERS; e++) {
464
+      EXTRUDER_LOOP() {
465
         sprintf_P(cmd, PSTR("M200T%iD%s"), e, dtostrf(info.filament_size[e], 1, 3, str_1));
465
         sprintf_P(cmd, PSTR("M200T%iD%s"), e, dtostrf(info.filament_size[e], 1, 3, str_1));
466
         gcode.process_subcommands_now(cmd);
466
         gcode.process_subcommands_now(cmd);
467
       }
467
       }
511
 
511
 
512
   // Restore retract and hop state from an active `G10` command
512
   // Restore retract and hop state from an active `G10` command
513
   #if ENABLED(FWRETRACT)
513
   #if ENABLED(FWRETRACT)
514
-    LOOP_L_N(e, EXTRUDERS) {
514
+    EXTRUDER_LOOP() {
515
       if (info.retract[e] != 0.0) {
515
       if (info.retract[e] != 0.0) {
516
         fwretract.current_retract[e] = info.retract[e];
516
         fwretract.current_retract[e] = info.retract[e];
517
         fwretract.retracted[e] = true;
517
         fwretract.retracted[e] = true;
634
 
634
 
635
         #if DISABLED(NO_VOLUMETRICS)
635
         #if DISABLED(NO_VOLUMETRICS)
636
           DEBUG_ECHOPGM("filament_size:");
636
           DEBUG_ECHOPGM("filament_size:");
637
-          LOOP_L_N(i, EXTRUDERS) DEBUG_ECHOLNPGM(" ", info.filament_size[i]);
637
+          EXTRUDER_LOOP() DEBUG_ECHOLNPGM(" ", info.filament_size[e]);
638
           DEBUG_EOL();
638
           DEBUG_EOL();
639
         #endif
639
         #endif
640
 
640
 
666
 
666
 
667
         #if ENABLED(FWRETRACT)
667
         #if ENABLED(FWRETRACT)
668
           DEBUG_ECHOPGM("retract: ");
668
           DEBUG_ECHOPGM("retract: ");
669
-          for (int8_t e = 0; e < EXTRUDERS; e++) {
669
+          EXTRUDER_LOOP() {
670
             DEBUG_ECHO(info.retract[e]);
670
             DEBUG_ECHO(info.retract[e]);
671
             if (e < EXTRUDERS - 1) DEBUG_CHAR(',');
671
             if (e < EXTRUDERS - 1) DEBUG_CHAR(',');
672
           }
672
           }

+ 3
- 3
Marlin/src/gcode/config/M200-M205.cpp View File

93
     }
93
     }
94
     #else
94
     #else
95
       SERIAL_ECHOLNPGM("  M200 S", parser.volumetric_enabled);
95
       SERIAL_ECHOLNPGM("  M200 S", parser.volumetric_enabled);
96
-      LOOP_L_N(i, EXTRUDERS) {
96
+      EXTRUDER_LOOP() {
97
         report_echo_start(forReplay);
97
         report_echo_start(forReplay);
98
         SERIAL_ECHOLNPGM(
98
         SERIAL_ECHOLNPGM(
99
-          "  M200 T", i, " D", LINEAR_UNIT(planner.filament_size[i])
99
+          "  M200 T", e, " D", LINEAR_UNIT(planner.filament_size[e])
100
           #if ENABLED(VOLUMETRIC_EXTRUDER_LIMIT)
100
           #if ENABLED(VOLUMETRIC_EXTRUDER_LIMIT)
101
-            , " L", LINEAR_UNIT(planner.volumetric_extruder_limit[i])
101
+            , " L", LINEAR_UNIT(planner.volumetric_extruder_limit[e])
102
           #endif
102
           #endif
103
         );
103
         );
104
       }
104
       }

+ 3
- 3
Marlin/src/gcode/control/M17_M18_M84.cpp View File

77
     }
77
     }
78
   }
78
   }
79
   #if HAS_EXTRUDERS
79
   #if HAS_EXTRUDERS
80
-    LOOP_L_N(e, EXTRUDERS) {
80
+    EXTRUDER_LOOP() {
81
       const uint8_t a = INDEX_OF_AXIS(E_AXIS, e);
81
       const uint8_t a = INDEX_OF_AXIS(E_AXIS, e);
82
       if (TEST(shall_enable, a)) {
82
       if (TEST(shall_enable, a)) {
83
         stepper.ENABLE_EXTRUDER(e);
83
         stepper.ENABLE_EXTRUDER(e);
161
       DEBUG_ECHOLNPGM(" ... still_enabled=", hex_word(still_enabled));
161
       DEBUG_ECHOLNPGM(" ... still_enabled=", hex_word(still_enabled));
162
     }
162
     }
163
   #if HAS_EXTRUDERS
163
   #if HAS_EXTRUDERS
164
-    LOOP_L_N(e, EXTRUDERS) {
164
+    EXTRUDER_LOOP() {
165
       const uint8_t a = INDEX_OF_AXIS(E_AXIS, e);
165
       const uint8_t a = INDEX_OF_AXIS(E_AXIS, e);
166
       if (TEST(to_disable.bits, a)) {
166
       if (TEST(to_disable.bits, a)) {
167
         DEBUG_ECHOPGM("Try to disable E", AS_DIGIT(e), " (", a, ") with overlap ", hex_word(enable_overlap[a]), " ... ");
167
         DEBUG_ECHOPGM("Try to disable E", AS_DIGIT(e), " (", a, ") with overlap ", hex_word(enable_overlap[a]), " ... ");
194
     }
194
     }
195
   }
195
   }
196
   #if HAS_EXTRUDERS
196
   #if HAS_EXTRUDERS
197
-    LOOP_L_N(e, EXTRUDERS) {
197
+    EXTRUDER_LOOP() {
198
       const uint8_t a = INDEX_OF_AXIS(E_AXIS, e);
198
       const uint8_t a = INDEX_OF_AXIS(E_AXIS, e);
199
       if (TEST(still_enabled, a)) {
199
       if (TEST(still_enabled, a)) {
200
         SERIAL_CHAR('E', '0' + e);
200
         SERIAL_CHAR('E', '0' + e);

+ 9
- 9
Marlin/src/gcode/feature/advance/M900.cpp View File

117
       #if EXTRUDERS < 2
117
       #if EXTRUDERS < 2
118
         SERIAL_ECHOLNPGM("Advance S", new_slot, " K", kref, "(S", !new_slot, " K", lref, ")");
118
         SERIAL_ECHOLNPGM("Advance S", new_slot, " K", kref, "(S", !new_slot, " K", lref, ")");
119
       #else
119
       #else
120
-        LOOP_L_N(i, EXTRUDERS) {
121
-          const bool slot = TEST(lin_adv_slot, i);
122
-          SERIAL_ECHOLNPGM("Advance T", i, " S", slot, " K", planner.extruder_advance_K[i],
123
-                            "(S", !slot, " K", other_extruder_advance_K[i], ")");
120
+        EXTRUDER_LOOP() {
121
+          const bool slot = TEST(lin_adv_slot, e);
122
+          SERIAL_ECHOLNPGM("Advance T", e, " S", slot, " K", planner.extruder_advance_K[e],
123
+                            "(S", !slot, " K", other_extruder_advance_K[e], ")");
124
           SERIAL_EOL();
124
           SERIAL_EOL();
125
         }
125
         }
126
       #endif
126
       #endif
132
         SERIAL_ECHOLNPGM("Advance K=", planner.extruder_advance_K[0]);
132
         SERIAL_ECHOLNPGM("Advance K=", planner.extruder_advance_K[0]);
133
       #else
133
       #else
134
         SERIAL_ECHOPGM("Advance K");
134
         SERIAL_ECHOPGM("Advance K");
135
-        LOOP_L_N(i, EXTRUDERS) {
136
-          SERIAL_CHAR(' ', '0' + i, ':');
137
-          SERIAL_DECIMAL(planner.extruder_advance_K[i]);
135
+        EXTRUDER_LOOP() {
136
+          SERIAL_CHAR(' ', '0' + e, ':');
137
+          SERIAL_DECIMAL(planner.extruder_advance_K[e]);
138
         }
138
         }
139
         SERIAL_EOL();
139
         SERIAL_EOL();
140
       #endif
140
       #endif
150
     report_echo_start(forReplay);
150
     report_echo_start(forReplay);
151
     SERIAL_ECHOLNPGM("  M900 K", planner.extruder_advance_K[0]);
151
     SERIAL_ECHOLNPGM("  M900 K", planner.extruder_advance_K[0]);
152
   #else
152
   #else
153
-    LOOP_L_N(i, EXTRUDERS) {
153
+    EXTRUDER_LOOP() {
154
       report_echo_start(forReplay);
154
       report_echo_start(forReplay);
155
-      SERIAL_ECHOLNPGM("  M900 T", i, " K", planner.extruder_advance_K[i]);
155
+      SERIAL_ECHOLNPGM("  M900 T", e, " K", planner.extruder_advance_K[e]);
156
     }
156
     }
157
   #endif
157
   #endif
158
 }
158
 }

+ 1
- 1
Marlin/src/gcode/feature/pause/M603.cpp View File

72
     SERIAL_ECHOPGM("  M603 L", LINEAR_UNIT(fc_settings[0].load_length), " U", LINEAR_UNIT(fc_settings[0].unload_length), " ;");
72
     SERIAL_ECHOPGM("  M603 L", LINEAR_UNIT(fc_settings[0].load_length), " U", LINEAR_UNIT(fc_settings[0].unload_length), " ;");
73
     say_units();
73
     say_units();
74
   #else
74
   #else
75
-    LOOP_L_N(e, EXTRUDERS) {
75
+    EXTRUDER_LOOP() {
76
       report_echo_start(forReplay);
76
       report_echo_start(forReplay);
77
       SERIAL_ECHOPGM("  M603 T", e, " L", LINEAR_UNIT(fc_settings[e].load_length), " U", LINEAR_UNIT(fc_settings[e].unload_length), " ;");
77
       SERIAL_ECHOPGM("  M603 T", e, " L", LINEAR_UNIT(fc_settings[e].load_length), " U", LINEAR_UNIT(fc_settings[e].unload_length), " ;");
78
       say_units();
78
       say_units();

+ 1
- 0
Marlin/src/inc/Conditionals_LCD.h View File

749
 #endif
749
 #endif
750
 
750
 
751
 // Helper macros for extruder and hotend arrays
751
 // Helper macros for extruder and hotend arrays
752
+#define EXTRUDER_LOOP() for (int8_t e = 0; e < EXTRUDERS; e++)
752
 #define HOTEND_LOOP() for (int8_t e = 0; e < HOTENDS; e++)
753
 #define HOTEND_LOOP() for (int8_t e = 0; e < HOTENDS; e++)
753
 #define ARRAY_BY_EXTRUDERS(V...) ARRAY_N(EXTRUDERS, V)
754
 #define ARRAY_BY_EXTRUDERS(V...) ARRAY_N(EXTRUDERS, V)
754
 #define ARRAY_BY_EXTRUDERS1(v1) ARRAY_N_1(EXTRUDERS, v1)
755
 #define ARRAY_BY_EXTRUDERS1(v1) ARRAY_N_1(EXTRUDERS, v1)

+ 10
- 10
Marlin/src/lcd/menu/menu_advanced.cpp View File

109
       #if EXTRUDERS == 1
109
       #if EXTRUDERS == 1
110
         EDIT_ITEM(float42_52, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 10);
110
         EDIT_ITEM(float42_52, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 10);
111
       #elif HAS_MULTI_EXTRUDER
111
       #elif HAS_MULTI_EXTRUDER
112
-        LOOP_L_N(n, EXTRUDERS)
113
-          EDIT_ITEM_N(float42_52, n, MSG_ADVANCE_K_E, &planner.extruder_advance_K[n], 0, 10);
112
+        EXTRUDER_LOOP()
113
+          EDIT_ITEM_N(float42_52, e, MSG_ADVANCE_K_E, &planner.extruder_advance_K[e], 0, 10);
114
       #endif
114
       #endif
115
     #endif
115
     #endif
116
 
116
 
120
       #if ENABLED(VOLUMETRIC_EXTRUDER_LIMIT)
120
       #if ENABLED(VOLUMETRIC_EXTRUDER_LIMIT)
121
         EDIT_ITEM_FAST(float42_52, MSG_VOLUMETRIC_LIMIT, &planner.volumetric_extruder_limit[active_extruder], 0.0f, 20.0f, planner.calculate_volumetric_extruder_limits);
121
         EDIT_ITEM_FAST(float42_52, MSG_VOLUMETRIC_LIMIT, &planner.volumetric_extruder_limit[active_extruder], 0.0f, 20.0f, planner.calculate_volumetric_extruder_limits);
122
         #if HAS_MULTI_EXTRUDER
122
         #if HAS_MULTI_EXTRUDER
123
-          LOOP_L_N(n, EXTRUDERS)
124
-            EDIT_ITEM_FAST_N(float42_52, n, MSG_VOLUMETRIC_LIMIT_E, &planner.volumetric_extruder_limit[n], 0.0f, 20.00f, planner.calculate_volumetric_extruder_limits);
123
+          EXTRUDER_LOOP()
124
+            EDIT_ITEM_FAST_N(float42_52, e, MSG_VOLUMETRIC_LIMIT_E, &planner.volumetric_extruder_limit[e], 0.0f, 20.00f, planner.calculate_volumetric_extruder_limits);
125
         #endif
125
         #endif
126
       #endif
126
       #endif
127
 
127
 
128
       if (parser.volumetric_enabled) {
128
       if (parser.volumetric_enabled) {
129
         EDIT_ITEM_FAST(float43, MSG_FILAMENT_DIAM, &planner.filament_size[active_extruder], 1.5f, 3.25f, planner.calculate_volumetric_multipliers);
129
         EDIT_ITEM_FAST(float43, MSG_FILAMENT_DIAM, &planner.filament_size[active_extruder], 1.5f, 3.25f, planner.calculate_volumetric_multipliers);
130
         #if HAS_MULTI_EXTRUDER
130
         #if HAS_MULTI_EXTRUDER
131
-          LOOP_L_N(n, EXTRUDERS)
132
-            EDIT_ITEM_FAST_N(float43, n, MSG_FILAMENT_DIAM_E, &planner.filament_size[n], 1.5f, 3.25f, planner.calculate_volumetric_multipliers);
131
+          EXTRUDER_LOOP()
132
+            EDIT_ITEM_FAST_N(float43, e, MSG_FILAMENT_DIAM_E, &planner.filament_size[e], 1.5f, 3.25f, planner.calculate_volumetric_multipliers);
133
         #endif
133
         #endif
134
       }
134
       }
135
     #endif
135
     #endif
139
 
139
 
140
       EDIT_ITEM_FAST(float4, MSG_FILAMENT_UNLOAD, &fc_settings[active_extruder].unload_length, 0, extrude_maxlength);
140
       EDIT_ITEM_FAST(float4, MSG_FILAMENT_UNLOAD, &fc_settings[active_extruder].unload_length, 0, extrude_maxlength);
141
       #if HAS_MULTI_EXTRUDER
141
       #if HAS_MULTI_EXTRUDER
142
-        LOOP_L_N(n, EXTRUDERS)
143
-          EDIT_ITEM_FAST_N(float4, n, MSG_FILAMENTUNLOAD_E, &fc_settings[n].unload_length, 0, extrude_maxlength);
142
+        EXTRUDER_LOOP()
143
+          EDIT_ITEM_FAST_N(float4, e, MSG_FILAMENTUNLOAD_E, &fc_settings[e].unload_length, 0, extrude_maxlength);
144
       #endif
144
       #endif
145
 
145
 
146
       EDIT_ITEM_FAST(float4, MSG_FILAMENT_LOAD, &fc_settings[active_extruder].load_length, 0, extrude_maxlength);
146
       EDIT_ITEM_FAST(float4, MSG_FILAMENT_LOAD, &fc_settings[active_extruder].load_length, 0, extrude_maxlength);
147
       #if HAS_MULTI_EXTRUDER
147
       #if HAS_MULTI_EXTRUDER
148
-        LOOP_L_N(n, EXTRUDERS)
149
-          EDIT_ITEM_FAST_N(float4, n, MSG_FILAMENTLOAD_E, &fc_settings[n].load_length, 0, extrude_maxlength);
148
+        EXTRUDER_LOOP()
149
+          EDIT_ITEM_FAST_N(float4, e, MSG_FILAMENTLOAD_E, &fc_settings[e].load_length, 0, extrude_maxlength);
150
       #endif
150
       #endif
151
     #endif
151
     #endif
152
 
152
 

+ 3
- 3
Marlin/src/lcd/menu/menu_configuration.cpp View File

145
       EDIT_ITEM(uint8, MSG_TOOL_MIGRATION_END, &migration.last, 0, EXTRUDERS - 1);
145
       EDIT_ITEM(uint8, MSG_TOOL_MIGRATION_END, &migration.last, 0, EXTRUDERS - 1);
146
 
146
 
147
       // Migrate to a chosen extruder
147
       // Migrate to a chosen extruder
148
-      LOOP_L_N(s, EXTRUDERS) {
149
-        if (s != active_extruder) {
150
-          ACTION_ITEM_N_P(s, msg_migrate, []{
148
+      EXTRUDER_LOOP() {
149
+        if (e != active_extruder) {
150
+          ACTION_ITEM_N_P(e, msg_migrate, []{
151
             char cmd[12];
151
             char cmd[12];
152
             sprintf_P(cmd, PSTR("M217 T%i"), int(MenuItemBase::itemIndex));
152
             sprintf_P(cmd, PSTR("M217 T%i"), int(MenuItemBase::itemIndex));
153
             queue.inject(cmd);
153
             queue.inject(cmd);

+ 5
- 5
Marlin/src/lcd/menu/menu_mmu2.cpp View File

48
   ui.reset_status();
48
   ui.reset_status();
49
 }
49
 }
50
 void action_mmu2_load_all() {
50
 void action_mmu2_load_all() {
51
-  LOOP_L_N(i, EXTRUDERS) _mmu2_load_filament(i);
51
+  EXTRUDER_LOOP() _mmu2_load_filament(e);
52
   ui.return_to_status();
52
   ui.return_to_status();
53
 }
53
 }
54
 
54
 
56
   START_MENU();
56
   START_MENU();
57
   BACK_ITEM(MSG_MMU2_MENU);
57
   BACK_ITEM(MSG_MMU2_MENU);
58
   ACTION_ITEM(MSG_MMU2_ALL, action_mmu2_load_all);
58
   ACTION_ITEM(MSG_MMU2_ALL, action_mmu2_load_all);
59
-  LOOP_L_N(i, EXTRUDERS) ACTION_ITEM_N(i, MSG_MMU2_FILAMENT_N, []{ _mmu2_load_filament(MenuItemBase::itemIndex); });
59
+  EXTRUDER_LOOP() ACTION_ITEM_N(e, MSG_MMU2_FILAMENT_N, []{ _mmu2_load_filament(MenuItemBase::itemIndex); });
60
   END_MENU();
60
   END_MENU();
61
 }
61
 }
62
 
62
 
63
 void menu_mmu2_load_to_nozzle() {
63
 void menu_mmu2_load_to_nozzle() {
64
   START_MENU();
64
   START_MENU();
65
   BACK_ITEM(MSG_MMU2_MENU);
65
   BACK_ITEM(MSG_MMU2_MENU);
66
-  LOOP_L_N(i, EXTRUDERS) ACTION_ITEM_N(i, MSG_MMU2_FILAMENT_N, []{ action_mmu2_load_filament_to_nozzle(MenuItemBase::itemIndex); });
66
+  EXTRUDER_LOOP() ACTION_ITEM_N(e, MSG_MMU2_FILAMENT_N, []{ action_mmu2_load_filament_to_nozzle(MenuItemBase::itemIndex); });
67
   END_MENU();
67
   END_MENU();
68
 }
68
 }
69
 
69
 
89
 void menu_mmu2_eject_filament() {
89
 void menu_mmu2_eject_filament() {
90
   START_MENU();
90
   START_MENU();
91
   BACK_ITEM(MSG_MMU2_MENU);
91
   BACK_ITEM(MSG_MMU2_MENU);
92
-  LOOP_L_N(i, EXTRUDERS) ACTION_ITEM_N(i, MSG_MMU2_FILAMENT_N, []{ _mmu2_eject_filament(MenuItemBase::itemIndex); });
92
+  EXTRUDER_LOOP() ACTION_ITEM_N(e, MSG_MMU2_FILAMENT_N, []{ _mmu2_eject_filament(MenuItemBase::itemIndex); });
93
   END_MENU();
93
   END_MENU();
94
 }
94
 }
95
 
95
 
130
   #if LCD_HEIGHT > 2
130
   #if LCD_HEIGHT > 2
131
     STATIC_ITEM(MSG_MMU2_CHOOSE_FILAMENT_HEADER, SS_DEFAULT|SS_INVERT);
131
     STATIC_ITEM(MSG_MMU2_CHOOSE_FILAMENT_HEADER, SS_DEFAULT|SS_INVERT);
132
   #endif
132
   #endif
133
-  LOOP_L_N(i, EXTRUDERS) ACTION_ITEM_N(i, MSG_MMU2_FILAMENT_N, []{ action_mmu2_chosen(MenuItemBase::itemIndex); });
133
+  EXTRUDER_LOOP() ACTION_ITEM_N(e, MSG_MMU2_FILAMENT_N, []{ action_mmu2_chosen(MenuItemBase::itemIndex); });
134
   END_MENU();
134
   END_MENU();
135
 }
135
 }
136
 
136
 

+ 4
- 4
Marlin/src/lcd/menu/menu_tune.cpp View File

199
     EDIT_ITEM(int3, MSG_FLOW, &planner.flow_percentage[active_extruder], 10, 999, []{ planner.refresh_e_factor(active_extruder); });
199
     EDIT_ITEM(int3, MSG_FLOW, &planner.flow_percentage[active_extruder], 10, 999, []{ planner.refresh_e_factor(active_extruder); });
200
     // Flow En:
200
     // Flow En:
201
     #if HAS_MULTI_EXTRUDER
201
     #if HAS_MULTI_EXTRUDER
202
-      LOOP_L_N(n, EXTRUDERS)
203
-        EDIT_ITEM_N(int3, n, MSG_FLOW_N, &planner.flow_percentage[n], 10, 999, []{ planner.refresh_e_factor(MenuItemBase::itemIndex); });
202
+      EXTRUDER_LOOP()
203
+        EDIT_ITEM_N(int3, e, MSG_FLOW_N, &planner.flow_percentage[e], 10, 999, []{ planner.refresh_e_factor(MenuItemBase::itemIndex); });
204
     #endif
204
     #endif
205
   #endif
205
   #endif
206
 
206
 
211
     #if EXTRUDERS == 1
211
     #if EXTRUDERS == 1
212
       EDIT_ITEM(float42_52, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 10);
212
       EDIT_ITEM(float42_52, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 10);
213
     #elif HAS_MULTI_EXTRUDER
213
     #elif HAS_MULTI_EXTRUDER
214
-      LOOP_L_N(n, EXTRUDERS)
215
-        EDIT_ITEM_N(float42_52, n, MSG_ADVANCE_K_E, &planner.extruder_advance_K[n], 0, 10);
214
+      EXTRUDER_LOOP()
215
+        EDIT_ITEM_N(float42_52, e, MSG_ADVANCE_K_E, &planner.extruder_advance_K[e], 0, 10);
216
     #endif
216
     #endif
217
   #endif
217
   #endif
218
 
218
 

+ 1
- 1
Marlin/src/module/planner.cpp View File

1505
     volumetric_extruder_feedrate_limit[e] = (lim && siz) ? lim / CIRCLE_AREA(siz * 0.5f) : 0;
1505
     volumetric_extruder_feedrate_limit[e] = (lim && siz) ? lim / CIRCLE_AREA(siz * 0.5f) : 0;
1506
   }
1506
   }
1507
   void Planner::calculate_volumetric_extruder_limits() {
1507
   void Planner::calculate_volumetric_extruder_limits() {
1508
-    LOOP_L_N(e, EXTRUDERS) calculate_volumetric_extruder_limit(e);
1508
+    EXTRUDER_LOOP() calculate_volumetric_extruder_limit(e);
1509
   }
1509
   }
1510
 
1510
 
1511
 #endif
1511
 #endif

+ 2
- 2
Marlin/src/module/planner.h View File

928
     #if HAS_LINEAR_E_JERK
928
     #if HAS_LINEAR_E_JERK
929
       FORCE_INLINE static void recalculate_max_e_jerk() {
929
       FORCE_INLINE static void recalculate_max_e_jerk() {
930
         const float prop = junction_deviation_mm * SQRT(0.5) / (1.0f - SQRT(0.5));
930
         const float prop = junction_deviation_mm * SQRT(0.5) / (1.0f - SQRT(0.5));
931
-        LOOP_L_N(i, EXTRUDERS)
932
-          max_e_jerk[E_INDEX_N(i)] = SQRT(prop * settings.max_acceleration_mm_per_s2[E_INDEX_N(i)]);
931
+        EXTRUDER_LOOP()
932
+          max_e_jerk[E_INDEX_N(e)] = SQRT(prop * settings.max_acceleration_mm_per_s2[E_INDEX_N(e)]);
933
       }
933
       }
934
     #endif
934
     #endif
935
 
935
 

+ 4
- 4
Marlin/src/module/settings.cpp View File

3138
   //
3138
   //
3139
 
3139
 
3140
   #if ENABLED(LIN_ADVANCE)
3140
   #if ENABLED(LIN_ADVANCE)
3141
-    LOOP_L_N(i, EXTRUDERS) {
3142
-      planner.extruder_advance_K[i] = LIN_ADVANCE_K;
3143
-      TERN_(EXTRA_LIN_ADVANCE_K, other_extruder_advance_K[i] = LIN_ADVANCE_K);
3141
+    EXTRUDER_LOOP() {
3142
+      planner.extruder_advance_K[e] = LIN_ADVANCE_K;
3143
+      TERN_(EXTRA_LIN_ADVANCE_K, other_extruder_advance_K[e] = LIN_ADVANCE_K);
3144
     }
3144
     }
3145
   #endif
3145
   #endif
3146
 
3146
 
3185
   // Advanced Pause filament load & unload lengths
3185
   // Advanced Pause filament load & unload lengths
3186
   //
3186
   //
3187
   #if ENABLED(ADVANCED_PAUSE_FEATURE)
3187
   #if ENABLED(ADVANCED_PAUSE_FEATURE)
3188
-    LOOP_L_N(e, EXTRUDERS) {
3188
+    EXTRUDER_LOOP() {
3189
       fc_settings[e].unload_length = FILAMENT_CHANGE_UNLOAD_LENGTH;
3189
       fc_settings[e].unload_length = FILAMENT_CHANGE_UNLOAD_LENGTH;
3190
       fc_settings[e].load_length = FILAMENT_CHANGE_FAST_LOAD_LENGTH;
3190
       fc_settings[e].load_length = FILAMENT_CHANGE_FAST_LOAD_LENGTH;
3191
     }
3191
     }

Loading…
Cancel
Save