Browse Source

Fix Pause Print message and behavior (#13394)

Scott Lahteine 5 years ago
parent
commit
9a515cbd32
No account linked to committer's email address

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

66
   settings.retract_length = RETRACT_LENGTH;
66
   settings.retract_length = RETRACT_LENGTH;
67
   settings.retract_feedrate_mm_s = RETRACT_FEEDRATE;
67
   settings.retract_feedrate_mm_s = RETRACT_FEEDRATE;
68
   settings.retract_zraise = RETRACT_ZRAISE;
68
   settings.retract_zraise = RETRACT_ZRAISE;
69
-  settings.retract_recover_length = RETRACT_RECOVER_LENGTH;
69
+  settings.retract_recover_extra = RETRACT_RECOVER_LENGTH;
70
   settings.retract_recover_feedrate_mm_s = RETRACT_RECOVER_FEEDRATE;
70
   settings.retract_recover_feedrate_mm_s = RETRACT_RECOVER_FEEDRATE;
71
   settings.swap_retract_length = RETRACT_LENGTH_SWAP;
71
   settings.swap_retract_length = RETRACT_LENGTH_SWAP;
72
-  settings.swap_retract_recover_length = RETRACT_RECOVER_LENGTH_SWAP;
72
+  settings.swap_retract_recover_extra = RETRACT_RECOVER_LENGTH_SWAP;
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
 
175
       planner.synchronize();                              // Wait for move to complete
175
       planner.synchronize();                              // Wait for move to complete
176
     }
176
     }
177
 
177
 
178
-    const float extra_recover = swapping ? settings.swap_retract_recover_length : settings.retract_recover_length;
178
+    const float extra_recover = swapping ? settings.swap_retract_recover_extra : settings.retract_recover_extra;
179
     if (extra_recover != 0.0) {
179
     if (extra_recover != 0.0) {
180
       current_position[E_AXIS] -= extra_recover;          // Adjust the current E position by the extra amount to recover
180
       current_position[E_AXIS] -= extra_recover;          // Adjust the current E position by the extra amount to recover
181
       sync_plan_position_e();                             // Sync the planner position so the extra amount is recovered
181
       sync_plan_position_e();                             // Sync the planner position so the extra amount is recovered

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

32
 typedef struct {
32
 typedef struct {
33
   float retract_length,                     // M207 S - G10 Retract length
33
   float retract_length,                     // M207 S - G10 Retract length
34
         retract_feedrate_mm_s,              // M207 F - G10 Retract feedrate
34
         retract_feedrate_mm_s,              // M207 F - G10 Retract feedrate
35
-        retract_zraise,                      // M207 Z - G10 Retract hop size
36
-        retract_recover_length,             // M208 S - G11 Recover length
35
+        retract_zraise,                     // M207 Z - G10 Retract hop size
36
+        retract_recover_extra,              // M208 S - G11 Recover length
37
         retract_recover_feedrate_mm_s,      // M208 F - G11 Recover feedrate
37
         retract_recover_feedrate_mm_s,      // M208 F - G11 Recover feedrate
38
         swap_retract_length,                // M207 W - G10 Swap Retract length
38
         swap_retract_length,                // M207 W - G10 Swap Retract length
39
-        swap_retract_recover_length,        // M208 W - G11 Swap Recover length
39
+        swap_retract_recover_extra,         // M208 W - G11 Swap Recover length
40
         swap_retract_recover_feedrate_mm_s; // M208 R - G11 Swap Recover feedrate
40
         swap_retract_recover_feedrate_mm_s; // M208 R - G11 Swap Recover feedrate
41
 } fwretract_settings_t;
41
 } fwretract_settings_t;
42
 
42
 

+ 2
- 2
Marlin/src/feature/host_actions.cpp View File

110
       case PROMPT_FILAMENT_RUNOUT:
110
       case PROMPT_FILAMENT_RUNOUT:
111
         msg = PSTR("FILAMENT_RUNOUT");
111
         msg = PSTR("FILAMENT_RUNOUT");
112
         if (response == 0) {
112
         if (response == 0) {
113
-          advanced_pause_menu_response = ADVANCED_PAUSE_RESPONSE_EXTRUDE_MORE;
113
+          pause_menu_response = PAUSE_RESPONSE_EXTRUDE_MORE;
114
           host_action_prompt_end();   // Close current prompt
114
           host_action_prompt_end();   // Close current prompt
115
           host_action_prompt_begin(PSTR("Paused"));
115
           host_action_prompt_begin(PSTR("Paused"));
116
           host_action_prompt_button(PSTR("Purge More"));
116
           host_action_prompt_button(PSTR("Purge More"));
133
               runout.reset();
133
               runout.reset();
134
             }
134
             }
135
           #endif
135
           #endif
136
-          advanced_pause_menu_response = ADVANCED_PAUSE_RESPONSE_RESUME_PRINT;
136
+          pause_menu_response = PAUSE_RESPONSE_RESUME_PRINT;
137
         }
137
         }
138
         break;
138
         break;
139
       case PROMPT_USER_CONTINUE:
139
       case PROMPT_USER_CONTINUE:

+ 24
- 21
Marlin/src/feature/pause.cpp View File

58
 
58
 
59
 static float resume_position[XYZE];
59
 static float resume_position[XYZE];
60
 
60
 
61
-AdvancedPauseMenuResponse advanced_pause_menu_response;
61
+PauseMode pause_mode = PAUSE_MODE_PAUSE_PRINT;
62
+
63
+PauseMenuResponse pause_menu_response;
62
 
64
 
63
 fil_change_settings_t fc_settings[EXTRUDERS];
65
 fil_change_settings_t fc_settings[EXTRUDERS];
64
 
66
 
68
 
70
 
69
 #if HAS_BUZZER
71
 #if HAS_BUZZER
70
   static void filament_change_beep(const int8_t max_beep_count, const bool init=false) {
72
   static void filament_change_beep(const int8_t max_beep_count, const bool init=false) {
73
+    if (pause_mode == PAUSE_MODE_PAUSE_PRINT) return;
71
     static millis_t next_buzz = 0;
74
     static millis_t next_buzz = 0;
72
     static int8_t runout_beep = 0;
75
     static int8_t runout_beep = 0;
73
 
76
 
93
  *
96
  *
94
  * Returns 'true' if heating was completed, 'false' for abort
97
  * Returns 'true' if heating was completed, 'false' for abort
95
  */
98
  */
96
-static bool ensure_safe_temperature(const AdvancedPauseMode mode=ADVANCED_PAUSE_MODE_SAME) {
99
+static bool ensure_safe_temperature(const PauseMode mode=PAUSE_MODE_SAME) {
97
 
100
 
98
   #if ENABLED(PREVENT_COLD_EXTRUSION)
101
   #if ENABLED(PREVENT_COLD_EXTRUSION)
99
     if (!DEBUGGING(DRYRUN) && thermalManager.targetTooColdToExtrude(active_extruder)) {
102
     if (!DEBUGGING(DRYRUN) && thermalManager.targetTooColdToExtrude(active_extruder)) {
103
   #endif
106
   #endif
104
 
107
 
105
   #if HAS_LCD_MENU
108
   #if HAS_LCD_MENU
106
-    lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_HEATING, mode);
109
+    lcd_pause_show_message(PAUSE_MESSAGE_HEATING, mode);
107
   #else
110
   #else
108
     UNUSED(mode);
111
     UNUSED(mode);
109
   #endif
112
   #endif
134
  */
137
  */
135
 bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_length/*=0*/, const float &purge_length/*=0*/, const int8_t max_beep_count/*=0*/,
138
 bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_length/*=0*/, const float &purge_length/*=0*/, const int8_t max_beep_count/*=0*/,
136
                    const bool show_lcd/*=false*/, const bool pause_for_user/*=false*/,
139
                    const bool show_lcd/*=false*/, const bool pause_for_user/*=false*/,
137
-                   const AdvancedPauseMode mode/*=ADVANCED_PAUSE_MODE_PAUSE_PRINT*/
140
+                   const PauseMode mode/*=PAUSE_MODE_PAUSE_PRINT*/
138
                    DXC_ARGS
141
                    DXC_ARGS
139
 ) {
142
 ) {
140
   #if !HAS_LCD_MENU
143
   #if !HAS_LCD_MENU
143
 
146
 
144
   if (!ensure_safe_temperature(mode)) {
147
   if (!ensure_safe_temperature(mode)) {
145
     #if HAS_LCD_MENU
148
     #if HAS_LCD_MENU
146
-      if (show_lcd) lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS, mode);
149
+      if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_STATUS, mode);
147
     #endif
150
     #endif
148
     return false;
151
     return false;
149
   }
152
   }
150
 
153
 
151
   if (pause_for_user) {
154
   if (pause_for_user) {
152
     #if HAS_LCD_MENU
155
     #if HAS_LCD_MENU
153
-      if (show_lcd) lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INSERT, mode);
156
+      if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_INSERT, mode);
154
     #endif
157
     #endif
155
     SERIAL_ECHO_MSG(MSG_FILAMENT_CHANGE_INSERT);
158
     SERIAL_ECHO_MSG(MSG_FILAMENT_CHANGE_INSERT);
156
 
159
 
186
   }
189
   }
187
 
190
 
188
   #if HAS_LCD_MENU
191
   #if HAS_LCD_MENU
189
-    if (show_lcd) lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_LOAD, mode);
192
+    if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_LOAD, mode);
190
   #endif
193
   #endif
191
 
194
 
192
   #if ENABLED(DUAL_X_CARRIAGE)
195
   #if ENABLED(DUAL_X_CARRIAGE)
222
   #if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE)
225
   #if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE)
223
 
226
 
224
     #if HAS_LCD_MENU
227
     #if HAS_LCD_MENU
225
-      if (show_lcd) lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_PURGE);
228
+      if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_PURGE);
226
     #endif
229
     #endif
227
 
230
 
228
     wait_for_user = true;
231
     wait_for_user = true;
239
       if (purge_length > 0) {
242
       if (purge_length > 0) {
240
         // "Wait for filament purge"
243
         // "Wait for filament purge"
241
         #if HAS_LCD_MENU
244
         #if HAS_LCD_MENU
242
-          if (show_lcd) lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_PURGE);
245
+          if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_PURGE);
243
         #endif
246
         #endif
244
 
247
 
245
         // Extrude filament to get into hotend
248
         // Extrude filament to get into hotend
269
         if (show_lcd) {
272
         if (show_lcd) {
270
           KEEPALIVE_STATE(PAUSED_FOR_USER);
273
           KEEPALIVE_STATE(PAUSED_FOR_USER);
271
           wait_for_user = false;
274
           wait_for_user = false;
272
-          lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_OPTION);
273
-          while (advanced_pause_menu_response == ADVANCED_PAUSE_RESPONSE_WAIT_FOR) idle(true);
275
+          lcd_pause_show_message(PAUSE_MESSAGE_OPTION);
276
+          while (pause_menu_response == PAUSE_RESPONSE_WAIT_FOR) idle(true);
274
           KEEPALIVE_STATE(IN_HANDLER);
277
           KEEPALIVE_STATE(IN_HANDLER);
275
         }
278
         }
276
       #endif
279
       #endif
278
       // Keep looping if "Purge More" was selected
281
       // Keep looping if "Purge More" was selected
279
     } while (false
282
     } while (false
280
       #if HAS_LCD_MENU
283
       #if HAS_LCD_MENU
281
-        || (show_lcd && advanced_pause_menu_response == ADVANCED_PAUSE_RESPONSE_EXTRUDE_MORE)
284
+        || (show_lcd && pause_menu_response == PAUSE_RESPONSE_EXTRUDE_MORE)
282
       #endif
285
       #endif
283
     );
286
     );
284
 
287
 
298
  * Returns 'true' if unload was completed, 'false' for abort
301
  * Returns 'true' if unload was completed, 'false' for abort
299
  */
302
  */
300
 bool unload_filament(const float &unload_length, const bool show_lcd/*=false*/,
303
 bool unload_filament(const float &unload_length, const bool show_lcd/*=false*/,
301
-                     const AdvancedPauseMode mode/*=ADVANCED_PAUSE_MODE_PAUSE_PRINT*/
304
+                     const PauseMode mode/*=PAUSE_MODE_PAUSE_PRINT*/
302
 ) {
305
 ) {
303
   #if !HAS_LCD_MENU
306
   #if !HAS_LCD_MENU
304
     UNUSED(show_lcd);
307
     UNUSED(show_lcd);
306
 
309
 
307
   if (!ensure_safe_temperature(mode)) {
310
   if (!ensure_safe_temperature(mode)) {
308
     #if HAS_LCD_MENU
311
     #if HAS_LCD_MENU
309
-      if (show_lcd) lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS);
312
+      if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_STATUS);
310
     #endif
313
     #endif
311
 
314
 
312
     return false;
315
     return false;
313
   }
316
   }
314
 
317
 
315
   #if HAS_LCD_MENU
318
   #if HAS_LCD_MENU
316
-    if (show_lcd) lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_UNLOAD, mode);
319
+    if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_UNLOAD, mode);
317
   #endif
320
   #endif
318
 
321
 
319
   // Retract filament
322
   // Retract filament
387
 
390
 
388
     #if HAS_LCD_MENU
391
     #if HAS_LCD_MENU
389
       if (show_lcd) { // Show status screen
392
       if (show_lcd) { // Show status screen
390
-        lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS);
393
+        lcd_pause_show_message(PAUSE_MESSAGE_STATUS);
391
         LCD_MESSAGEPGM(MSG_M600_TOO_COLD);
394
         LCD_MESSAGEPGM(MSG_M600_TOO_COLD);
392
       }
395
       }
393
     #endif
396
     #endif
464
 
467
 
465
 void show_continue_prompt(const bool is_reload) {
468
 void show_continue_prompt(const bool is_reload) {
466
   #if HAS_LCD_MENU
469
   #if HAS_LCD_MENU
467
-    lcd_advanced_pause_show_message(is_reload ? ADVANCED_PAUSE_MESSAGE_INSERT : ADVANCED_PAUSE_MESSAGE_WAITING);
470
+    lcd_pause_show_message(is_reload ? PAUSE_MESSAGE_INSERT : PAUSE_MESSAGE_WAITING);
468
   #endif
471
   #endif
469
   SERIAL_ECHO_START();
472
   SERIAL_ECHO_START();
470
   serialprintPGM(is_reload ? PSTR(_PMSG(MSG_FILAMENT_CHANGE_INSERT) "\n") : PSTR(_PMSG(MSG_FILAMENT_CHANGE_WAIT) "\n"));
473
   serialprintPGM(is_reload ? PSTR(_PMSG(MSG_FILAMENT_CHANGE_INSERT) "\n") : PSTR(_PMSG(MSG_FILAMENT_CHANGE_WAIT) "\n"));
510
     // re-heat the nozzle, re-show the continue prompt, restart idle timers, start over
513
     // re-heat the nozzle, re-show the continue prompt, restart idle timers, start over
511
     if (nozzle_timed_out) {
514
     if (nozzle_timed_out) {
512
       #if HAS_LCD_MENU
515
       #if HAS_LCD_MENU
513
-        lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_HEAT);
516
+        lcd_pause_show_message(PAUSE_MESSAGE_HEAT);
514
       #endif
517
       #endif
515
       SERIAL_ECHO_MSG(_PMSG(MSG_FILAMENT_CHANGE_HEAT));
518
       SERIAL_ECHO_MSG(_PMSG(MSG_FILAMENT_CHANGE_HEAT));
516
 
519
 
597
   }
600
   }
598
 
601
 
599
   if (nozzle_timed_out || thermalManager.hotEnoughToExtrude(active_extruder)) // Load the new filament
602
   if (nozzle_timed_out || thermalManager.hotEnoughToExtrude(active_extruder)) // Load the new filament
600
-    load_filament(slow_load_length, fast_load_length, purge_length, max_beep_count, true, nozzle_timed_out, ADVANCED_PAUSE_MODE_PAUSE_PRINT DXC_PASS);
603
+    load_filament(slow_load_length, fast_load_length, purge_length, max_beep_count, true, nozzle_timed_out, PAUSE_MODE_PAUSE_PRINT DXC_PASS);
601
 
604
 
602
   #if HAS_LCD_MENU
605
   #if HAS_LCD_MENU
603
-    lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_RESUME);
606
+    lcd_pause_show_message(PAUSE_MESSAGE_RESUME);
604
   #endif
607
   #endif
605
 
608
 
606
   // Intelligent resuming
609
   // Intelligent resuming
628
   planner.set_e_position_mm((destination[E_AXIS] = current_position[E_AXIS] = resume_position[E_AXIS]));
631
   planner.set_e_position_mm((destination[E_AXIS] = current_position[E_AXIS] = resume_position[E_AXIS]));
629
 
632
 
630
   #if HAS_LCD_MENU
633
   #if HAS_LCD_MENU
631
-    lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS);
634
+    lcd_pause_show_message(PAUSE_MESSAGE_STATUS);
632
   #endif
635
   #endif
633
 
636
 
634
   #ifdef ACTION_ON_RESUMED
637
   #ifdef ACTION_ON_RESUMED

+ 26
- 24
Marlin/src/feature/pause.h View File

36
 
36
 
37
 #include "../libs/nozzle.h"
37
 #include "../libs/nozzle.h"
38
 
38
 
39
-enum AdvancedPauseMode : char {
40
-  ADVANCED_PAUSE_MODE_SAME,
41
-  ADVANCED_PAUSE_MODE_PAUSE_PRINT,
42
-  ADVANCED_PAUSE_MODE_LOAD_FILAMENT,
43
-  ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT
39
+enum PauseMode : char {
40
+  PAUSE_MODE_SAME,
41
+  PAUSE_MODE_PAUSE_PRINT,
42
+  PAUSE_MODE_LOAD_FILAMENT,
43
+  PAUSE_MODE_UNLOAD_FILAMENT
44
 };
44
 };
45
 
45
 
46
-enum AdvancedPauseMessage : char {
47
-  ADVANCED_PAUSE_MESSAGE_INIT,
48
-  ADVANCED_PAUSE_MESSAGE_WAITING,
49
-  ADVANCED_PAUSE_MESSAGE_UNLOAD,
50
-  ADVANCED_PAUSE_MESSAGE_INSERT,
51
-  ADVANCED_PAUSE_MESSAGE_LOAD,
52
-  ADVANCED_PAUSE_MESSAGE_PURGE,
53
-  ADVANCED_PAUSE_MESSAGE_OPTION,
54
-  ADVANCED_PAUSE_MESSAGE_RESUME,
55
-  ADVANCED_PAUSE_MESSAGE_STATUS,
56
-  ADVANCED_PAUSE_MESSAGE_HEAT,
57
-  ADVANCED_PAUSE_MESSAGE_HEATING
46
+enum PauseMessage : char {
47
+  PAUSE_MESSAGE_PAUSING,
48
+  PAUSE_MESSAGE_CHANGING,
49
+  PAUSE_MESSAGE_WAITING,
50
+  PAUSE_MESSAGE_UNLOAD,
51
+  PAUSE_MESSAGE_INSERT,
52
+  PAUSE_MESSAGE_LOAD,
53
+  PAUSE_MESSAGE_PURGE,
54
+  PAUSE_MESSAGE_OPTION,
55
+  PAUSE_MESSAGE_RESUME,
56
+  PAUSE_MESSAGE_STATUS,
57
+  PAUSE_MESSAGE_HEAT,
58
+  PAUSE_MESSAGE_HEATING
58
 };
59
 };
59
 
60
 
60
-enum AdvancedPauseMenuResponse : char {
61
-  ADVANCED_PAUSE_RESPONSE_WAIT_FOR,
62
-  ADVANCED_PAUSE_RESPONSE_EXTRUDE_MORE,
63
-  ADVANCED_PAUSE_RESPONSE_RESUME_PRINT
61
+enum PauseMenuResponse : char {
62
+  PAUSE_RESPONSE_WAIT_FOR,
63
+  PAUSE_RESPONSE_EXTRUDE_MORE,
64
+  PAUSE_RESPONSE_RESUME_PRINT
64
 };
65
 };
65
 
66
 
66
-extern AdvancedPauseMenuResponse advanced_pause_menu_response;
67
+extern PauseMode pause_mode;
68
+extern PauseMenuResponse pause_menu_response;
67
 
69
 
68
 extern fil_change_settings_t fc_settings[EXTRUDERS];
70
 extern fil_change_settings_t fc_settings[EXTRUDERS];
69
 
71
 
88
 void resume_print(const float &slow_load_length=0, const float &fast_load_length=0, const float &extrude_length=ADVANCED_PAUSE_PURGE_LENGTH, const int8_t max_beep_count=0 DXC_PARAMS);
90
 void resume_print(const float &slow_load_length=0, const float &fast_load_length=0, const float &extrude_length=ADVANCED_PAUSE_PURGE_LENGTH, const int8_t max_beep_count=0 DXC_PARAMS);
89
 
91
 
90
 bool load_filament(const float &slow_load_length=0, const float &fast_load_length=0, const float &extrude_length=0, const int8_t max_beep_count=0, const bool show_lcd=false,
92
 bool load_filament(const float &slow_load_length=0, const float &fast_load_length=0, const float &extrude_length=0, const int8_t max_beep_count=0, const bool show_lcd=false,
91
-                          const bool pause_for_user=false, const AdvancedPauseMode mode=ADVANCED_PAUSE_MODE_PAUSE_PRINT DXC_PARAMS);
93
+                          const bool pause_for_user=false, const PauseMode mode=PAUSE_MODE_PAUSE_PRINT DXC_PARAMS);
92
 
94
 
93
-bool unload_filament(const float &unload_length, const bool show_lcd=false, const AdvancedPauseMode mode=ADVANCED_PAUSE_MODE_PAUSE_PRINT);
95
+bool unload_filament(const float &unload_length, const bool show_lcd=false, const PauseMode mode=PAUSE_MODE_PAUSE_PRINT);
94
 
96
 
95
 #endif // ADVANCED_PAUSE_FEATURE
97
 #endif // ADVANCED_PAUSE_FEATURE

+ 4
- 4
Marlin/src/gcode/feature/fwretract/M207-M209.cpp View File

45
 /**
45
 /**
46
  * M208: Set firmware un-retraction values
46
  * M208: Set firmware un-retraction values
47
  *
47
  *
48
- *   S[+units]    retract_recover_length (in addition to M207 S*)
49
- *   W[+units]    swap_retract_recover_length (multi-extruder)
48
+ *   S[+units]    retract_recover_extra (in addition to M207 S*)
49
+ *   W[+units]    swap_retract_recover_extra (multi-extruder)
50
  *   F[units/min] retract_recover_feedrate_mm_s
50
  *   F[units/min] retract_recover_feedrate_mm_s
51
  *   R[units/min] swap_retract_recover_feedrate_mm_s
51
  *   R[units/min] swap_retract_recover_feedrate_mm_s
52
  */
52
  */
53
 void GcodeSuite::M208() {
53
 void GcodeSuite::M208() {
54
-  if (parser.seen('S')) fwretract.settings.retract_recover_length = parser.value_axis_units(E_AXIS);
54
+  if (parser.seen('S')) fwretract.settings.retract_recover_extra = parser.value_axis_units(E_AXIS);
55
   if (parser.seen('F')) fwretract.settings.retract_recover_feedrate_mm_s = MMM_TO_MMS(parser.value_axis_units(E_AXIS));
55
   if (parser.seen('F')) fwretract.settings.retract_recover_feedrate_mm_s = MMM_TO_MMS(parser.value_axis_units(E_AXIS));
56
   if (parser.seen('R')) fwretract.settings.swap_retract_recover_feedrate_mm_s = MMM_TO_MMS(parser.value_axis_units(E_AXIS));
56
   if (parser.seen('R')) fwretract.settings.swap_retract_recover_feedrate_mm_s = MMM_TO_MMS(parser.value_axis_units(E_AXIS));
57
-  if (parser.seen('W')) fwretract.settings.swap_retract_recover_length = parser.value_axis_units(E_AXIS);
57
+  if (parser.seen('W')) fwretract.settings.swap_retract_recover_extra = parser.value_axis_units(E_AXIS);
58
 }
58
 }
59
 
59
 
60
 #if ENABLED(FWRETRACT_AUTORETRACT)
60
 #if ENABLED(FWRETRACT_AUTORETRACT)

+ 3
- 3
Marlin/src/gcode/feature/pause/M125.cpp View File

36
 #endif
36
 #endif
37
 
37
 
38
 /**
38
 /**
39
- * M125: Store current position and move to filament change position.
39
+ * M125: Store current position and move to parking position.
40
  *       Called on pause (by M25) to prevent material leaking onto the
40
  *       Called on pause (by M25) to prevent material leaking onto the
41
  *       object. On resume (M24) the head will be moved back and the
41
  *       object. On resume (M24) the head will be moved back and the
42
  *       print will resume.
42
  *       print will resume.
79
   #endif
79
   #endif
80
 
80
 
81
   #if HAS_LCD_MENU
81
   #if HAS_LCD_MENU
82
-    lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT, ADVANCED_PAUSE_MODE_PAUSE_PRINT);
82
+    lcd_pause_show_message(PAUSE_MESSAGE_PAUSING, PAUSE_MODE_PAUSE_PRINT);
83
     const bool show_lcd = parser.seenval('P');
83
     const bool show_lcd = parser.seenval('P');
84
   #else
84
   #else
85
     constexpr bool show_lcd = false;
85
     constexpr bool show_lcd = false;
86
   #endif
86
   #endif
87
 
87
 
88
   if (pause_print(retract, park_point, 0, show_lcd)) {
88
   if (pause_print(retract, park_point, 0, show_lcd)) {
89
-    if (!sd_printing || show_lcd ) {
89
+    if (!sd_printing || show_lcd) {
90
       wait_for_confirmation(false, 0);
90
       wait_for_confirmation(false, 0);
91
       resume_print(0, 0, PAUSE_PARK_RETRACT_LENGTH, 0);
91
       resume_print(0, 0, PAUSE_PARK_RETRACT_LENGTH, 0);
92
     }
92
     }

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

76
 
76
 
77
   // Show initial "wait for start" message
77
   // Show initial "wait for start" message
78
   #if HAS_LCD_MENU && DISABLED(MMU2_MENUS)
78
   #if HAS_LCD_MENU && DISABLED(MMU2_MENUS)
79
-    lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT, ADVANCED_PAUSE_MODE_PAUSE_PRINT, target_extruder);
79
+    lcd_pause_show_message(PAUSE_MESSAGE_CHANGING, PAUSE_MODE_PAUSE_PRINT, target_extruder);
80
   #endif
80
   #endif
81
 
81
 
82
   #if ENABLED(HOME_BEFORE_FILAMENT_CHANGE)
82
   #if ENABLED(HOME_BEFORE_FILAMENT_CHANGE)

+ 7
- 7
Marlin/src/gcode/feature/pause/M701_M702.cpp View File

68
 
68
 
69
   // Show initial "wait for load" message
69
   // Show initial "wait for load" message
70
   #if HAS_LCD_MENU
70
   #if HAS_LCD_MENU
71
-    lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_LOAD, ADVANCED_PAUSE_MODE_LOAD_FILAMENT, target_extruder);
71
+    lcd_pause_show_message(PAUSE_MESSAGE_LOAD, PAUSE_MODE_LOAD_FILAMENT, target_extruder);
72
   #endif
72
   #endif
73
 
73
 
74
   #if EXTRUDERS > 1 && DISABLED(PRUSA_MMU2)
74
   #if EXTRUDERS > 1 && DISABLED(PRUSA_MMU2)
90
     const float fast_load_length = ABS(parser.seen('L') ? parser.value_axis_units(E_AXIS)
90
     const float fast_load_length = ABS(parser.seen('L') ? parser.value_axis_units(E_AXIS)
91
                                                         : fc_settings[active_extruder].load_length);
91
                                                         : fc_settings[active_extruder].load_length);
92
     load_filament(slow_load_length, fast_load_length, ADVANCED_PAUSE_PURGE_LENGTH, FILAMENT_CHANGE_ALERT_BEEPS,
92
     load_filament(slow_load_length, fast_load_length, ADVANCED_PAUSE_PURGE_LENGTH, FILAMENT_CHANGE_ALERT_BEEPS,
93
-                  true, thermalManager.still_heating(target_extruder), ADVANCED_PAUSE_MODE_LOAD_FILAMENT
93
+                  true, thermalManager.still_heating(target_extruder), PAUSE_MODE_LOAD_FILAMENT
94
                   #if ENABLED(DUAL_X_CARRIAGE)
94
                   #if ENABLED(DUAL_X_CARRIAGE)
95
                     , target_extruder
95
                     , target_extruder
96
                   #endif
96
                   #endif
109
 
109
 
110
   // Show status screen
110
   // Show status screen
111
   #if HAS_LCD_MENU
111
   #if HAS_LCD_MENU
112
-    lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS);
112
+    lcd_pause_show_message(PAUSE_MESSAGE_STATUS);
113
   #endif
113
   #endif
114
 }
114
 }
115
 
115
 
139
 
139
 
140
   // Show initial "wait for unload" message
140
   // Show initial "wait for unload" message
141
   #if HAS_LCD_MENU
141
   #if HAS_LCD_MENU
142
-    lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_UNLOAD, ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, target_extruder);
142
+    lcd_pause_show_message(PAUSE_MESSAGE_UNLOAD, PAUSE_MODE_UNLOAD_FILAMENT, target_extruder);
143
   #endif
143
   #endif
144
 
144
 
145
   #if EXTRUDERS > 1 && DISABLED(PRUSA_MMU2)
145
   #if EXTRUDERS > 1 && DISABLED(PRUSA_MMU2)
161
       if (!parser.seenval('T')) {
161
       if (!parser.seenval('T')) {
162
         HOTEND_LOOP() {
162
         HOTEND_LOOP() {
163
           if (e != active_extruder) tool_change(e, 0, false);
163
           if (e != active_extruder) tool_change(e, 0, false);
164
-          unload_filament(-fc_settings[e].unload_length, true, ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT);
164
+          unload_filament(-fc_settings[e].unload_length, true, PAUSE_MODE_UNLOAD_FILAMENT);
165
         }
165
         }
166
       }
166
       }
167
       else
167
       else
171
       const float unload_length = -ABS(parser.seen('U') ? parser.value_axis_units(E_AXIS)
171
       const float unload_length = -ABS(parser.seen('U') ? parser.value_axis_units(E_AXIS)
172
                                                         : fc_settings[target_extruder].unload_length);
172
                                                         : fc_settings[target_extruder].unload_length);
173
 
173
 
174
-      unload_filament(unload_length, true, ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT);
174
+      unload_filament(unload_length, true, PAUSE_MODE_UNLOAD_FILAMENT);
175
     }
175
     }
176
   #endif
176
   #endif
177
 
177
 
187
 
187
 
188
   // Show status screen
188
   // Show status screen
189
   #if HAS_LCD_MENU
189
   #if HAS_LCD_MENU
190
-    lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS);
190
+    lcd_pause_show_message(PAUSE_MESSAGE_STATUS);
191
   #endif
191
   #endif
192
 }
192
 }
193
 
193
 

+ 3
- 0
Marlin/src/lcd/language/language_en.h View File

1278
     #define MSG_ADVANCED_PAUSE_WAITING_1      _UxGT("Press button")
1278
     #define MSG_ADVANCED_PAUSE_WAITING_1      _UxGT("Press button")
1279
     #define MSG_ADVANCED_PAUSE_WAITING_2      _UxGT("to resume print")
1279
     #define MSG_ADVANCED_PAUSE_WAITING_2      _UxGT("to resume print")
1280
   #endif
1280
   #endif
1281
+  #ifndef MSG_PAUSE_PRINT_INIT_1
1282
+    #define MSG_PAUSE_PRINT_INIT_1            _UxGT("Parking...")
1283
+  #endif
1281
   #ifndef MSG_FILAMENT_CHANGE_INIT_1
1284
   #ifndef MSG_FILAMENT_CHANGE_INIT_1
1282
     #define MSG_FILAMENT_CHANGE_INIT_1        _UxGT("Wait for")
1285
     #define MSG_FILAMENT_CHANGE_INIT_1        _UxGT("Wait for")
1283
     #define MSG_FILAMENT_CHANGE_INIT_2        _UxGT("filament change")
1286
     #define MSG_FILAMENT_CHANGE_INIT_2        _UxGT("filament change")

+ 2
- 2
Marlin/src/lcd/language/language_zh_CN.h View File

256
 #define MSG_CONTROL_RETRACT_SWAP            _UxGT("换手回抽长度mm")  //"Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change
256
 #define MSG_CONTROL_RETRACT_SWAP            _UxGT("换手回抽长度mm")  //"Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change
257
 #define MSG_CONTROL_RETRACTF                _UxGT("回抽速率mm/s")  //"Retract  V" retract_feedrate_mm_s, feedrate for retracting (mm/s)
257
 #define MSG_CONTROL_RETRACTF                _UxGT("回抽速率mm/s")  //"Retract  V" retract_feedrate_mm_s, feedrate for retracting (mm/s)
258
 #define MSG_CONTROL_RETRACT_ZHOP            _UxGT("Hop mm")  //"Hop mm" retract_zraise, retract Z-lift
258
 #define MSG_CONTROL_RETRACT_ZHOP            _UxGT("Hop mm")  //"Hop mm" retract_zraise, retract Z-lift
259
-#define MSG_CONTROL_RETRACT_RECOVER         _UxGT("回抽恢复长度mm")  //"UnRet +mm" retract_recover_length, additional recover length (mm, added to retract length when recovering)
260
-#define MSG_CONTROL_RETRACT_RECOVER_SWAP    _UxGT("换手回抽恢复长度mm")  //"S UnRet+mm" swap_retract_recover_length, additional swap recover length (mm, added to retract length when recovering from extruder change)
259
+#define MSG_CONTROL_RETRACT_RECOVER         _UxGT("回抽恢复长度mm")  //"UnRet +mm" retract_recover_extra, additional recover length (mm, added to retract length when recovering)
260
+#define MSG_CONTROL_RETRACT_RECOVER_SWAP    _UxGT("换手回抽恢复长度mm")  //"S UnRet+mm" swap_retract_recover_extra, additional swap recover length (mm, added to retract length when recovering from extruder change)
261
 #define MSG_CONTROL_RETRACT_RECOVERF        _UxGT("回抽恢复后进料速率mm/s")  //"UnRet  V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s)
261
 #define MSG_CONTROL_RETRACT_RECOVERF        _UxGT("回抽恢复后进料速率mm/s")  //"UnRet  V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s)
262
 #define MSG_CONTROL_RETRACT_RECOVER_SWAPF   _UxGT("S UnRet V") // "S UnRet V"
262
 #define MSG_CONTROL_RETRACT_RECOVER_SWAPF   _UxGT("S UnRet V") // "S UnRet V"
263
 #define MSG_AUTORETRACT                     _UxGT("自动抽回")  //"AutoRetr." autoretract_enabled,
263
 #define MSG_AUTORETRACT                     _UxGT("自动抽回")  //"AutoRetr." autoretract_enabled,

+ 2
- 2
Marlin/src/lcd/language/language_zh_TW.h View File

256
 #define MSG_CONTROL_RETRACT_SWAP            _UxGT("換手回抽長度mm")  //"Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change
256
 #define MSG_CONTROL_RETRACT_SWAP            _UxGT("換手回抽長度mm")  //"Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change
257
 #define MSG_CONTROL_RETRACTF                _UxGT("回縮速率mm/s")  //"Retract  V" retract_feedrate_mm_s, feedrate for retracting (mm/s)
257
 #define MSG_CONTROL_RETRACTF                _UxGT("回縮速率mm/s")  //"Retract  V" retract_feedrate_mm_s, feedrate for retracting (mm/s)
258
 #define MSG_CONTROL_RETRACT_ZHOP            _UxGT("Hop mm")  //"Hop mm" retract_zraise, retract Z-lift
258
 #define MSG_CONTROL_RETRACT_ZHOP            _UxGT("Hop mm")  //"Hop mm" retract_zraise, retract Z-lift
259
-#define MSG_CONTROL_RETRACT_RECOVER         _UxGT("回縮恢復長度mm")  //"UnRet +mm" retract_recover_length, additional recover length (mm, added to retract length when recovering)
260
-#define MSG_CONTROL_RETRACT_RECOVER_SWAP    _UxGT("換手回縮恢復長度mm")  //"S UnRet+mm" swap_retract_recover_length, additional swap recover length (mm, added to retract length when recovering from extruder change)
259
+#define MSG_CONTROL_RETRACT_RECOVER         _UxGT("回縮恢復長度mm")  //"UnRet +mm" retract_recover_extra, additional recover length (mm, added to retract length when recovering)
260
+#define MSG_CONTROL_RETRACT_RECOVER_SWAP    _UxGT("換手回縮恢復長度mm")  //"S UnRet+mm" swap_retract_recover_extra, additional swap recover length (mm, added to retract length when recovering from extruder change)
261
 #define MSG_CONTROL_RETRACT_RECOVERF        _UxGT("回縮恢復後進料速率mm/s")  //"UnRet V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s)
261
 #define MSG_CONTROL_RETRACT_RECOVERF        _UxGT("回縮恢復後進料速率mm/s")  //"UnRet V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s)
262
 #define MSG_CONTROL_RETRACT_RECOVER_SWAPF   _UxGT("S UnRet V") // "S UnRet V"
262
 #define MSG_CONTROL_RETRACT_RECOVER_SWAPF   _UxGT("S UnRet V") // "S UnRet V"
263
 #define MSG_AUTORETRACT                     _UxGT("自動回縮")  //"AutoRetr." autoretract_enabled,
263
 #define MSG_AUTORETRACT                     _UxGT("自動回縮")  //"AutoRetr." autoretract_enabled,

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

196
     #endif
196
     #endif
197
     MENU_ITEM_EDIT(float3, MSG_CONTROL_RETRACTF, &fwretract.settings.retract_feedrate_mm_s, 1, 999);
197
     MENU_ITEM_EDIT(float3, MSG_CONTROL_RETRACTF, &fwretract.settings.retract_feedrate_mm_s, 1, 999);
198
     MENU_ITEM_EDIT(float52sign, MSG_CONTROL_RETRACT_ZHOP, &fwretract.settings.retract_zraise, 0, 999);
198
     MENU_ITEM_EDIT(float52sign, MSG_CONTROL_RETRACT_ZHOP, &fwretract.settings.retract_zraise, 0, 999);
199
-    MENU_ITEM_EDIT(float52sign, MSG_CONTROL_RETRACT_RECOVER, &fwretract.settings.retract_recover_length, -100, 100);
199
+    MENU_ITEM_EDIT(float52sign, MSG_CONTROL_RETRACT_RECOVER, &fwretract.settings.retract_recover_extra, -100, 100);
200
     #if EXTRUDERS > 1
200
     #if EXTRUDERS > 1
201
-      MENU_ITEM_EDIT(float52sign, MSG_CONTROL_RETRACT_RECOVER_SWAP, &fwretract.settings.swap_retract_recover_length, -100, 100);
201
+      MENU_ITEM_EDIT(float52sign, MSG_CONTROL_RETRACT_RECOVER_SWAP, &fwretract.settings.swap_retract_recover_extra, -100, 100);
202
     #endif
202
     #endif
203
     MENU_ITEM_EDIT(float3, MSG_CONTROL_RETRACT_RECOVERF, &fwretract.settings.retract_recover_feedrate_mm_s, 1, 999);
203
     MENU_ITEM_EDIT(float3, MSG_CONTROL_RETRACT_RECOVERF, &fwretract.settings.retract_recover_feedrate_mm_s, 1, 999);
204
     #if EXTRUDERS > 1
204
     #if EXTRUDERS > 1

+ 85
- 73
Marlin/src/lcd/menu/menu_filament.cpp View File

34
 #if HAS_FILAMENT_SENSOR
34
 #if HAS_FILAMENT_SENSOR
35
   #include "../../feature/runout.h"
35
   #include "../../feature/runout.h"
36
 #endif
36
 #endif
37
+
37
 //
38
 //
38
 // Change Filament > Change/Unload/Load Filament
39
 // Change Filament > Change/Unload/Load Filament
39
 //
40
 //
40
-static AdvancedPauseMode _change_filament_temp_mode; // =ADVANCED_PAUSE_MODE_PAUSE_PRINT
41
+static PauseMode _change_filament_temp_mode; // =PAUSE_MODE_PAUSE_PRINT
41
 static int8_t _change_filament_temp_extruder; // =0
42
 static int8_t _change_filament_temp_extruder; // =0
42
 
43
 
43
 inline PGM_P _change_filament_temp_command() {
44
 inline PGM_P _change_filament_temp_command() {
44
   switch (_change_filament_temp_mode) {
45
   switch (_change_filament_temp_mode) {
45
-    case ADVANCED_PAUSE_MODE_LOAD_FILAMENT:
46
+    case PAUSE_MODE_LOAD_FILAMENT:
46
       return PSTR("M701 T%d");
47
       return PSTR("M701 T%d");
47
-    case ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT:
48
+    case PAUSE_MODE_UNLOAD_FILAMENT:
48
       return _change_filament_temp_extruder >= 0 ? PSTR("M702 T%d") : PSTR("M702 ;%d");
49
       return _change_filament_temp_extruder >= 0 ? PSTR("M702 T%d") : PSTR("M702 ;%d");
49
-    case ADVANCED_PAUSE_MODE_PAUSE_PRINT:
50
+    case PAUSE_MODE_PAUSE_PRINT:
50
     default:
51
     default:
51
       return PSTR("M600 B0 T%d");
52
       return PSTR("M600 B0 T%d");
52
   }
53
   }
63
 inline void _lcd_change_filament_temp_2_func()    { _change_filament_temp(ui.preheat_hotend_temp[1]); }
64
 inline void _lcd_change_filament_temp_2_func()    { _change_filament_temp(ui.preheat_hotend_temp[1]); }
64
 inline void _lcd_change_filament_temp_custom_cb() { _change_filament_temp(thermalManager.temp_hotend[_change_filament_temp_extruder].target); }
65
 inline void _lcd_change_filament_temp_custom_cb() { _change_filament_temp(thermalManager.temp_hotend[_change_filament_temp_extruder].target); }
65
 
66
 
66
-static PGM_P change_filament_header(const AdvancedPauseMode mode) {
67
+static PGM_P change_filament_header(const PauseMode mode) {
67
   switch (mode) {
68
   switch (mode) {
68
-    case ADVANCED_PAUSE_MODE_LOAD_FILAMENT:
69
+    case PAUSE_MODE_LOAD_FILAMENT:
69
       return PSTR(MSG_FILAMENTLOAD);
70
       return PSTR(MSG_FILAMENTLOAD);
70
-    case ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT:
71
+    case PAUSE_MODE_UNLOAD_FILAMENT:
71
       return PSTR(MSG_FILAMENTUNLOAD);
72
       return PSTR(MSG_FILAMENTUNLOAD);
72
     default: break;
73
     default: break;
73
   }
74
   }
74
   return PSTR(MSG_FILAMENTCHANGE);
75
   return PSTR(MSG_FILAMENTCHANGE);
75
 }
76
 }
76
 
77
 
77
-void _menu_temp_filament_op(const AdvancedPauseMode mode, const int8_t extruder) {
78
+void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) {
78
   _change_filament_temp_mode = mode;
79
   _change_filament_temp_mode = mode;
79
   _change_filament_temp_extruder = extruder;
80
   _change_filament_temp_extruder = extruder;
80
   START_MENU();
81
   START_MENU();
105
   END_MENU();
106
   END_MENU();
106
 }
107
 }
107
 #if E_STEPPERS
108
 #if E_STEPPERS
108
-  void menu_temp_e0_filament_change()  { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_PAUSE_PRINT, 0); }
109
-  void menu_temp_e0_filament_load()    { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_LOAD_FILAMENT, 0); }
110
-  void menu_temp_e0_filament_unload()  { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, 0); }
109
+  void menu_temp_e0_filament_change()  { _menu_temp_filament_op(PAUSE_MODE_PAUSE_PRINT, 0); }
110
+  void menu_temp_e0_filament_load()    { _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 0); }
111
+  void menu_temp_e0_filament_unload()  { _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 0); }
111
   #if E_STEPPERS > 1
112
   #if E_STEPPERS > 1
112
-    void menu_temp_e1_filament_change()  { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_PAUSE_PRINT, 1); }
113
-    void menu_temp_e1_filament_load()    { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_LOAD_FILAMENT, 1); }
114
-    void menu_temp_e1_filament_unload()  { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, 1); }
113
+    void menu_temp_e1_filament_change()  { _menu_temp_filament_op(PAUSE_MODE_PAUSE_PRINT, 1); }
114
+    void menu_temp_e1_filament_load()    { _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 1); }
115
+    void menu_temp_e1_filament_unload()  { _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 1); }
115
     #if ENABLED(FILAMENT_UNLOAD_ALL_EXTRUDERS)
116
     #if ENABLED(FILAMENT_UNLOAD_ALL_EXTRUDERS)
116
-      void menu_unload_filament_all_temp() { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, -1); }
117
+      void menu_unload_filament_all_temp() { _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, -1); }
117
     #endif
118
     #endif
118
     #if E_STEPPERS > 2
119
     #if E_STEPPERS > 2
119
-      void menu_temp_e2_filament_change()  { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_PAUSE_PRINT, 2); }
120
-      void menu_temp_e2_filament_load()    { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_LOAD_FILAMENT, 2); }
121
-      void menu_temp_e2_filament_unload()  { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, 2); }
120
+      void menu_temp_e2_filament_change()  { _menu_temp_filament_op(PAUSE_MODE_PAUSE_PRINT, 2); }
121
+      void menu_temp_e2_filament_load()    { _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 2); }
122
+      void menu_temp_e2_filament_unload()  { _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 2); }
122
       #if E_STEPPERS > 3
123
       #if E_STEPPERS > 3
123
-        void menu_temp_e3_filament_change()  { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_PAUSE_PRINT, 3); }
124
-        void menu_temp_e3_filament_load()    { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_LOAD_FILAMENT, 3); }
125
-        void menu_temp_e3_filament_unload()  { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, 3); }
124
+        void menu_temp_e3_filament_change()  { _menu_temp_filament_op(PAUSE_MODE_PAUSE_PRINT, 3); }
125
+        void menu_temp_e3_filament_load()    { _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 3); }
126
+        void menu_temp_e3_filament_unload()  { _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 3); }
126
         #if E_STEPPERS > 4
127
         #if E_STEPPERS > 4
127
-          void menu_temp_e4_filament_change()  { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_PAUSE_PRINT, 4); }
128
-          void menu_temp_e4_filament_load()    { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_LOAD_FILAMENT, 4); }
129
-          void menu_temp_e4_filament_unload()  { _menu_temp_filament_op(ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT, 4); }
128
+          void menu_temp_e4_filament_change()  { _menu_temp_filament_op(PAUSE_MODE_PAUSE_PRINT, 4); }
129
+          void menu_temp_e4_filament_load()    { _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 4); }
130
+          void menu_temp_e4_filament_unload()  { _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 4); }
130
         #endif // E_STEPPERS > 4
131
         #endif // E_STEPPERS > 4
131
       #endif // E_STEPPERS > 3
132
       #endif // E_STEPPERS > 3
132
     #endif // E_STEPPERS > 2
133
     #endif // E_STEPPERS > 2
310
   }
311
   }
311
 #endif
312
 #endif
312
 
313
 
313
-static AdvancedPauseMode advanced_pause_mode = ADVANCED_PAUSE_MODE_PAUSE_PRINT;
314
 static uint8_t hotend_status_extruder = 0;
314
 static uint8_t hotend_status_extruder = 0;
315
 
315
 
316
-static PGM_P advanced_pause_header() {
317
-  switch (advanced_pause_mode) {
318
-    case ADVANCED_PAUSE_MODE_LOAD_FILAMENT:
316
+static PGM_P pause_header() {
317
+  switch (pause_mode) {
318
+    case PAUSE_MODE_LOAD_FILAMENT:
319
       return PSTR(MSG_FILAMENT_CHANGE_HEADER_LOAD);
319
       return PSTR(MSG_FILAMENT_CHANGE_HEADER_LOAD);
320
-    case ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT:
320
+    case PAUSE_MODE_UNLOAD_FILAMENT:
321
       return PSTR(MSG_FILAMENT_CHANGE_HEADER_UNLOAD);
321
       return PSTR(MSG_FILAMENT_CHANGE_HEADER_UNLOAD);
322
     default: break;
322
     default: break;
323
   }
323
   }
340
   ++_thisItemNr; \
340
   ++_thisItemNr; \
341
 }while(0)
341
 }while(0)
342
 
342
 
343
-void lcd_advanced_pause_resume_print() {
344
-  advanced_pause_menu_response = ADVANCED_PAUSE_RESPONSE_RESUME_PRINT;
343
+void lcd_pause_resume_print() {
344
+  pause_menu_response = PAUSE_RESPONSE_RESUME_PRINT;
345
 }
345
 }
346
 
346
 
347
-void lcd_advanced_pause_extrude_more() {
348
-  advanced_pause_menu_response = ADVANCED_PAUSE_RESPONSE_EXTRUDE_MORE;
347
+void lcd_pause_extrude_more() {
348
+  pause_menu_response = PAUSE_RESPONSE_EXTRUDE_MORE;
349
 }
349
 }
350
 
350
 
351
-void menu_advanced_pause_option() {
351
+void menu_pause_option() {
352
   START_MENU();
352
   START_MENU();
353
   #if LCD_HEIGHT > 2
353
   #if LCD_HEIGHT > 2
354
     STATIC_ITEM(MSG_FILAMENT_CHANGE_OPTION_HEADER, true, false);
354
     STATIC_ITEM(MSG_FILAMENT_CHANGE_OPTION_HEADER, true, false);
355
   #endif
355
   #endif
356
-  MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_PURGE, lcd_advanced_pause_extrude_more);
356
+  MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_PURGE, lcd_pause_extrude_more);
357
   #if HAS_FILAMENT_SENSOR
357
   #if HAS_FILAMENT_SENSOR
358
     if (runout.filament_ran_out)
358
     if (runout.filament_ran_out)
359
       MENU_ITEM_EDIT_CALLBACK(bool, MSG_RUNOUT_SENSOR, &runout.enabled, runout.reset);
359
       MENU_ITEM_EDIT_CALLBACK(bool, MSG_RUNOUT_SENSOR, &runout.enabled, runout.reset);
360
     else
360
     else
361
   #endif
361
   #endif
362
-      MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_RESUME, lcd_advanced_pause_resume_print);
362
+      MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_RESUME, lcd_pause_resume_print);
363
   END_MENU();
363
   END_MENU();
364
 }
364
 }
365
 
365
 
367
 // ADVANCED_PAUSE_FEATURE message screens
367
 // ADVANCED_PAUSE_FEATURE message screens
368
 //
368
 //
369
 
369
 
370
-void _lcd_advanced_pause_message(PGM_P const msg1, PGM_P const msg2=NULL, PGM_P const msg3=NULL) {
370
+void _lcd_pause_message(PGM_P const msg1, PGM_P const msg2=NULL, PGM_P const msg3=NULL) {
371
   START_SCREEN();
371
   START_SCREEN();
372
-  STATIC_ITEM_P(advanced_pause_header(), true, true);
372
+  STATIC_ITEM_P(pause_header(), true, true);
373
   STATIC_ITEM_P(msg1);
373
   STATIC_ITEM_P(msg1);
374
   if (msg2) STATIC_ITEM_P(msg2);
374
   if (msg2) STATIC_ITEM_P(msg2);
375
   if (msg3) STATIC_ITEM_P(msg3);
375
   if (msg3) STATIC_ITEM_P(msg3);
378
   END_SCREEN();
378
   END_SCREEN();
379
 }
379
 }
380
 
380
 
381
-void lcd_advanced_pause_init_message() {
382
-  _lcd_advanced_pause_message(PSTR(MSG_FILAMENT_CHANGE_INIT_1)
381
+void lcd_pause_pausing_message() {
382
+  _lcd_pause_message(PSTR(MSG_PAUSE_PRINT_INIT_1)
383
+    #ifdef MSG_PAUSE_PRINT_INIT_2
384
+      , PSTR(MSG_PAUSE_PRINT_INIT_2)
385
+      #ifdef MSG_PAUSE_PRINT_INIT_3
386
+        , PSTR(MSG_PAUSE_PRINT_INIT_3)
387
+      #endif
388
+    #endif
389
+  );
390
+}
391
+
392
+void lcd_pause_changing_message() {
393
+  _lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_INIT_1)
383
     #ifdef MSG_FILAMENT_CHANGE_INIT_2
394
     #ifdef MSG_FILAMENT_CHANGE_INIT_2
384
       , PSTR(MSG_FILAMENT_CHANGE_INIT_2)
395
       , PSTR(MSG_FILAMENT_CHANGE_INIT_2)
385
       #ifdef MSG_FILAMENT_CHANGE_INIT_3
396
       #ifdef MSG_FILAMENT_CHANGE_INIT_3
389
   );
400
   );
390
 }
401
 }
391
 
402
 
392
-void lcd_advanced_pause_unload_message() {
393
-  _lcd_advanced_pause_message(PSTR(MSG_FILAMENT_CHANGE_UNLOAD_1)
403
+void lcd_pause_unload_message() {
404
+  _lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_UNLOAD_1)
394
     #ifdef MSG_FILAMENT_CHANGE_UNLOAD_2
405
     #ifdef MSG_FILAMENT_CHANGE_UNLOAD_2
395
       , PSTR(MSG_FILAMENT_CHANGE_UNLOAD_2)
406
       , PSTR(MSG_FILAMENT_CHANGE_UNLOAD_2)
396
       #ifdef MSG_FILAMENT_CHANGE_UNLOAD_3
407
       #ifdef MSG_FILAMENT_CHANGE_UNLOAD_3
400
   );
411
   );
401
 }
412
 }
402
 
413
 
403
-void lcd_advanced_pause_heating_message() {
404
-  _lcd_advanced_pause_message(PSTR(MSG_FILAMENT_CHANGE_HEATING_1)
414
+void lcd_pause_heating_message() {
415
+  _lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_HEATING_1)
405
     #ifdef MSG_FILAMENT_CHANGE_HEATING_2
416
     #ifdef MSG_FILAMENT_CHANGE_HEATING_2
406
       , PSTR(MSG_FILAMENT_CHANGE_HEATING_2)
417
       , PSTR(MSG_FILAMENT_CHANGE_HEATING_2)
407
       #ifdef MSG_FILAMENT_CHANGE_HEATING_3
418
       #ifdef MSG_FILAMENT_CHANGE_HEATING_3
411
   );
422
   );
412
 }
423
 }
413
 
424
 
414
-void lcd_advanced_pause_heat_message() {
415
-  _lcd_advanced_pause_message(PSTR(MSG_FILAMENT_CHANGE_HEAT_1)
425
+void lcd_pause_heat_message() {
426
+  _lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_HEAT_1)
416
     #ifdef MSG_FILAMENT_CHANGE_HEAT_2
427
     #ifdef MSG_FILAMENT_CHANGE_HEAT_2
417
       , PSTR(MSG_FILAMENT_CHANGE_HEAT_2)
428
       , PSTR(MSG_FILAMENT_CHANGE_HEAT_2)
418
       #ifdef MSG_FILAMENT_CHANGE_HEAT_3
429
       #ifdef MSG_FILAMENT_CHANGE_HEAT_3
422
   );
433
   );
423
 }
434
 }
424
 
435
 
425
-void lcd_advanced_pause_insert_message() {
426
-  _lcd_advanced_pause_message(PSTR(MSG_FILAMENT_CHANGE_INSERT_1)
436
+void lcd_pause_insert_message() {
437
+  _lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_INSERT_1)
427
     #ifdef MSG_FILAMENT_CHANGE_INSERT_2
438
     #ifdef MSG_FILAMENT_CHANGE_INSERT_2
428
       , PSTR(MSG_FILAMENT_CHANGE_INSERT_2)
439
       , PSTR(MSG_FILAMENT_CHANGE_INSERT_2)
429
       #ifdef MSG_FILAMENT_CHANGE_INSERT_3
440
       #ifdef MSG_FILAMENT_CHANGE_INSERT_3
433
   );
444
   );
434
 }
445
 }
435
 
446
 
436
-void lcd_advanced_pause_load_message() {
437
-  _lcd_advanced_pause_message(PSTR(MSG_FILAMENT_CHANGE_LOAD_1)
447
+void lcd_pause_load_message() {
448
+  _lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_LOAD_1)
438
     #ifdef MSG_FILAMENT_CHANGE_LOAD_2
449
     #ifdef MSG_FILAMENT_CHANGE_LOAD_2
439
       , PSTR(MSG_FILAMENT_CHANGE_LOAD_2)
450
       , PSTR(MSG_FILAMENT_CHANGE_LOAD_2)
440
       #ifdef MSG_FILAMENT_CHANGE_LOAD_3
451
       #ifdef MSG_FILAMENT_CHANGE_LOAD_3
444
   );
455
   );
445
 }
456
 }
446
 
457
 
447
-void lcd_advanced_pause_waiting_message() {
448
-  _lcd_advanced_pause_message(PSTR(MSG_ADVANCED_PAUSE_WAITING_1)
458
+void lcd_pause_waiting_message() {
459
+  _lcd_pause_message(PSTR(MSG_ADVANCED_PAUSE_WAITING_1)
449
     #ifdef MSG_ADVANCED_PAUSE_WAITING_2
460
     #ifdef MSG_ADVANCED_PAUSE_WAITING_2
450
       , PSTR(MSG_ADVANCED_PAUSE_WAITING_2)
461
       , PSTR(MSG_ADVANCED_PAUSE_WAITING_2)
451
       #ifdef MSG_ADVANCED_PAUSE_WAITING_3
462
       #ifdef MSG_ADVANCED_PAUSE_WAITING_3
455
   );
466
   );
456
 }
467
 }
457
 
468
 
458
-void lcd_advanced_pause_resume_message() {
459
-  _lcd_advanced_pause_message(PSTR(MSG_FILAMENT_CHANGE_RESUME_1)
469
+void lcd_pause_resume_message() {
470
+  _lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_RESUME_1)
460
     #ifdef MSG_FILAMENT_CHANGE_RESUME_2
471
     #ifdef MSG_FILAMENT_CHANGE_RESUME_2
461
       , PSTR(MSG_FILAMENT_CHANGE_RESUME_2)
472
       , PSTR(MSG_FILAMENT_CHANGE_RESUME_2)
462
       #ifdef MSG_FILAMENT_CHANGE_RESUME_3
473
       #ifdef MSG_FILAMENT_CHANGE_RESUME_3
466
   );
477
   );
467
 }
478
 }
468
 
479
 
469
-void lcd_advanced_pause_purge_message() {
470
-  _lcd_advanced_pause_message(
480
+void lcd_pause_purge_message() {
481
+  _lcd_pause_message(
471
     #if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE)
482
     #if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE)
472
       PSTR(MSG_FILAMENT_CHANGE_CONT_PURGE_1)
483
       PSTR(MSG_FILAMENT_CHANGE_CONT_PURGE_1)
473
       #ifdef MSG_FILAMENT_CHANGE_CONT_PURGE_2
484
       #ifdef MSG_FILAMENT_CHANGE_CONT_PURGE_2
488
   );
499
   );
489
 }
500
 }
490
 
501
 
491
-FORCE_INLINE screenFunc_t ap_message_screen(const AdvancedPauseMessage message) {
502
+FORCE_INLINE screenFunc_t ap_message_screen(const PauseMessage message) {
492
   switch (message) {
503
   switch (message) {
493
-    case ADVANCED_PAUSE_MESSAGE_INIT:     return lcd_advanced_pause_init_message;
494
-    case ADVANCED_PAUSE_MESSAGE_UNLOAD:   return lcd_advanced_pause_unload_message;
495
-    case ADVANCED_PAUSE_MESSAGE_WAITING:  return lcd_advanced_pause_waiting_message;
496
-    case ADVANCED_PAUSE_MESSAGE_INSERT:   return lcd_advanced_pause_insert_message;
497
-    case ADVANCED_PAUSE_MESSAGE_LOAD:     return lcd_advanced_pause_load_message;
498
-    case ADVANCED_PAUSE_MESSAGE_PURGE:    return lcd_advanced_pause_purge_message;
499
-    case ADVANCED_PAUSE_MESSAGE_RESUME:   return lcd_advanced_pause_resume_message;
500
-    case ADVANCED_PAUSE_MESSAGE_HEAT:     return lcd_advanced_pause_heat_message;
501
-    case ADVANCED_PAUSE_MESSAGE_HEATING:  return lcd_advanced_pause_heating_message;
502
-    case ADVANCED_PAUSE_MESSAGE_OPTION:   advanced_pause_menu_response = ADVANCED_PAUSE_RESPONSE_WAIT_FOR;
503
-                                          return menu_advanced_pause_option;
504
-    case ADVANCED_PAUSE_MESSAGE_STATUS:
504
+    case PAUSE_MESSAGE_PAUSING:  return lcd_pause_pausing_message;
505
+    case PAUSE_MESSAGE_CHANGING: return lcd_pause_changing_message;
506
+    case PAUSE_MESSAGE_UNLOAD:   return lcd_pause_unload_message;
507
+    case PAUSE_MESSAGE_WAITING:  return lcd_pause_waiting_message;
508
+    case PAUSE_MESSAGE_INSERT:   return lcd_pause_insert_message;
509
+    case PAUSE_MESSAGE_LOAD:     return lcd_pause_load_message;
510
+    case PAUSE_MESSAGE_PURGE:    return lcd_pause_purge_message;
511
+    case PAUSE_MESSAGE_RESUME:   return lcd_pause_resume_message;
512
+    case PAUSE_MESSAGE_HEAT:     return lcd_pause_heat_message;
513
+    case PAUSE_MESSAGE_HEATING:  return lcd_pause_heating_message;
514
+    case PAUSE_MESSAGE_OPTION:   pause_menu_response = PAUSE_RESPONSE_WAIT_FOR;
515
+                                          return menu_pause_option;
516
+    case PAUSE_MESSAGE_STATUS:
505
     default: break;
517
     default: break;
506
   }
518
   }
507
   return NULL;
519
   return NULL;
508
 }
520
 }
509
 
521
 
510
-void lcd_advanced_pause_show_message(
511
-  const AdvancedPauseMessage message,
512
-  const AdvancedPauseMode mode/*=ADVANCED_PAUSE_MODE_SAME*/,
522
+void lcd_pause_show_message(
523
+  const PauseMessage message,
524
+  const PauseMode mode/*=PAUSE_MODE_SAME*/,
513
   const uint8_t extruder/*=active_extruder*/
525
   const uint8_t extruder/*=active_extruder*/
514
 ) {
526
 ) {
515
-  if (mode != ADVANCED_PAUSE_MODE_SAME) advanced_pause_mode = mode;
527
+  if (mode != PAUSE_MODE_SAME) pause_mode = mode;
516
   hotend_status_extruder = extruder;
528
   hotend_status_extruder = extruder;
517
   const screenFunc_t next_screen = ap_message_screen(message);
529
   const screenFunc_t next_screen = ap_message_screen(message);
518
   if (next_screen) {
530
   if (next_screen) {

+ 1
- 1
Marlin/src/lcd/menu/menu_main.cpp View File

61
     #endif
61
     #endif
62
 
62
 
63
     #if ENABLED(PARK_HEAD_ON_PAUSE)
63
     #if ENABLED(PARK_HEAD_ON_PAUSE)
64
-      lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT, ADVANCED_PAUSE_MODE_PAUSE_PRINT);  // Show message immediately to let user know about pause in progress
64
+      lcd_pause_show_message(PAUSE_MESSAGE_PAUSING, PAUSE_MODE_PAUSE_PRINT);  // Show message immediately to let user know about pause in progress
65
       enqueue_and_echo_commands_P(PSTR("M25 P\nM24"));
65
       enqueue_and_echo_commands_P(PSTR("M25 P\nM24"));
66
     #elif ENABLED(SDSUPPORT)
66
     #elif ENABLED(SDSUPPORT)
67
       enqueue_and_echo_commands_P(PSTR("M25"));
67
       enqueue_and_echo_commands_P(PSTR("M25"));

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

183
 inline void action_mmu2_M600_unloadFilament()              { mmu2.unload(); }
183
 inline void action_mmu2_M600_unloadFilament()              { mmu2.unload(); }
184
 inline void action_mmu2_M600_resume()                      { mmuMenuWait = false; }
184
 inline void action_mmu2_M600_resume()                      { mmuMenuWait = false; }
185
 
185
 
186
-void menu_mmu2_advanced_pause() {
186
+void menu_mmu2_pause() {
187
   currentTool = mmu2.getCurrentTool();
187
   currentTool = mmu2.getCurrentTool();
188
   START_MENU();
188
   START_MENU();
189
   #if LCD_HEIGHT > 2
189
   #if LCD_HEIGHT > 2
198
 
198
 
199
 void mmu2_M600() {
199
 void mmu2_M600() {
200
   ui.defer_status_screen(true);
200
   ui.defer_status_screen(true);
201
-  ui.goto_screen(menu_mmu2_advanced_pause);
201
+  ui.goto_screen(menu_mmu2_pause);
202
   mmuMenuWait = true;
202
   mmuMenuWait = true;
203
   while (mmuMenuWait) idle();
203
   while (mmuMenuWait) idle();
204
 }
204
 }

+ 2
- 2
Marlin/src/lcd/ultralcd.h View File

89
     extern float move_menu_scale;
89
     extern float move_menu_scale;
90
 
90
 
91
     #if ENABLED(ADVANCED_PAUSE_FEATURE)
91
     #if ENABLED(ADVANCED_PAUSE_FEATURE)
92
-      void lcd_advanced_pause_show_message(const AdvancedPauseMessage message,
93
-                                           const AdvancedPauseMode mode=ADVANCED_PAUSE_MODE_SAME,
92
+      void lcd_pause_show_message(const PauseMessage message,
93
+                                           const PauseMode mode=PAUSE_MODE_SAME,
94
                                            const uint8_t extruder=active_extruder);
94
                                            const uint8_t extruder=active_extruder);
95
     #endif
95
     #endif
96
 
96
 

+ 2
- 2
Marlin/src/module/configuration_store.cpp View File

2733
       CONFIG_ECHO_HEADING("Recover: S<length> F<units/m>");
2733
       CONFIG_ECHO_HEADING("Recover: S<length> F<units/m>");
2734
       CONFIG_ECHO_START();
2734
       CONFIG_ECHO_START();
2735
       SERIAL_ECHOLNPAIR(
2735
       SERIAL_ECHOLNPAIR(
2736
-          "  M208 S", LINEAR_UNIT(fwretract.settings.retract_recover_length)
2737
-        , " W", LINEAR_UNIT(fwretract.settings.swap_retract_recover_length)
2736
+          "  M208 S", LINEAR_UNIT(fwretract.settings.retract_recover_extra)
2737
+        , " W", LINEAR_UNIT(fwretract.settings.swap_retract_recover_extra)
2738
         , " F", MMS_TO_MMM(LINEAR_UNIT(fwretract.settings.retract_recover_feedrate_mm_s))
2738
         , " F", MMS_TO_MMM(LINEAR_UNIT(fwretract.settings.retract_recover_feedrate_mm_s))
2739
       );
2739
       );
2740
 
2740
 

Loading…
Cancel
Save