Просмотр исходного кода

Add custom preheat temp to filament change (#11475)

Marcio Teixeira 6 лет назад
Родитель
Сommit
2ebfe90be9
2 измененных файлов: 25 добавлений и 4 удалений
  1. 3
    0
      Marlin/src/lcd/language/language_en.h
  2. 22
    4
      Marlin/src/lcd/ultralcd.cpp

+ 3
- 0
Marlin/src/lcd/language/language_en.h Просмотреть файл

@@ -154,6 +154,9 @@
154 154
 #ifndef MSG_PREHEAT_2_SETTINGS
155 155
   #define MSG_PREHEAT_2_SETTINGS              MSG_PREHEAT_2 _UxGT(" conf")
156 156
 #endif
157
+#ifndef MSG_PREHEAT_CUSTOM
158
+  #define MSG_PREHEAT_CUSTOM                  _UxGT("Preheat Custom")
159
+#endif
157 160
 #ifndef MSG_COOLDOWN
158 161
   #define MSG_COOLDOWN                        _UxGT("Cooldown")
159 162
 #endif

+ 22
- 4
Marlin/src/lcd/ultralcd.cpp Просмотреть файл

@@ -4330,14 +4330,15 @@ void lcd_quick_feedback(const bool clear_buttons) {
4330 4330
       return PSTR(MSG_FILAMENTCHANGE);
4331 4331
     }
4332 4332
 
4333
-    void _change_filament_temp(const uint8_t index) {
4333
+    void _change_filament_temp(const uint16_t temperature) {
4334 4334
       char cmd[11];
4335 4335
       sprintf_P(cmd, _change_filament_temp_command(), _change_filament_temp_extruder);
4336
-      thermalManager.setTargetHotend(index == 1 ? PREHEAT_1_TEMP_HOTEND : PREHEAT_2_TEMP_HOTEND, _change_filament_temp_extruder);
4336
+      thermalManager.setTargetHotend(temperature, _change_filament_temp_extruder);
4337 4337
       lcd_enqueue_command(cmd);
4338 4338
     }
4339
-    void _lcd_change_filament_temp_1_menu() { _change_filament_temp(1); }
4340
-    void _lcd_change_filament_temp_2_menu() { _change_filament_temp(2); }
4339
+    void _lcd_change_filament_temp_1_menu() { _change_filament_temp(PREHEAT_1_TEMP_HOTEND); }
4340
+    void _lcd_change_filament_temp_2_menu() { _change_filament_temp(PREHEAT_2_TEMP_HOTEND); }
4341
+    void _lcd_change_filament_temp_custom_menu() { _change_filament_temp(thermalManager.target_temperature[_change_filament_temp_extruder]); }
4341 4342
 
4342 4343
     static const char* change_filament_header(const AdvancedPauseMode mode) {
4343 4344
       switch (mode) {
@@ -4358,6 +4359,23 @@ void lcd_quick_feedback(const bool clear_buttons) {
4358 4359
       MENU_BACK(MSG_FILAMENTCHANGE);
4359 4360
       MENU_ITEM(submenu, MSG_PREHEAT_1, _lcd_change_filament_temp_1_menu);
4360 4361
       MENU_ITEM(submenu, MSG_PREHEAT_2, _lcd_change_filament_temp_2_menu);
4362
+      uint16_t max_temp;
4363
+      switch (extruder) {
4364
+        default: max_temp = HEATER_0_MAXTEMP;
4365
+        #if HOTENDS > 1
4366
+          case 1: max_temp = HEATER_1_MAXTEMP; break;
4367
+          #if HOTENDS > 2
4368
+            case 2: max_temp = HEATER_2_MAXTEMP; break;
4369
+            #if HOTENDS > 3
4370
+              case 3: max_temp = HEATER_3_MAXTEMP; break;
4371
+              #if HOTENDS > 4
4372
+                case 4: max_temp = HEATER_4_MAXTEMP; break;
4373
+              #endif
4374
+            #endif
4375
+          #endif
4376
+        #endif
4377
+      }
4378
+      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_PREHEAT_CUSTOM, &thermalManager.target_temperature[_change_filament_temp_extruder], EXTRUDE_MINTEMP, max_temp - 15, _lcd_change_filament_temp_custom_menu);
4361 4379
       END_MENU();
4362 4380
     }
4363 4381
     void lcd_temp_menu_e0_filament_change()  { _lcd_temp_menu_filament_op(ADVANCED_PAUSE_MODE_PAUSE_PRINT, 0); }

Загрузка…
Отмена
Сохранить