|
@@ -1246,11 +1246,14 @@ void kill_screen(const char* lcd_msg) {
|
1246
|
1246
|
|
1247
|
1247
|
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
1248
|
1248
|
|
1249
|
|
- void lcd_enqueue_filament_change() {
|
|
1249
|
+ void lcd_enqueue_filament_change(
|
|
1250
|
+ #if EXTRUDERS > 1
|
|
1251
|
+ const uint8_t extruder
|
|
1252
|
+ #endif
|
|
1253
|
+ ) {
|
1250
|
1254
|
|
1251
|
1255
|
#if ENABLED(PREVENT_COLD_EXTRUSION)
|
1252
|
|
- if (!DEBUGGING(DRYRUN) && !thermalManager.allow_cold_extrude &&
|
1253
|
|
- thermalManager.degTargetHotend(active_extruder) < thermalManager.extrude_min_temp) {
|
|
1256
|
+ if (!DEBUGGING(DRYRUN) && thermalManager.tooColdToExtrude(active_extruder)) {
|
1254
|
1257
|
lcd_save_previous_screen();
|
1255
|
1258
|
lcd_goto_screen(lcd_advanced_pause_toocold_menu);
|
1256
|
1259
|
return;
|
|
@@ -1258,9 +1261,42 @@ void kill_screen(const char* lcd_msg) {
|
1258
|
1261
|
#endif
|
1259
|
1262
|
|
1260
|
1263
|
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT);
|
1261
|
|
- enqueue_and_echo_commands_P(PSTR("M600 B0"));
|
|
1264
|
+
|
|
1265
|
+ #if EXTRUDERS <= 1
|
|
1266
|
+ enqueue_and_echo_commands_P(PSTR("M600 B0"));
|
|
1267
|
+ #else
|
|
1268
|
+ char *command_M600;
|
|
1269
|
+ switch (extruder) {
|
|
1270
|
+ case 0: command_M600 = PSTR("M600 B0 T0"); break;
|
|
1271
|
+ case 1: command_M600 = PSTR("M600 B0 T1"); break;
|
|
1272
|
+ #if EXTRUDERS > 2
|
|
1273
|
+ case 2: command_M600 = PSTR("M600 B0 T2"); break;
|
|
1274
|
+ #if EXTRUDERS > 3
|
|
1275
|
+ case 3: command_M600 = PSTR("M600 B0 T3"); break;
|
|
1276
|
+ #if EXTRUDERS > 4
|
|
1277
|
+ case 4: command_M600 = PSTR("M600 B0 T4"); break;
|
|
1278
|
+ #endif // EXTRUDERS > 4
|
|
1279
|
+ #endif // EXTRUDERS > 3
|
|
1280
|
+ #endif // EXTRUDERS > 2
|
|
1281
|
+ }
|
|
1282
|
+ enqueue_and_echo_commands_P(command_M600);
|
|
1283
|
+ #endif // EXTRUDERS > 1
|
1262
|
1284
|
}
|
1263
|
1285
|
|
|
1286
|
+ #if EXTRUDERS > 1
|
|
1287
|
+ void lcd_enqueue_filament_change_e0() { lcd_enqueue_filament_change(0); }
|
|
1288
|
+ void lcd_enqueue_filament_change_e1() { lcd_enqueue_filament_change(1); }
|
|
1289
|
+ #if EXTRUDERS > 2
|
|
1290
|
+ void lcd_enqueue_filament_change_e2() { lcd_enqueue_filament_change(2); }
|
|
1291
|
+ #if EXTRUDERS > 3
|
|
1292
|
+ void lcd_enqueue_filament_change_e3() { lcd_enqueue_filament_change(3); }
|
|
1293
|
+ #if EXTRUDERS > 4
|
|
1294
|
+ void lcd_enqueue_filament_change_e4() { lcd_enqueue_filament_change(4); }
|
|
1295
|
+ #endif // EXTRUDERS > 4
|
|
1296
|
+ #endif // EXTRUDERS > 3
|
|
1297
|
+ #endif // EXTRUDERS > 2
|
|
1298
|
+ #endif // EXTRUDERS > 1
|
|
1299
|
+
|
1264
|
1300
|
#endif // ADVANCED_PAUSE_FEATURE
|
1265
|
1301
|
|
1266
|
1302
|
// First Fan Speed title in "Tune" and "Control>Temperature" menus
|
|
@@ -1404,8 +1440,27 @@ void kill_screen(const char* lcd_msg) {
|
1404
|
1440
|
// Change filament
|
1405
|
1441
|
//
|
1406
|
1442
|
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
1407
|
|
- if (!thermalManager.tooColdToExtrude(active_extruder))
|
1408
|
|
- MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);
|
|
1443
|
+ #if EXTRUDERS > 1
|
|
1444
|
+ if (!thermalManager.tooColdToExtrude(0))
|
|
1445
|
+ MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E1, lcd_enqueue_filament_change_e0);
|
|
1446
|
+ if (!thermalManager.tooColdToExtrude(1))
|
|
1447
|
+ MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E2, lcd_enqueue_filament_change_e1);
|
|
1448
|
+ #if EXTRUDERS > 2
|
|
1449
|
+ if (!thermalManager.tooColdToExtrude(2))
|
|
1450
|
+ MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E3, lcd_enqueue_filament_change_e2);
|
|
1451
|
+ #if EXTRUDERS > 3
|
|
1452
|
+ if (!thermalManager.tooColdToExtrude(3))
|
|
1453
|
+ MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E4, lcd_enqueue_filament_change_e3);
|
|
1454
|
+ #if EXTRUDERS > 4
|
|
1455
|
+ if (!thermalManager.tooColdToExtrude(4))
|
|
1456
|
+ MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E5, lcd_enqueue_filament_change_e4);
|
|
1457
|
+ #endif // EXTRUDERS > 4
|
|
1458
|
+ #endif // EXTRUDERS > 3
|
|
1459
|
+ #endif // EXTRUDERS > 2
|
|
1460
|
+ #else
|
|
1461
|
+ if (!thermalManager.tooColdToExtrude(active_extruder))
|
|
1462
|
+ MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);
|
|
1463
|
+ #endif
|
1409
|
1464
|
#endif
|
1410
|
1465
|
|
1411
|
1466
|
END_MENU();
|
|
@@ -2595,9 +2650,30 @@ void kill_screen(const char* lcd_msg) {
|
2595
|
2650
|
// Change filament
|
2596
|
2651
|
//
|
2597
|
2652
|
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
2598
|
|
- if (!thermalManager.tooColdToExtrude(active_extruder) && !IS_SD_FILE_OPEN)
|
2599
|
|
- MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);
|
2600
|
|
- #endif
|
|
2653
|
+ if (!IS_SD_FILE_OPEN) {
|
|
2654
|
+ #if EXTRUDERS > 1
|
|
2655
|
+ if (!thermalManager.tooColdToExtrude(0))
|
|
2656
|
+ MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E1, lcd_enqueue_filament_change_e0);
|
|
2657
|
+ if (!thermalManager.tooColdToExtrude(1))
|
|
2658
|
+ MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E2, lcd_enqueue_filament_change_e1);
|
|
2659
|
+ #if EXTRUDERS > 2
|
|
2660
|
+ if (!thermalManager.tooColdToExtrude(2))
|
|
2661
|
+ MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E3, lcd_enqueue_filament_change_e2);
|
|
2662
|
+ #if EXTRUDERS > 3
|
|
2663
|
+ if (!thermalManager.tooColdToExtrude(3))
|
|
2664
|
+ MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E4, lcd_enqueue_filament_change_e3);
|
|
2665
|
+ #if EXTRUDERS > 4
|
|
2666
|
+ if (!thermalManager.tooColdToExtrude(4))
|
|
2667
|
+ MENU_ITEM(function, MSG_FILAMENTCHANGE " " MSG_E5, lcd_enqueue_filament_change_e4);
|
|
2668
|
+ #endif // EXTRUDERS > 4
|
|
2669
|
+ #endif // EXTRUDERS > 3
|
|
2670
|
+ #endif // EXTRUDERS > 2
|
|
2671
|
+ #else
|
|
2672
|
+ if (!thermalManager.tooColdToExtrude(active_extruder))
|
|
2673
|
+ MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);
|
|
2674
|
+ #endif
|
|
2675
|
+ }
|
|
2676
|
+ #endif // ADVANCED_PAUSE_FEATURE
|
2601
|
2677
|
|
2602
|
2678
|
#if TEMP_SENSOR_0 != 0
|
2603
|
2679
|
|