Ver código fonte

Merge pull request #5970 from thinkyhead/rc_cooldown_before

Preheat Hotend Only menu items
Scott Lahteine 7 anos atrás
pai
commit
2f620f86d9
2 arquivos alterados com 125 adições e 49 exclusões
  1. 3
    0
      Marlin/language_en.h
  2. 122
    49
      Marlin/ultralcd.cpp

+ 3
- 0
Marlin/language_en.h Ver arquivo

@@ -129,6 +129,9 @@
129 129
 #ifndef MSG_COOLDOWN
130 130
   #define MSG_COOLDOWN                        _UxGT("Cooldown")
131 131
 #endif
132
+#ifndef MSG_HOTEND
133
+  #define MSG_HOTEND                          _UxGT("Hotend")
134
+#endif
132 135
 #ifndef MSG_SWITCH_PS_ON
133 136
   #define MSG_SWITCH_PS_ON                    _UxGT("Switch power on")
134 137
 #endif

+ 122
- 49
Marlin/ultralcd.cpp Ver arquivo

@@ -1009,7 +1009,7 @@ void kill_screen(const char* lcd_msg) {
1009 1009
   void _lcd_preheat(int endnum, const float temph, const float tempb, const int fan) {
1010 1010
     if (temph > 0) thermalManager.setTargetHotend(min(heater_maxtemp[endnum], temph), endnum);
1011 1011
     #if TEMP_SENSOR_BED != 0
1012
-      thermalManager.setTargetBed(tempb);
1012
+      if (tempb >= 0) thermalManager.setTargetBed(tempb);
1013 1013
     #else
1014 1014
       UNUSED(tempb);
1015 1015
     #endif
@@ -1026,23 +1026,39 @@ void kill_screen(const char* lcd_msg) {
1026 1026
   }
1027 1027
 
1028 1028
   #if TEMP_SENSOR_0 != 0
1029
-    void lcd_preheat_material1_hotend0() { _lcd_preheat(0, lcd_preheat_hotend_temp[0], lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
1030
-    void lcd_preheat_material2_hotend0() { _lcd_preheat(0, lcd_preheat_hotend_temp[1], lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
1029
+    void lcd_preheat_m1_e0_only() { _lcd_preheat(0, lcd_preheat_hotend_temp[0], -1, lcd_preheat_fan_speed[0]); }
1030
+    void lcd_preheat_m2_e0_only() { _lcd_preheat(0, lcd_preheat_hotend_temp[1], -1, lcd_preheat_fan_speed[1]); }
1031
+    #if TEMP_SENSOR_BED != 0
1032
+      void lcd_preheat_m1_e0() { _lcd_preheat(0, lcd_preheat_hotend_temp[0], lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
1033
+      void lcd_preheat_m2_e0() { _lcd_preheat(0, lcd_preheat_hotend_temp[1], lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
1034
+    #endif
1031 1035
   #endif
1032 1036
 
1033 1037
   #if HOTENDS > 1
1034
-    void lcd_preheat_material1_hotend1() { _lcd_preheat(1, lcd_preheat_hotend_temp[0], lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
1035
-    void lcd_preheat_material2_hotend1() { _lcd_preheat(1, lcd_preheat_hotend_temp[1], lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
1038
+    void lcd_preheat_m1_e1_only() { _lcd_preheat(1, lcd_preheat_hotend_temp[0], -1, lcd_preheat_fan_speed[0]); }
1039
+    void lcd_preheat_m2_e1_only() { _lcd_preheat(1, lcd_preheat_hotend_temp[1], -1, lcd_preheat_fan_speed[1]); }
1040
+    #if TEMP_SENSOR_BED != 0
1041
+      void lcd_preheat_m1_e1() { _lcd_preheat(1, lcd_preheat_hotend_temp[0], lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
1042
+      void lcd_preheat_m2_e1() { _lcd_preheat(1, lcd_preheat_hotend_temp[1], lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
1043
+    #endif
1036 1044
     #if HOTENDS > 2
1037
-      void lcd_preheat_material1_hotend2() { _lcd_preheat(2, lcd_preheat_hotend_temp[0], lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
1038
-      void lcd_preheat_material2_hotend2() { _lcd_preheat(2, lcd_preheat_hotend_temp[1], lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
1045
+      void lcd_preheat_m1_e2_only() { _lcd_preheat(2, lcd_preheat_hotend_temp[0], -1, lcd_preheat_fan_speed[0]); }
1046
+      void lcd_preheat_m2_e2_only() { _lcd_preheat(2, lcd_preheat_hotend_temp[1], -1, lcd_preheat_fan_speed[1]); }
1047
+      #if TEMP_SENSOR_BED != 0
1048
+        void lcd_preheat_m1_e2() { _lcd_preheat(2, lcd_preheat_hotend_temp[0], lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
1049
+        void lcd_preheat_m2_e2() { _lcd_preheat(2, lcd_preheat_hotend_temp[1], lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
1050
+      #endif
1039 1051
       #if HOTENDS > 3
1040
-        void lcd_preheat_material1_hotend3() { _lcd_preheat(3, lcd_preheat_hotend_temp[0], lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
1041
-        void lcd_preheat_material2_hotend3() { _lcd_preheat(3, lcd_preheat_hotend_temp[1], lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
1052
+        void lcd_preheat_m1_e3_only() { _lcd_preheat(3, lcd_preheat_hotend_temp[0], -1, lcd_preheat_fan_speed[0]); }
1053
+        void lcd_preheat_m2_e3_only() { _lcd_preheat(3, lcd_preheat_hotend_temp[1], -1, lcd_preheat_fan_speed[1]); }
1054
+        #if TEMP_SENSOR_BED != 0
1055
+          void lcd_preheat_m1_e3() { _lcd_preheat(3, lcd_preheat_hotend_temp[0], lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
1056
+          void lcd_preheat_m2_e3() { _lcd_preheat(3, lcd_preheat_hotend_temp[1], lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
1057
+        #endif
1042 1058
       #endif
1043 1059
     #endif
1044 1060
 
1045
-    void lcd_preheat_material1_hotend0123() {
1061
+    void lcd_preheat_m1_all() {
1046 1062
       #if HOTENDS > 1
1047 1063
         thermalManager.setTargetHotend(lcd_preheat_hotend_temp[0], 1);
1048 1064
         #if HOTENDS > 2
@@ -1052,9 +1068,13 @@ void kill_screen(const char* lcd_msg) {
1052 1068
           #endif
1053 1069
         #endif
1054 1070
       #endif
1055
-      lcd_preheat_material1_hotend0();
1071
+      #if TEMP_SENSOR_BED != 0
1072
+        lcd_preheat_m1_e0();
1073
+      #else
1074
+        lcd_preheat_m1_e0_only();
1075
+      #endif
1056 1076
     }
1057
-    void lcd_preheat_material2_hotend0123() {
1077
+    void lcd_preheat_m2_all() {
1058 1078
       #if HOTENDS > 1
1059 1079
         thermalManager.setTargetHotend(lcd_preheat_hotend_temp[1], 1);
1060 1080
         #if HOTENDS > 2
@@ -1064,58 +1084,108 @@ void kill_screen(const char* lcd_msg) {
1064 1084
           #endif
1065 1085
         #endif
1066 1086
       #endif
1067
-      lcd_preheat_material2_hotend0();
1087
+      #if TEMP_SENSOR_BED != 0
1088
+        lcd_preheat_m1_e0();
1089
+      #else
1090
+        lcd_preheat_m1_e0_only();
1091
+      #endif
1068 1092
     }
1069 1093
 
1070 1094
   #endif // HOTENDS > 1
1071 1095
 
1072 1096
   #if TEMP_SENSOR_BED != 0
1073
-    void lcd_preheat_material1_bedonly() { _lcd_preheat(0, 0, lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
1074
-    void lcd_preheat_material2_bedonly() { _lcd_preheat(0, 0, lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
1097
+    void lcd_preheat_m1_bedonly() { _lcd_preheat(0, 0, lcd_preheat_bed_temp[0], lcd_preheat_fan_speed[0]); }
1098
+    void lcd_preheat_m2_bedonly() { _lcd_preheat(0, 0, lcd_preheat_bed_temp[1], lcd_preheat_fan_speed[1]); }
1075 1099
   #endif
1076 1100
 
1077 1101
   #if TEMP_SENSOR_0 != 0 && (TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 || TEMP_SENSOR_3 != 0 || TEMP_SENSOR_BED != 0)
1078 1102
 
1079
-    void lcd_preheat_material1_menu() {
1103
+    void lcd_preheat_m1_menu() {
1080 1104
       START_MENU();
1081 1105
       MENU_BACK(MSG_PREPARE);
1082 1106
       #if HOTENDS == 1
1083
-        MENU_ITEM(function, MSG_PREHEAT_1, lcd_preheat_material1_hotend0);
1107
+        #if TEMP_SENSOR_BED != 0
1108
+          MENU_ITEM(function, MSG_PREHEAT_1, lcd_preheat_m1_e0);
1109
+          MENU_ITEM(function, MSG_PREHEAT_1 MSG_HOTEND, lcd_preheat_m1_e0_only);
1110
+        #else
1111
+          MENU_ITEM(function, MSG_PREHEAT_1, lcd_preheat_m1_e0_only);
1112
+        #endif
1084 1113
       #else
1085
-        MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H1, lcd_preheat_material1_hotend0);
1086
-        MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H2, lcd_preheat_material1_hotend1);
1114
+        #if TEMP_SENSOR_BED != 0
1115
+          MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H1, lcd_preheat_m1_e0);
1116
+          MENU_ITEM(function, MSG_PREHEAT_1_N MSG_HOTEND " " MSG_E1, lcd_preheat_m1_e0_only);
1117
+          MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H2, lcd_preheat_m1_e1);
1118
+          MENU_ITEM(function, MSG_PREHEAT_1_N MSG_HOTEND " " MSG_E2, lcd_preheat_m1_e1_only);
1119
+        #else
1120
+          MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H1, lcd_preheat_m1_e0_only);
1121
+          MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H2, lcd_preheat_m1_e1_only);
1122
+        #endif
1087 1123
         #if HOTENDS > 2
1088
-          MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H3, lcd_preheat_material1_hotend2);
1124
+          MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H3, lcd_preheat_m1_e2_only);
1125
+          #if TEMP_SENSOR_BED != 0
1126
+            MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H3, lcd_preheat_m1_e2);
1127
+            MENU_ITEM(function, MSG_PREHEAT_1_N MSG_HOTEND " " MSG_E3, lcd_preheat_m1_e2_only);
1128
+          #else
1129
+            MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H3, lcd_preheat_m1_e2_only);
1130
+          #endif
1089 1131
           #if HOTENDS > 3
1090
-            MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H4, lcd_preheat_material1_hotend3);
1132
+            #if TEMP_SENSOR_BED != 0
1133
+              MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H4, lcd_preheat_m1_e3);
1134
+              MENU_ITEM(function, MSG_PREHEAT_1_N MSG_HOTEND " " MSG_E4, lcd_preheat_m1_e3_only);
1135
+            #else
1136
+              MENU_ITEM(function, MSG_PREHEAT_1_N MSG_H4, lcd_preheat_m1_e3_only);
1137
+            #endif
1091 1138
           #endif
1092 1139
         #endif
1093
-        MENU_ITEM(function, MSG_PREHEAT_1_ALL, lcd_preheat_material1_hotend0123);
1140
+        MENU_ITEM(function, MSG_PREHEAT_1_ALL, lcd_preheat_m1_all);
1094 1141
       #endif
1095 1142
       #if TEMP_SENSOR_BED != 0
1096
-        MENU_ITEM(function, MSG_PREHEAT_1_BEDONLY, lcd_preheat_material1_bedonly);
1143
+        MENU_ITEM(function, MSG_PREHEAT_1_BEDONLY, lcd_preheat_m1_bedonly);
1097 1144
       #endif
1098 1145
       END_MENU();
1099 1146
     }
1100 1147
 
1101
-    void lcd_preheat_material2_menu() {
1148
+    void lcd_preheat_m2_menu() {
1102 1149
       START_MENU();
1103 1150
       MENU_BACK(MSG_PREPARE);
1104 1151
       #if HOTENDS == 1
1105
-        MENU_ITEM(function, MSG_PREHEAT_2, lcd_preheat_material2_hotend0);
1152
+        #if TEMP_SENSOR_BED != 0
1153
+          MENU_ITEM(function, MSG_PREHEAT_2, lcd_preheat_m2_e0);
1154
+          MENU_ITEM(function, MSG_PREHEAT_2 MSG_HOTEND, lcd_preheat_m2_e0_only);
1155
+        #else
1156
+          MENU_ITEM(function, MSG_PREHEAT_2, lcd_preheat_m2_e0_only);
1157
+        #endif
1106 1158
       #else
1107
-        MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H1, lcd_preheat_material2_hotend0);
1108
-        MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H2, lcd_preheat_material2_hotend1);
1159
+        #if TEMP_SENSOR_BED != 0
1160
+          MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H1, lcd_preheat_m2_e0);
1161
+          MENU_ITEM(function, MSG_PREHEAT_2_N MSG_HOTEND " " MSG_E1, lcd_preheat_m2_e0_only);
1162
+          MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H2, lcd_preheat_m2_e1);
1163
+          MENU_ITEM(function, MSG_PREHEAT_2_N MSG_HOTEND " " MSG_E2, lcd_preheat_m2_e1_only);
1164
+        #else
1165
+          MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H1, lcd_preheat_m2_e0_only);
1166
+          MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H2, lcd_preheat_m2_e1_only);
1167
+        #endif
1109 1168
         #if HOTENDS > 2
1110
-          MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H3, lcd_preheat_material2_hotend2);
1169
+          MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H3, lcd_preheat_m2_e2_only);
1170
+          #if TEMP_SENSOR_BED != 0
1171
+            MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H3, lcd_preheat_m2_e2);
1172
+            MENU_ITEM(function, MSG_PREHEAT_2_N MSG_HOTEND " " MSG_E3, lcd_preheat_m2_e2_only);
1173
+          #else
1174
+            MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H3, lcd_preheat_m2_e2_only);
1175
+          #endif
1111 1176
           #if HOTENDS > 3
1112
-            MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H4, lcd_preheat_material2_hotend3);
1177
+            #if TEMP_SENSOR_BED != 0
1178
+              MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H4, lcd_preheat_m2_e3);
1179
+              MENU_ITEM(function, MSG_PREHEAT_2_N MSG_HOTEND " " MSG_E4, lcd_preheat_m2_e3_only);
1180
+            #else
1181
+              MENU_ITEM(function, MSG_PREHEAT_2_N MSG_H4, lcd_preheat_m2_e3_only);
1182
+            #endif
1113 1183
           #endif
1114 1184
         #endif
1115
-        MENU_ITEM(function, MSG_PREHEAT_2_ALL, lcd_preheat_material2_hotend0123);
1185
+        MENU_ITEM(function, MSG_PREHEAT_2_ALL, lcd_preheat_m2_all);
1116 1186
       #endif
1117 1187
       #if TEMP_SENSOR_BED != 0
1118
-        MENU_ITEM(function, MSG_PREHEAT_2_BEDONLY, lcd_preheat_material2_bedonly);
1188
+        MENU_ITEM(function, MSG_PREHEAT_2_BEDONLY, lcd_preheat_m2_bedonly);
1119 1189
       #endif
1120 1190
       END_MENU();
1121 1191
     }
@@ -1374,14 +1444,6 @@ KeepDrawing:
1374 1444
     //
1375 1445
     #if TEMP_SENSOR_0 != 0
1376 1446
 
1377
-      #if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 || TEMP_SENSOR_3 != 0 || TEMP_SENSOR_BED != 0
1378
-        MENU_ITEM(submenu, MSG_PREHEAT_1, lcd_preheat_material1_menu);
1379
-        MENU_ITEM(submenu, MSG_PREHEAT_2, lcd_preheat_material2_menu);
1380
-      #else
1381
-        MENU_ITEM(function, MSG_PREHEAT_1, lcd_preheat_material1_hotend0);
1382
-        MENU_ITEM(function, MSG_PREHEAT_2, lcd_preheat_material2_hotend0);
1383
-      #endif
1384
-
1385 1447
       //
1386 1448
       // Change filament
1387 1449
       //
@@ -1390,17 +1452,28 @@ KeepDrawing:
1390 1452
           MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);
1391 1453
       #endif
1392 1454
 
1393
-    #endif // TEMP_SENSOR_0 != 0
1455
+      //
1456
+      // Cooldown
1457
+      //
1458
+      bool has_heat = false;
1459
+      HOTEND_LOOP() if (thermalManager.target_temperature[HOTEND_INDEX]) { has_heat = true; break; }
1460
+      #if HAS_TEMP_BED
1461
+        if (thermalManager.target_temperature_bed) has_heat = true;
1462
+      #endif
1463
+      if (has_heat) MENU_ITEM(function, MSG_COOLDOWN, lcd_cooldown);
1394 1464
 
1395
-    //
1396
-    // Cooldown
1397
-    //
1398
-    bool has_heat = false;
1399
-    HOTEND_LOOP() if (thermalManager.target_temperature[HOTEND_INDEX]) { has_heat = true; break; }
1400
-    #if HAS_TEMP_BED
1401
-      if (thermalManager.target_temperature_bed) has_heat = true;
1402
-    #endif
1403
-    if (has_heat) MENU_ITEM(function, MSG_COOLDOWN, lcd_cooldown);
1465
+      //
1466
+      // Preheat for Material 1 and 2
1467
+      //
1468
+      #if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 || TEMP_SENSOR_3 != 0 || TEMP_SENSOR_BED != 0
1469
+        MENU_ITEM(submenu, MSG_PREHEAT_1, lcd_preheat_m1_menu);
1470
+        MENU_ITEM(submenu, MSG_PREHEAT_2, lcd_preheat_m2_menu);
1471
+      #else
1472
+        MENU_ITEM(function, MSG_PREHEAT_1, lcd_preheat_m1_e0_only);
1473
+        MENU_ITEM(function, MSG_PREHEAT_2, lcd_preheat_m2_e0_only);
1474
+      #endif
1475
+
1476
+    #endif // TEMP_SENSOR_0 != 0
1404 1477
 
1405 1478
     //
1406 1479
     // BLTouch Self-Test and Reset

Carregando…
Cancelar
Salvar