🎨 Define HAS_PREHEAT conditional
This commit is contained in:
		
				
					committed by
					
						
						Scott Lahteine
					
				
			
			
				
	
			
			
			
						parent
						
							1fd4258423
						
					
				
				
					commit
					84f9490149
				
			@@ -520,7 +520,7 @@ void GcodeSuite::G26() {
 | 
			
		||||
  g26.keep_heaters_on       = parser.boolval('K');
 | 
			
		||||
 | 
			
		||||
  // Accept 'I' if temperature presets are defined
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    const uint8_t preset_index = parser.seenval('I') ? _MIN(parser.value_byte(), PREHEAT_COUNT - 1) + 1 : 0;
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
@@ -530,7 +530,7 @@ void GcodeSuite::G26() {
 | 
			
		||||
    celsius_t bedtemp = 0;
 | 
			
		||||
 | 
			
		||||
    // Use the 'I' index if temperature presets are defined
 | 
			
		||||
    #if PREHEAT_COUNT
 | 
			
		||||
    #if HAS_PREHEAT
 | 
			
		||||
      if (preset_index) bedtemp = ui.material_preset[preset_index - 1].bed_temp;
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
@@ -613,7 +613,7 @@ void GcodeSuite::G26() {
 | 
			
		||||
  celsius_t noztemp = 0;
 | 
			
		||||
 | 
			
		||||
  // Accept 'I' if temperature presets are defined
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    if (preset_index) noztemp = ui.material_preset[preset_index - 1].hotend_temp;
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -640,7 +640,7 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) {
 | 
			
		||||
      case 120: M120(); break;                                    // M120: Enable endstops
 | 
			
		||||
      case 121: M121(); break;                                    // M121: Disable endstops
 | 
			
		||||
 | 
			
		||||
      #if PREHEAT_COUNT
 | 
			
		||||
      #if HAS_PREHEAT
 | 
			
		||||
        case 145: M145(); break;                                  // M145: Set material heatup parameters
 | 
			
		||||
      #endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -749,7 +749,7 @@ private:
 | 
			
		||||
    static void M193();
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    static void M145();
 | 
			
		||||
    static void M145_report(const bool forReplay=true);
 | 
			
		||||
  #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,7 @@
 | 
			
		||||
 | 
			
		||||
#include "../../inc/MarlinConfig.h"
 | 
			
		||||
 | 
			
		||||
#if PREHEAT_COUNT
 | 
			
		||||
#if HAS_PREHEAT
 | 
			
		||||
 | 
			
		||||
#include "../gcode.h"
 | 
			
		||||
#include "../../lcd/marlinui.h"
 | 
			
		||||
@@ -79,4 +79,4 @@ void GcodeSuite::M145_report(const bool forReplay/*=true*/) {
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif // PREHEAT_COUNT
 | 
			
		||||
#endif // HAS_PREHEAT
 | 
			
		||||
 
 | 
			
		||||
@@ -88,7 +88,7 @@ void GcodeSuite::M104_M109(const bool isM109) {
 | 
			
		||||
  celsius_t temp = 0;
 | 
			
		||||
 | 
			
		||||
  // Accept 'I' if temperature presets are defined
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    got_temp = parser.seenval('I');
 | 
			
		||||
    if (got_temp) {
 | 
			
		||||
      const uint8_t index = parser.value_byte();
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,7 @@
 | 
			
		||||
  #include "../../module/planner.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if PREHEAT_COUNT
 | 
			
		||||
#if HAS_PREHEAT
 | 
			
		||||
  #include "../../lcd/marlinui.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@@ -75,7 +75,7 @@ void GcodeSuite::M106() {
 | 
			
		||||
  uint16_t speed = dspeed;
 | 
			
		||||
 | 
			
		||||
  // Accept 'I' if temperature presets are defined
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    const bool got_preset = parser.seenval('I');
 | 
			
		||||
    if (got_preset) speed = ui.material_preset[_MIN(parser.value_byte(), PREHEAT_COUNT - 1)].fan_speed;
 | 
			
		||||
  #else
 | 
			
		||||
 
 | 
			
		||||
@@ -63,7 +63,7 @@ void GcodeSuite::M140_M190(const bool isM190) {
 | 
			
		||||
  celsius_t temp = 0;
 | 
			
		||||
 | 
			
		||||
  // Accept 'I' if temperature presets are defined
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    got_temp = parser.seenval('I');
 | 
			
		||||
    if (got_temp) {
 | 
			
		||||
      const uint8_t index = parser.value_byte();
 | 
			
		||||
 
 | 
			
		||||
@@ -2874,10 +2874,14 @@
 | 
			
		||||
  #elif defined(PREHEAT_1_LABEL)
 | 
			
		||||
    #define PREHEAT_COUNT 1
 | 
			
		||||
  #endif
 | 
			
		||||
  #if PREHEAT_COUNT && ANY(HAS_HOTEND, HAS_HEATED_BED, HAS_FAN)
 | 
			
		||||
    #define HAS_PREHEAT 1
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !PREHEAT_COUNT
 | 
			
		||||
#if !HAS_PREHEAT
 | 
			
		||||
  #undef PREHEAT_SHORTCUT_MENU_ITEM
 | 
			
		||||
  #undef DGUS_PREHEAT_UI
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 
 | 
			
		||||
@@ -165,14 +165,9 @@ typedef struct {
 | 
			
		||||
} select_t;
 | 
			
		||||
 | 
			
		||||
select_t select_page{0}, select_file{0}, select_print{0}, select_prepare{0}
 | 
			
		||||
         , select_control{0}, select_axis{0}, select_temp{0}, select_motion{0}, select_tune{0}
 | 
			
		||||
         , select_advset{0}, select_PLA{0}, select_ABS{0}
 | 
			
		||||
         , select_speed{0}
 | 
			
		||||
         , select_acc{0}
 | 
			
		||||
         , select_jerk{0}
 | 
			
		||||
         , select_step{0}
 | 
			
		||||
         , select_item{0}
 | 
			
		||||
         ;
 | 
			
		||||
       , select_control{0}, select_axis{0}, select_temp{0}, select_motion{0}, select_tune{0}
 | 
			
		||||
       , select_advset{0}, select_PLA{0}, select_ABS{0}
 | 
			
		||||
       , select_speed{0}, select_acc{0}, select_jerk{0}, select_step{0}, select_item{0};
 | 
			
		||||
 | 
			
		||||
uint8_t index_file     = MROWS,
 | 
			
		||||
        index_prepare  = MROWS,
 | 
			
		||||
@@ -700,7 +695,7 @@ void Item_Prepare_Home(const uint8_t row) {
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if HAS_HOTEND
 | 
			
		||||
#if HAS_PREHEAT
 | 
			
		||||
  void Item_Prepare_PLA(const uint8_t row) {
 | 
			
		||||
    if (HMI_IsChinese())
 | 
			
		||||
      Item_AreaCopy(100, 89, 151, 101, row);
 | 
			
		||||
@@ -715,22 +710,22 @@ void Item_Prepare_Home(const uint8_t row) {
 | 
			
		||||
    Draw_Menu_Line(row, ICON_PLAPreheat);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void Item_Prepare_ABS(const uint8_t row) {
 | 
			
		||||
    if (HMI_IsChinese())
 | 
			
		||||
      Item_AreaCopy(180,  89, 233, 100, row);
 | 
			
		||||
    else {
 | 
			
		||||
      #ifdef USE_STRING_TITLES
 | 
			
		||||
        DWIN_Draw_Label(row, F("Preheat " PREHEAT_2_LABEL));
 | 
			
		||||
      #else
 | 
			
		||||
        Item_AreaCopy(108,  76, 155,  87, row); // "Preheat"
 | 
			
		||||
        say_abs_en(52, row);                    // "ABS"
 | 
			
		||||
      #endif
 | 
			
		||||
  #if PREHEAT_COUNT > 1
 | 
			
		||||
    void Item_Prepare_ABS(const uint8_t row) {
 | 
			
		||||
      if (HMI_IsChinese())
 | 
			
		||||
        Item_AreaCopy(180,  89, 233, 100, row);
 | 
			
		||||
      else {
 | 
			
		||||
        #ifdef USE_STRING_TITLES
 | 
			
		||||
          DWIN_Draw_Label(row, F("Preheat " PREHEAT_2_LABEL));
 | 
			
		||||
        #else
 | 
			
		||||
          Item_AreaCopy(108,  76, 155,  87, row); // "Preheat"
 | 
			
		||||
          say_abs_en(52, row);                    // "ABS"
 | 
			
		||||
        #endif
 | 
			
		||||
      }
 | 
			
		||||
      Draw_Menu_Line(row, ICON_ABSPreheat);
 | 
			
		||||
    }
 | 
			
		||||
    Draw_Menu_Line(row, ICON_ABSPreheat);
 | 
			
		||||
  }
 | 
			
		||||
#endif
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
#if HAS_PREHEAT
 | 
			
		||||
  void Item_Prepare_Cool(const uint8_t row) {
 | 
			
		||||
    if (HMI_IsChinese())
 | 
			
		||||
      Item_AreaCopy(1, 104,  56, 117, row);
 | 
			
		||||
@@ -785,11 +780,11 @@ void Draw_Prepare_Menu() {
 | 
			
		||||
  #if HAS_ZOFFSET_ITEM
 | 
			
		||||
    if (PVISI(PREPARE_CASE_ZOFF)) Item_Prepare_Offset(PSCROL(PREPARE_CASE_ZOFF)); // Edit Z-Offset / Babystep / Set Home Offset
 | 
			
		||||
  #endif
 | 
			
		||||
  #if HAS_HOTEND
 | 
			
		||||
    if (PVISI(PREPARE_CASE_PLA)) Item_Prepare_PLA(PSCROL(PREPARE_CASE_PLA));      // Preheat PLA
 | 
			
		||||
    if (PVISI(PREPARE_CASE_ABS)) Item_Prepare_ABS(PSCROL(PREPARE_CASE_ABS));      // Preheat ABS
 | 
			
		||||
  #endif
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    if (PVISI(PREPARE_CASE_PLA)) Item_Prepare_PLA(PSCROL(PREPARE_CASE_PLA));      // Preheat PLA
 | 
			
		||||
    #if PREHEAT_COUNT > 1
 | 
			
		||||
      if (PVISI(PREPARE_CASE_ABS)) Item_Prepare_ABS(PSCROL(PREPARE_CASE_ABS));    // Preheat ABS
 | 
			
		||||
    #endif
 | 
			
		||||
    if (PVISI(PREPARE_CASE_COOL)) Item_Prepare_Cool(PSCROL(PREPARE_CASE_COOL));   // Cooldown
 | 
			
		||||
  #endif
 | 
			
		||||
  if (PVISI(PREPARE_CASE_LANG)) Item_Prepare_Lang(PSCROL(PREPARE_CASE_LANG));     // Language CN/EN
 | 
			
		||||
@@ -1425,25 +1420,34 @@ void HMI_Move_Z() {
 | 
			
		||||
    uint8_t temp_line;
 | 
			
		||||
    switch (HMI_ValueStruct.show_mode) {
 | 
			
		||||
      case -1: temp_line = TEMP_CASE_TEMP; break;
 | 
			
		||||
      case -2: temp_line = PREHEAT_CASE_TEMP; break;
 | 
			
		||||
      case -3: temp_line = PREHEAT_CASE_TEMP; break;
 | 
			
		||||
      #if HAS_PREHEAT
 | 
			
		||||
        case -2: temp_line = PREHEAT_CASE_TEMP; break;
 | 
			
		||||
        #if PREHEAT_COUNT > 1
 | 
			
		||||
          case -3: temp_line = PREHEAT_CASE_TEMP; break;
 | 
			
		||||
        #endif
 | 
			
		||||
      #endif
 | 
			
		||||
      default: temp_line = TUNE_CASE_TEMP + MROWS - index_tune;
 | 
			
		||||
    }
 | 
			
		||||
    if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.E_Temp)) {
 | 
			
		||||
      EncoderRate.enabled = false;
 | 
			
		||||
      if (HMI_ValueStruct.show_mode == -2) {
 | 
			
		||||
        checkkey = PLAPreheat;
 | 
			
		||||
        ui.material_preset[0].hotend_temp = HMI_ValueStruct.E_Temp;
 | 
			
		||||
        Draw_Edit_Integer3(temp_line, ui.material_preset[0].hotend_temp);
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      else if (HMI_ValueStruct.show_mode == -3) {
 | 
			
		||||
        checkkey = ABSPreheat;
 | 
			
		||||
        ui.material_preset[1].hotend_temp = HMI_ValueStruct.E_Temp;
 | 
			
		||||
        Draw_Edit_Integer3(temp_line, ui.material_preset[1].hotend_temp);
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      else if (HMI_ValueStruct.show_mode == -1) // Temperature
 | 
			
		||||
      #if HAS_PREHEAT
 | 
			
		||||
        if (HMI_ValueStruct.show_mode == -2) {
 | 
			
		||||
          checkkey = PLAPreheat;
 | 
			
		||||
          ui.material_preset[0].hotend_temp = HMI_ValueStruct.E_Temp;
 | 
			
		||||
          Draw_Edit_Integer3(temp_line, ui.material_preset[0].hotend_temp);
 | 
			
		||||
          return;
 | 
			
		||||
        }
 | 
			
		||||
        #if PREHEAT_COUNT > 1
 | 
			
		||||
          if (HMI_ValueStruct.show_mode == -3) {
 | 
			
		||||
            checkkey = ABSPreheat;
 | 
			
		||||
            ui.material_preset[1].hotend_temp = HMI_ValueStruct.E_Temp;
 | 
			
		||||
            Draw_Edit_Integer3(temp_line, ui.material_preset[1].hotend_temp);
 | 
			
		||||
            return;
 | 
			
		||||
          }
 | 
			
		||||
        #endif
 | 
			
		||||
      #endif
 | 
			
		||||
 | 
			
		||||
      if (HMI_ValueStruct.show_mode == -1) // Temperature
 | 
			
		||||
        checkkey = TemperatureID;
 | 
			
		||||
      else
 | 
			
		||||
        checkkey = Tune;
 | 
			
		||||
@@ -1467,28 +1471,33 @@ void HMI_Move_Z() {
 | 
			
		||||
    uint8_t bed_line;
 | 
			
		||||
    switch (HMI_ValueStruct.show_mode) {
 | 
			
		||||
      case -1: bed_line = TEMP_CASE_BED; break;
 | 
			
		||||
      case -2: bed_line = PREHEAT_CASE_BED; break;
 | 
			
		||||
      case -3: bed_line = PREHEAT_CASE_BED; break;
 | 
			
		||||
      #if HAS_PREHEAT
 | 
			
		||||
        case -2: bed_line = PREHEAT_CASE_BED; break;
 | 
			
		||||
        #if PREHEAT_COUNT > 1
 | 
			
		||||
          case -3: bed_line = PREHEAT_CASE_BED; break;
 | 
			
		||||
        #endif
 | 
			
		||||
      #endif
 | 
			
		||||
      default: bed_line = TUNE_CASE_BED + MROWS - index_tune;
 | 
			
		||||
    }
 | 
			
		||||
    if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Bed_Temp)) {
 | 
			
		||||
      EncoderRate.enabled = false;
 | 
			
		||||
      if (HMI_ValueStruct.show_mode == -2) {
 | 
			
		||||
        checkkey = PLAPreheat;
 | 
			
		||||
        ui.material_preset[0].bed_temp = HMI_ValueStruct.Bed_Temp;
 | 
			
		||||
        Draw_Edit_Integer3(bed_line, ui.material_preset[0].bed_temp);
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      else if (HMI_ValueStruct.show_mode == -3) {
 | 
			
		||||
        checkkey = ABSPreheat;
 | 
			
		||||
        ui.material_preset[1].bed_temp = HMI_ValueStruct.Bed_Temp;
 | 
			
		||||
        Draw_Edit_Integer3(bed_line, ui.material_preset[1].bed_temp);
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      else if (HMI_ValueStruct.show_mode == -1)
 | 
			
		||||
        checkkey = TemperatureID;
 | 
			
		||||
      else
 | 
			
		||||
        checkkey = Tune;
 | 
			
		||||
      #if HAS_PREHEAT
 | 
			
		||||
        if (HMI_ValueStruct.show_mode == -2) {
 | 
			
		||||
          checkkey = PLAPreheat;
 | 
			
		||||
          ui.material_preset[0].bed_temp = HMI_ValueStruct.Bed_Temp;
 | 
			
		||||
          Draw_Edit_Integer3(bed_line, ui.material_preset[0].bed_temp);
 | 
			
		||||
          return;
 | 
			
		||||
        }
 | 
			
		||||
        #if PREHEAT_COUNT > 1
 | 
			
		||||
          if (HMI_ValueStruct.show_mode == -3) {
 | 
			
		||||
            checkkey = ABSPreheat;
 | 
			
		||||
            ui.material_preset[1].bed_temp = HMI_ValueStruct.Bed_Temp;
 | 
			
		||||
            Draw_Edit_Integer3(bed_line, ui.material_preset[1].bed_temp);
 | 
			
		||||
            return;
 | 
			
		||||
          }
 | 
			
		||||
        #endif
 | 
			
		||||
      #endif
 | 
			
		||||
      checkkey = HMI_ValueStruct.show_mode == -1 ? TemperatureID : Tune;
 | 
			
		||||
      Draw_Edit_Integer3(bed_line, HMI_ValueStruct.Bed_Temp);
 | 
			
		||||
      thermalManager.setTargetBed(HMI_ValueStruct.Bed_Temp);
 | 
			
		||||
      return;
 | 
			
		||||
@@ -1522,16 +1531,15 @@ void HMI_Move_Z() {
 | 
			
		||||
        Draw_Edit_Integer3(fan_line, ui.material_preset[0].fan_speed);
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      else if (HMI_ValueStruct.show_mode == -3) {
 | 
			
		||||
        checkkey = ABSPreheat;
 | 
			
		||||
        ui.material_preset[1].fan_speed = HMI_ValueStruct.Fan_speed;
 | 
			
		||||
        Draw_Edit_Integer3(fan_line, ui.material_preset[1].fan_speed);
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      else if (HMI_ValueStruct.show_mode == -1)
 | 
			
		||||
        checkkey = TemperatureID;
 | 
			
		||||
      else
 | 
			
		||||
        checkkey = Tune;
 | 
			
		||||
      #if PREHEAT_COUNT > 1
 | 
			
		||||
        if (HMI_ValueStruct.show_mode == -3) {
 | 
			
		||||
          checkkey = ABSPreheat;
 | 
			
		||||
          ui.material_preset[1].fan_speed = HMI_ValueStruct.Fan_speed;
 | 
			
		||||
          Draw_Edit_Integer3(fan_line, ui.material_preset[1].fan_speed);
 | 
			
		||||
          return;
 | 
			
		||||
        }
 | 
			
		||||
      #endif
 | 
			
		||||
      checkkey = HMI_ValueStruct.show_mode == -1 ? TemperatureID : Tune;
 | 
			
		||||
      Draw_Edit_Integer3(fan_line, HMI_ValueStruct.Fan_speed);
 | 
			
		||||
      thermalManager.set_fan_speed(0, HMI_ValueStruct.Fan_speed);
 | 
			
		||||
      return;
 | 
			
		||||
@@ -3068,7 +3076,7 @@ void HMI_Temperature() {
 | 
			
		||||
          EncoderRate.enabled = true;
 | 
			
		||||
          break;
 | 
			
		||||
      #endif
 | 
			
		||||
      #if HAS_HOTEND
 | 
			
		||||
      #if HAS_PREHEAT
 | 
			
		||||
        case TEMP_CASE_PLA: {
 | 
			
		||||
          checkkey = PLAPreheat;
 | 
			
		||||
          select_PLA.reset();
 | 
			
		||||
@@ -3145,7 +3153,8 @@ void HMI_Temperature() {
 | 
			
		||||
            Draw_Menu_Line(++i, ICON_WriteEEPROM);
 | 
			
		||||
          #endif
 | 
			
		||||
        } break;
 | 
			
		||||
 | 
			
		||||
      #endif
 | 
			
		||||
      #if PREHEAT_COUNT > 1
 | 
			
		||||
        case TEMP_CASE_ABS: { // ABS preheat setting
 | 
			
		||||
          checkkey = ABSPreheat;
 | 
			
		||||
          select_ABS.reset();
 | 
			
		||||
 
 | 
			
		||||
@@ -31,13 +31,6 @@
 | 
			
		||||
 | 
			
		||||
#include "../../../inc/MarlinConfigPre.h"
 | 
			
		||||
 | 
			
		||||
#if ANY(HAS_HOTEND, HAS_HEATED_BED, HAS_FAN) && PREHEAT_COUNT
 | 
			
		||||
  #define HAS_PREHEAT 1
 | 
			
		||||
  #if PREHEAT_COUNT < 2
 | 
			
		||||
    #error "Creality DWIN requires two material preheat presets."
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
enum processID : uint8_t {
 | 
			
		||||
  // Process ID
 | 
			
		||||
  MainMenu,
 | 
			
		||||
@@ -53,7 +46,9 @@ enum processID : uint8_t {
 | 
			
		||||
  Tune,
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    PLAPreheat,
 | 
			
		||||
    ABSPreheat,
 | 
			
		||||
    #if PREHEAT_COUNT > 1
 | 
			
		||||
      ABSPreheat,
 | 
			
		||||
    #endif
 | 
			
		||||
  #endif
 | 
			
		||||
  MaxSpeed,
 | 
			
		||||
  MaxSpeed_value,
 | 
			
		||||
 
 | 
			
		||||
@@ -3124,12 +3124,14 @@ void Draw_Prepare_Menu() {
 | 
			
		||||
        ADDMENUITEM(ICON_SetHome, GET_TEXT_F(MSG_SET_HOME_OFFSETS), onDrawHomeOffset, SetHome);
 | 
			
		||||
      #endif
 | 
			
		||||
    #endif
 | 
			
		||||
    #if HAS_HOTEND
 | 
			
		||||
      ADDMENUITEM(ICON_PLAPreheat, GET_TEXT_F(MSG_PREHEAT_1), onDrawPreheat1, SetPreheat0);
 | 
			
		||||
      ADDMENUITEM(ICON_ABSPreheat, PSTR("Preheat " PREHEAT_2_LABEL), onDrawPreheat2, SetPreheat1);
 | 
			
		||||
      ADDMENUITEM(ICON_CustomPreheat, GET_TEXT_F(MSG_PREHEAT_CUSTOM), onDrawMenuItem, SetPreheat2);
 | 
			
		||||
    #endif
 | 
			
		||||
    #if HAS_PREHEAT
 | 
			
		||||
      ADDMENUITEM(ICON_PLAPreheat, GET_TEXT_F(MSG_PREHEAT_1), onDrawPreheat1, SetPreheat0);
 | 
			
		||||
      #if PREHEAT_COUNT > 1
 | 
			
		||||
        ADDMENUITEM(ICON_ABSPreheat, PSTR("Preheat " PREHEAT_2_LABEL), onDrawPreheat2, SetPreheat1);
 | 
			
		||||
      #endif
 | 
			
		||||
      #if PREHEAT_COUNT > 2
 | 
			
		||||
        ADDMENUITEM(ICON_CustomPreheat, GET_TEXT_F(MSG_PREHEAT_CUSTOM), onDrawMenuItem, SetPreheat2);
 | 
			
		||||
      #endif
 | 
			
		||||
      ADDMENUITEM(ICON_Cool, GET_TEXT_F(MSG_COOLDOWN), onDrawCooldown, SetCoolDown);
 | 
			
		||||
    #endif
 | 
			
		||||
    ADDMENUITEM(ICON_Language, PSTR("UI Language"), onDrawLanguage, SetLanguage);
 | 
			
		||||
 
 | 
			
		||||
@@ -33,13 +33,6 @@
 | 
			
		||||
#include "../common/encoder.h"
 | 
			
		||||
#include "../../../libs/BL24CXX.h"
 | 
			
		||||
 | 
			
		||||
#if ANY(HAS_HOTEND, HAS_HEATED_BED, HAS_FAN) && PREHEAT_COUNT
 | 
			
		||||
  #define HAS_PREHEAT 1
 | 
			
		||||
  #if PREHEAT_COUNT < 2
 | 
			
		||||
    #error "Creality DWIN requires two material preheat presets."
 | 
			
		||||
  #endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if ANY(AUTO_BED_LEVELING_BILINEAR, AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_3POINT) && DISABLED(PROBE_MANUALLY)
 | 
			
		||||
  #define HAS_ONESTEP_LEVELING 1
 | 
			
		||||
#endif
 | 
			
		||||
@@ -123,12 +116,14 @@ typedef struct {
 | 
			
		||||
  uint16_t Barfill_Color    = Def_Barfill_Color;
 | 
			
		||||
  uint16_t Indicator_Color  = Def_Indicator_Color;
 | 
			
		||||
  uint16_t Coordinate_Color = Def_Coordinate_Color;
 | 
			
		||||
  #if HAS_HOTEND
 | 
			
		||||
    int16_t HotendPidT = PREHEAT_1_TEMP_HOTEND;
 | 
			
		||||
    int16_t PidCycles = 10;
 | 
			
		||||
  #endif
 | 
			
		||||
  #ifdef PREHEAT_1_TEMP_BED
 | 
			
		||||
    int16_t BedPidT = PREHEAT_1_TEMP_BED;
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    #ifdef PREHEAT_1_TEMP_HOTEND
 | 
			
		||||
      int16_t HotendPidT = PREHEAT_1_TEMP_HOTEND;
 | 
			
		||||
      int16_t PidCycles = 10;
 | 
			
		||||
    #endif
 | 
			
		||||
    #ifdef PREHEAT_1_TEMP_BED
 | 
			
		||||
      int16_t BedPidT = PREHEAT_1_TEMP_BED;
 | 
			
		||||
    #endif
 | 
			
		||||
  #endif
 | 
			
		||||
  #if ENABLED(PREVENT_COLD_EXTRUSION)
 | 
			
		||||
    int16_t ExtMinT = EXTRUDE_MINTEMP;
 | 
			
		||||
 
 | 
			
		||||
@@ -76,10 +76,6 @@
 | 
			
		||||
  #include "../../../module/probe.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if ANY(HAS_HOTEND, HAS_HEATED_BED, HAS_FAN) && PREHEAT_COUNT
 | 
			
		||||
  #define HAS_PREHEAT 1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if ENABLED(POWER_LOSS_RECOVERY)
 | 
			
		||||
  #include "../../../feature/powerloss.h"
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1593,7 +1589,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
 | 
			
		||||
 | 
			
		||||
        #define PREHEAT_BACK 0
 | 
			
		||||
        #define PREHEAT_MODE (PREHEAT_BACK + 1)
 | 
			
		||||
        #define PREHEAT_1 (PREHEAT_MODE + (PREHEAT_COUNT >= 1))
 | 
			
		||||
        #define PREHEAT_1 (PREHEAT_MODE + 1)
 | 
			
		||||
        #define PREHEAT_2 (PREHEAT_1 + (PREHEAT_COUNT >= 2))
 | 
			
		||||
        #define PREHEAT_3 (PREHEAT_2 + (PREHEAT_COUNT >= 3))
 | 
			
		||||
        #define PREHEAT_4 (PREHEAT_3 + (PREHEAT_COUNT >= 4))
 | 
			
		||||
 
 | 
			
		||||
@@ -335,7 +335,7 @@ void NextionTFT::PanelInfo(uint8_t req) {
 | 
			
		||||
    break;
 | 
			
		||||
 | 
			
		||||
  case 29: // Preheat
 | 
			
		||||
    #if PREHEAT_COUNT
 | 
			
		||||
    #if HAS_PREHEAT
 | 
			
		||||
      if (!isPrinting()) {
 | 
			
		||||
        // Preheat PLA
 | 
			
		||||
        if (nextion_command[4] == 'P') {
 | 
			
		||||
@@ -560,7 +560,7 @@ void NextionTFT::PanelAction(uint8_t req) {
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case 63: // Preheat // Temps defined in configuration.h
 | 
			
		||||
      #if PREHEAT_COUNT
 | 
			
		||||
      #if HAS_PREHEAT
 | 
			
		||||
        if (!isPrinting()) switch (nextion_command[4]) {
 | 
			
		||||
          // Preheat PLA
 | 
			
		||||
          case 'P':
 | 
			
		||||
 
 | 
			
		||||
@@ -705,7 +705,7 @@ namespace ExtUI {
 | 
			
		||||
    uint8_t getIDEX_Mode() { return dual_x_carriage_mode; }
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    uint16_t getMaterial_preset_E(const uint16_t index) { return ui.material_preset[index].hotend_temp; }
 | 
			
		||||
    #if HAS_HEATED_BED
 | 
			
		||||
      uint16_t getMaterial_preset_B(const uint16_t index) { return ui.material_preset[index].bed_temp; }
 | 
			
		||||
 
 | 
			
		||||
@@ -148,7 +148,7 @@ namespace ExtUI {
 | 
			
		||||
 | 
			
		||||
  uint32_t getProgress_seconds_elapsed();
 | 
			
		||||
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    uint16_t getMaterial_preset_E(const uint16_t);
 | 
			
		||||
    #if HAS_HEATED_BED
 | 
			
		||||
      uint16_t getMaterial_preset_B(const uint16_t);
 | 
			
		||||
 
 | 
			
		||||
@@ -56,7 +56,7 @@ namespace Language_an {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("Achustar desfases");
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("Desfase aplicau");
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Establir orichen");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Precalentar ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Precalentar ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Precal. ") PREHEAT_1_LABEL _UxGT(" Boquilla");
 | 
			
		||||
 
 | 
			
		||||
@@ -45,7 +45,7 @@ namespace Language_bg {
 | 
			
		||||
  LSTR MSG_AUTO_HOME                      = _UxGT("Паркиране");
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("Задай Начало");
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Изходна точка");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Подгряване ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Подгряване ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Подгряване ") PREHEAT_1_LABEL _UxGT(" Дюза");
 | 
			
		||||
 
 | 
			
		||||
@@ -54,7 +54,7 @@ namespace Language_ca {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("Ajusta decalatge");
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("Decalatge aplicat");
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Estableix origen");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Preescalfa ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Preescalfa ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Preescalfa ") PREHEAT_1_LABEL _UxGT(" End");
 | 
			
		||||
 
 | 
			
		||||
@@ -78,7 +78,7 @@ namespace Language_cz {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("Nastavit ofsety");
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("Ofsety nastaveny");
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Nastavit počátek");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Zahřát ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Zahřát ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" end");
 | 
			
		||||
@@ -153,7 +153,7 @@ namespace Language_cz {
 | 
			
		||||
  LSTR MSG_UBL_DONE_EDITING_MESH          = _UxGT("Konec úprav sítě");
 | 
			
		||||
  LSTR MSG_UBL_BUILD_CUSTOM_MESH          = _UxGT("Vlastní síť");
 | 
			
		||||
  LSTR MSG_UBL_BUILD_MESH_MENU            = _UxGT("Vytvořit síť");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_UBL_BUILD_MESH_M             = _UxGT("Síť bodů $");
 | 
			
		||||
    LSTR MSG_UBL_VALIDATE_MESH_M          = _UxGT("Kontrola sítě $");
 | 
			
		||||
  #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -48,7 +48,7 @@ namespace Language_da {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("Sæt forsk. af home");
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("Forsk. er nu aktiv");
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Sæt origin");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Forvarm ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Forvarm ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Forvarm ") PREHEAT_1_LABEL _UxGT(" end");
 | 
			
		||||
 
 | 
			
		||||
@@ -69,7 +69,7 @@ namespace Language_de {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("Setze Homeversatz");
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("Homeversatz aktiv");
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Setze Nullpunkte"); //"G92 X0 Y0 Z0" commented out in marlinui.cpp
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = PREHEAT_1_LABEL _UxGT(" Vorwärmen");
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = PREHEAT_1_LABEL _UxGT(" Vorwärmen ~");
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = PREHEAT_1_LABEL _UxGT(" Extr. Vorwärmen");
 | 
			
		||||
@@ -144,7 +144,7 @@ namespace Language_de {
 | 
			
		||||
  LSTR MSG_UBL_DONE_EDITING_MESH          = _UxGT("Bearbeitung beendet");
 | 
			
		||||
  LSTR MSG_UBL_BUILD_CUSTOM_MESH          = _UxGT("Eigenes Netz erst.");
 | 
			
		||||
  LSTR MSG_UBL_BUILD_MESH_MENU            = _UxGT("Netz erstellen");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_UBL_BUILD_MESH_M             = _UxGT("$ Netz erstellen");
 | 
			
		||||
    LSTR MSG_UBL_VALIDATE_MESH_M          = _UxGT("$ Netz validieren");
 | 
			
		||||
  #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -65,7 +65,7 @@ namespace Language_el {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("Ορισμός μετατοπίσεων");
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("Εφαρμογή μετατοπίσεων");
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Ορισμός προέλευσης");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" End");
 | 
			
		||||
 
 | 
			
		||||
@@ -54,7 +54,7 @@ namespace Language_el_gr {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("Ορισμός βασικών μετατοπίσεων");
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("Εφαρμόστηκαν οι μετατοπίσεις");
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Ορισμός προέλευσης");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" End");
 | 
			
		||||
 
 | 
			
		||||
@@ -104,7 +104,7 @@ namespace Language_en {
 | 
			
		||||
  LSTR MSG_TRAMMING_WIZARD                = _UxGT("Tramming Wizard");
 | 
			
		||||
  LSTR MSG_SELECT_ORIGIN                  = _UxGT("Select Origin");
 | 
			
		||||
  LSTR MSG_LAST_VALUE_SP                  = _UxGT("Last value ");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Preheat ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Preheat ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" End");
 | 
			
		||||
 
 | 
			
		||||
@@ -73,7 +73,7 @@ namespace Language_es {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("Ajustar desfases");
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("Desfase aplicada");
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Establecer origen");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Precal. ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Precal. ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Precal. ") PREHEAT_1_LABEL _UxGT(" Fusor");
 | 
			
		||||
@@ -147,7 +147,7 @@ namespace Language_es {
 | 
			
		||||
  LSTR MSG_UBL_DONE_EDITING_MESH          = _UxGT("Term. edici. Mallado");
 | 
			
		||||
  LSTR MSG_UBL_BUILD_CUSTOM_MESH          = _UxGT("Crear Mallado Pers.");
 | 
			
		||||
  LSTR MSG_UBL_BUILD_MESH_MENU            = _UxGT("Crear Mallado");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_UBL_BUILD_MESH_M             = _UxGT("Crear Mallado ($)");
 | 
			
		||||
    LSTR MSG_UBL_VALIDATE_MESH_M          = _UxGT("Valid. Mall. ($)");
 | 
			
		||||
  #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -57,7 +57,7 @@ namespace Language_eu {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("Etxe. offset eza.");
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("Offsetak ezarrita");
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Hasiera ipini");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Berotu ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Berotu ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Amaia");
 | 
			
		||||
@@ -100,7 +100,7 @@ namespace Language_eu {
 | 
			
		||||
  LSTR MSG_UBL_MESH_EDIT                  = _UxGT("Sarea editatu");
 | 
			
		||||
  LSTR MSG_UBL_DONE_EDITING_MESH          = _UxGT("Sarea editatzea eginda");
 | 
			
		||||
  LSTR MSG_UBL_BUILD_MESH_MENU            = _UxGT("Sarea sortu");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_UBL_BUILD_MESH_M             = _UxGT("$ sarea sortu");
 | 
			
		||||
    LSTR MSG_UBL_VALIDATE_MESH_M          = _UxGT("$ sarea balioetsi");
 | 
			
		||||
  #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,7 @@ namespace Language_fi {
 | 
			
		||||
  LSTR MSG_DISABLE_STEPPERS               = _UxGT("Vapauta moottorit");
 | 
			
		||||
  LSTR MSG_AUTO_HOME                      = _UxGT("Aja referenssiin");
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Aseta origo");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Esilämmitä ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Esilämmitä ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Esilä. ") PREHEAT_1_LABEL _UxGT("Suutin");
 | 
			
		||||
 
 | 
			
		||||
@@ -82,7 +82,7 @@ namespace Language_fr {
 | 
			
		||||
  LSTR MSG_TRAMMING_WIZARD                = _UxGT("Assistant Molettes");
 | 
			
		||||
  LSTR MSG_SELECT_ORIGIN                  = _UxGT("Molette du lit"); // Not a selection of the origin
 | 
			
		||||
  LSTR MSG_LAST_VALUE_SP                  = _UxGT("Ecart origine ");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Préchauffage ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Préchauffage ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Préch. ") PREHEAT_1_LABEL _UxGT(" buse");
 | 
			
		||||
@@ -162,7 +162,7 @@ namespace Language_fr {
 | 
			
		||||
  LSTR MSG_UBL_FINE_TUNE_MESH             = _UxGT("Réglage fin");
 | 
			
		||||
  LSTR MSG_UBL_DONE_EDITING_MESH          = _UxGT("Terminer");
 | 
			
		||||
  LSTR MSG_UBL_BUILD_MESH_MENU            = _UxGT("Créer la grille");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_UBL_BUILD_MESH_M             = _UxGT("Créer grille $");
 | 
			
		||||
    LSTR MSG_UBL_VALIDATE_MESH_M          = _UxGT("Impr. grille $");
 | 
			
		||||
  #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -70,7 +70,7 @@ namespace Language_gl {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("Axustar Desfases");
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("Desfases aplicados");
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Fixar orixe");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Prequentar ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Prequentar ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Preque. ") PREHEAT_1_LABEL _UxGT(" Bico");
 | 
			
		||||
@@ -144,7 +144,7 @@ namespace Language_gl {
 | 
			
		||||
  LSTR MSG_UBL_DONE_EDITING_MESH          = _UxGT("Fin Edición da Malla");
 | 
			
		||||
  LSTR MSG_UBL_BUILD_CUSTOM_MESH          = _UxGT("Crear Malla Person.");
 | 
			
		||||
  LSTR MSG_UBL_BUILD_MESH_MENU            = _UxGT("Crear Malla");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_UBL_BUILD_MESH_M             = _UxGT("Crear Malla ($)");
 | 
			
		||||
    LSTR MSG_UBL_VALIDATE_MESH_M          = _UxGT("Validar Malla ($)");
 | 
			
		||||
  #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -54,7 +54,7 @@ namespace Language_hr {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("Postavi home offsete");
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("Offsets postavljeni");
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Postavi ishodište");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Predgrij ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Predgrij ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Predgrij ") PREHEAT_1_LABEL _UxGT(" Dizna");
 | 
			
		||||
 
 | 
			
		||||
@@ -89,7 +89,7 @@ namespace Language_hu {
 | 
			
		||||
  LSTR MSG_TRAMMING_WIZARD                = _UxGT("Elektromos varázsló");
 | 
			
		||||
  LSTR MSG_SELECT_ORIGIN                  = _UxGT("Eredeti választása");
 | 
			
		||||
  LSTR MSG_LAST_VALUE_SP                  = _UxGT("Utolsó érték ");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Fütés ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Fütés ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Fütés ") PREHEAT_1_LABEL _UxGT(" Fej");
 | 
			
		||||
 
 | 
			
		||||
@@ -95,7 +95,7 @@ namespace Language_it {
 | 
			
		||||
  LSTR MSG_TRAMMING_WIZARD                = _UxGT("Wizard Tramming");
 | 
			
		||||
  LSTR MSG_SELECT_ORIGIN                  = _UxGT("Selez. origine");
 | 
			
		||||
  LSTR MSG_LAST_VALUE_SP                  = _UxGT("Ultimo valore ");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Preriscalda ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Preriscalda ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Ugello");
 | 
			
		||||
@@ -186,7 +186,7 @@ namespace Language_it {
 | 
			
		||||
  LSTR MSG_UBL_DONE_EDITING_MESH          = _UxGT("Modif.Mesh fatta");
 | 
			
		||||
  LSTR MSG_UBL_BUILD_CUSTOM_MESH          = _UxGT("Crea Mesh personal.");
 | 
			
		||||
  LSTR MSG_UBL_BUILD_MESH_MENU            = _UxGT("Crea Mesh");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_UBL_BUILD_MESH_M             = _UxGT("Crea Mesh ($)");
 | 
			
		||||
    LSTR MSG_UBL_VALIDATE_MESH_M          = _UxGT("Valida Mesh ($)");
 | 
			
		||||
  #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -62,7 +62,7 @@ namespace Language_jp_kana {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("キジュンオフセットセッテイ");         // "Set home offsets"
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("オフセットガテキヨウサレマシタ");       // "Offsets applied"
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("キジュンセット");                 // "Set origin"
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = PREHEAT_1_LABEL _UxGT(" ヨネツ");       // "Preheat " PREHEAT_1_LABEL
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = PREHEAT_1_LABEL _UxGT(" ヨネツ ~");       // "Preheat " PREHEAT_1_LABEL
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = PREHEAT_1_LABEL _UxGT(" ヨネツノズル");  // " Nozzle"
 | 
			
		||||
 
 | 
			
		||||
@@ -54,7 +54,7 @@ namespace Language_ko_KR {
 | 
			
		||||
  LSTR MSG_LEVEL_BED_WAITING              = _UxGT("누르면 시작합니다");
 | 
			
		||||
  LSTR MSG_LEVEL_BED_NEXT_POINT           = _UxGT("다음 Point");
 | 
			
		||||
  LSTR MSG_LEVEL_BED_DONE                 = _UxGT("레벨링 완료!");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("예열하기 - ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("예열하기 - ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("예열하기 - ") PREHEAT_1_LABEL _UxGT(" 노즐");
 | 
			
		||||
 
 | 
			
		||||
@@ -54,7 +54,7 @@ namespace Language_nl {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("Zet home offsets");
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("H offset toegep.");
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Nulpunt instellen");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = PREHEAT_1_LABEL _UxGT(" voorverwarmen");
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = PREHEAT_1_LABEL _UxGT(" voorverw. ~");
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = PREHEAT_1_LABEL _UxGT(" voorverw. Einde");
 | 
			
		||||
 
 | 
			
		||||
@@ -83,7 +83,7 @@ namespace Language_pl {
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Ustaw punkt zero");
 | 
			
		||||
  LSTR MSG_SELECT_ORIGIN                  = _UxGT("Wybierz punkt zero");
 | 
			
		||||
  LSTR MSG_LAST_VALUE_SP                  = _UxGT("Poprzednia wartość ");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Rozgrzej ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Rozgrzej ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Rozgrzej ") PREHEAT_1_LABEL _UxGT(" Dysza");
 | 
			
		||||
 
 | 
			
		||||
@@ -53,7 +53,7 @@ namespace Language_pt {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("Definir desvio");
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("Offsets aplicados");
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Definir origem");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL _UxGT(" Bico");
 | 
			
		||||
 
 | 
			
		||||
@@ -68,7 +68,7 @@ namespace Language_pt_br {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("Compensar origem");
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("Alteração aplicada");
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Ajustar Origem");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Extrusora ") PREHEAT_1_LABEL;
 | 
			
		||||
@@ -133,7 +133,7 @@ namespace Language_pt_br {
 | 
			
		||||
  LSTR MSG_UBL_DONE_EDITING_MESH          = _UxGT("Fim da Edição");
 | 
			
		||||
  LSTR MSG_UBL_BUILD_CUSTOM_MESH          = _UxGT("Montar Malha Custom");
 | 
			
		||||
  LSTR MSG_UBL_BUILD_MESH_MENU            = _UxGT("Montar ");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_UBL_BUILD_MESH_M             = _UxGT("Montar $");
 | 
			
		||||
    LSTR MSG_UBL_VALIDATE_MESH_M          = _UxGT("Checar $");
 | 
			
		||||
  #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -69,7 +69,7 @@ namespace Language_ro {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("Seteaza Offseturile Acasa");
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("Offseturi Aplicate");
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Seteaza Originea");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Preincalzeste ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Preincalzeste ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Preincalzeste ") PREHEAT_1_LABEL _UxGT(" Capatul");
 | 
			
		||||
@@ -143,7 +143,7 @@ namespace Language_ro {
 | 
			
		||||
  LSTR MSG_UBL_DONE_EDITING_MESH          = _UxGT("Done Editing Mesh");
 | 
			
		||||
  LSTR MSG_UBL_BUILD_CUSTOM_MESH          = _UxGT("Build Custom Mesh");
 | 
			
		||||
  LSTR MSG_UBL_BUILD_MESH_MENU            = _UxGT("Build Mesh");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_UBL_BUILD_MESH_M             = _UxGT("Build Mesh ($)");
 | 
			
		||||
    LSTR MSG_UBL_VALIDATE_MESH_M          = _UxGT("Validate Mesh ($)");
 | 
			
		||||
  #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -106,7 +106,7 @@ namespace Language_ru {
 | 
			
		||||
  #else
 | 
			
		||||
    LSTR MSG_LAST_VALUE_SP                  = _UxGT("Послед. знач. ");
 | 
			
		||||
  #endif
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                      = _UxGT("Преднагрев ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                    = _UxGT("Нагрев ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                  = _UxGT("Нагрев ") PREHEAT_1_LABEL _UxGT(" сопло");
 | 
			
		||||
 
 | 
			
		||||
@@ -107,7 +107,7 @@ namespace Language_sk {
 | 
			
		||||
  LSTR MSG_TRAMMING_WIZARD                = _UxGT("Spriev. vyrovn.");
 | 
			
		||||
  LSTR MSG_SELECT_ORIGIN                  = _UxGT("Vyberte začiatok");
 | 
			
		||||
  LSTR MSG_LAST_VALUE_SP                  = _UxGT("Posl. hodnota ");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Zahriať ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Zahriať ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Zahriať ") PREHEAT_1_LABEL _UxGT(" hotend");
 | 
			
		||||
 
 | 
			
		||||
@@ -78,7 +78,7 @@ namespace Language_sv {
 | 
			
		||||
  LSTR MSG_SELECT_ORIGIN                  = _UxGT("Välj Origo");
 | 
			
		||||
  LSTR MSG_LAST_VALUE_SP                  = _UxGT("Senaste värde ");
 | 
			
		||||
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Förvärmning ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Förvärmning ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Förvärmning ") PREHEAT_1_LABEL _UxGT(" Stoppa");
 | 
			
		||||
 
 | 
			
		||||
@@ -73,7 +73,7 @@ namespace Language_tr {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("Ofset Ayarla");
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("Ofset Tamam");
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Sıfır Belirle");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Ön Isınma ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Ön Isınma ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Nozul");
 | 
			
		||||
@@ -146,7 +146,7 @@ namespace Language_tr {
 | 
			
		||||
  LSTR MSG_UBL_DONE_EDITING_MESH          = _UxGT("Mesh Düzenleme Tamam");
 | 
			
		||||
  LSTR MSG_UBL_BUILD_CUSTOM_MESH          = _UxGT("Özel Mesh Oluştur");
 | 
			
		||||
  LSTR MSG_UBL_BUILD_MESH_MENU            = _UxGT("Mesh Oluştur");
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_UBL_BUILD_MESH_M             = _UxGT("Mesh Oluştur ($)");
 | 
			
		||||
    LSTR MSG_UBL_VALIDATE_MESH_M          = _UxGT("Doğrulama Mesh ($)");
 | 
			
		||||
  #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -108,7 +108,7 @@ namespace Language_uk {
 | 
			
		||||
  #else
 | 
			
		||||
    LSTR MSG_LAST_VALUE_SP                  = _UxGT("Останнє знач. ");
 | 
			
		||||
  #endif
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                      = _UxGT("Нагрів ") PREHEAT_1_LABEL;
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                    = _UxGT("Нагрів ") PREHEAT_1_LABEL " ~";
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                  = _UxGT("Нагрів ") PREHEAT_1_LABEL _UxGT(" сопло");
 | 
			
		||||
 
 | 
			
		||||
@@ -64,7 +64,7 @@ namespace Language_vi {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("Đặt bù đắp nhà");                       // Set home offsets
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("Bù đắp được áp dụng");                  // Offsets applied
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("Đặt nguồn gốc");                        // Set origin
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" trước");      // Preheat
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" trước ~");    // Preheat
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" Đầu");
 | 
			
		||||
@@ -126,7 +126,7 @@ namespace Language_vi {
 | 
			
		||||
  LSTR MSG_UBL_DONE_EDITING_MESH          = _UxGT("Chỉnh sửa xong lưới");                  // Done Editing Mesh
 | 
			
		||||
  LSTR MSG_UBL_BUILD_CUSTOM_MESH          = _UxGT("Xây dựng lưới tự chọn");                // Build Custom Mesh
 | 
			
		||||
  LSTR MSG_UBL_BUILD_MESH_MENU            = _UxGT("Xây dựng lưới");                        // Build Mesh
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_UBL_BUILD_MESH_M             = _UxGT("Xây dựng lưới ($)");
 | 
			
		||||
    LSTR MSG_UBL_VALIDATE_MESH_M          = _UxGT("Thẩm tra lưới ($)");
 | 
			
		||||
  #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -68,7 +68,7 @@ namespace Language_zh_CN {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("设置原点偏移");     // "Set home offsets"
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("偏移已启用");     // "Offsets applied"
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("设置原点");     // "Set origin"
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("预热 ") PREHEAT_1_LABEL;     // "Preheat PREHEAT_2_LABEL"
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("预热 ") PREHEAT_1_LABEL " ~";     // "Preheat PREHEAT_2_LABEL"
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 喷嘴");     //MSG_PREHEAT_1 " "
 | 
			
		||||
@@ -142,7 +142,7 @@ namespace Language_zh_CN {
 | 
			
		||||
  LSTR MSG_UBL_DONE_EDITING_MESH          = _UxGT("完成编辑网格");     // "Done Editing Mesh"
 | 
			
		||||
  LSTR MSG_UBL_BUILD_CUSTOM_MESH          = _UxGT("创设客户网格");     // "Build Custom Mesh"
 | 
			
		||||
  LSTR MSG_UBL_BUILD_MESH_MENU            = _UxGT("创设网格");     // "Build Mesh"
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_UBL_BUILD_MESH_M             = _UxGT("创设 $ 网格");     // "Build PREHEAT_1_LABEL Mesh"
 | 
			
		||||
    LSTR MSG_UBL_VALIDATE_MESH_M          = _UxGT("批准 $ 网格");     // "Validate PREHEAT_1_LABEL Mesh"
 | 
			
		||||
  #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -66,7 +66,7 @@ namespace Language_zh_TW {
 | 
			
		||||
  LSTR MSG_SET_HOME_OFFSETS               = _UxGT("設置原點偏移");     // "Set home offsets"
 | 
			
		||||
  LSTR MSG_HOME_OFFSETS_APPLIED           = _UxGT("偏移已啟用");     // "Offsets applied"
 | 
			
		||||
  LSTR MSG_SET_ORIGIN                     = _UxGT("設置原點");     // "Set origin"
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_PREHEAT_1                    = _UxGT("預熱 ") PREHEAT_1_LABEL;     // "Preheat PREHEAT_1_LABEL"
 | 
			
		||||
    LSTR MSG_PREHEAT_1_H                  = _UxGT("預熱 ") PREHEAT_1_LABEL " ~";     // "Preheat PREHEAT_1_LABEL"
 | 
			
		||||
    LSTR MSG_PREHEAT_1_END                = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 噴嘴");     //MSG_PREHEAT_1 " "
 | 
			
		||||
@@ -139,7 +139,7 @@ namespace Language_zh_TW {
 | 
			
		||||
  LSTR MSG_UBL_DONE_EDITING_MESH          = _UxGT("完成編輯網格");     // "Done Editing Mesh"
 | 
			
		||||
  LSTR MSG_UBL_BUILD_CUSTOM_MESH          = _UxGT("創設客戶網格");     // "Build Custom Mesh"
 | 
			
		||||
  LSTR MSG_UBL_BUILD_MESH_MENU            = _UxGT("創設網格");     // "Build Mesh"
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LSTR MSG_UBL_BUILD_MESH_M             = _UxGT("創設 $ 網格");     // "Build PREHEAT_1_LABEL Mesh"
 | 
			
		||||
    LSTR MSG_UBL_VALIDATE_MESH_M          = _UxGT("批准 $ 網格");     // "Validate PREHEAT_1_LABEL Mesh"
 | 
			
		||||
  #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -134,7 +134,7 @@ constexpr uint8_t epps = ENCODER_PULSES_PER_STEP;
 | 
			
		||||
  }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if PREHEAT_COUNT
 | 
			
		||||
#if HAS_PREHEAT
 | 
			
		||||
  preheat_t MarlinUI::material_preset[PREHEAT_COUNT];  // Initialized by settings.load()
 | 
			
		||||
  PGM_P MarlinUI::get_preheat_label(const uint8_t m) {
 | 
			
		||||
    #define _PDEF(N) static PGMSTR(preheat_##N##_label, PREHEAT_##N##_LABEL);
 | 
			
		||||
 
 | 
			
		||||
@@ -116,7 +116,7 @@
 | 
			
		||||
  };
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if PREHEAT_COUNT
 | 
			
		||||
#if HAS_PREHEAT
 | 
			
		||||
  typedef struct {
 | 
			
		||||
    #if HAS_HOTEND
 | 
			
		||||
      celsius_t hotend_temp;
 | 
			
		||||
@@ -497,7 +497,7 @@ public:
 | 
			
		||||
    static const char * scrolled_filename(CardReader &theCard, const uint8_t maxlen, uint8_t hash, const bool doScroll);
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    static preheat_t material_preset[PREHEAT_COUNT];
 | 
			
		||||
    static PGM_P get_preheat_label(const uint8_t m);
 | 
			
		||||
  #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -310,7 +310,7 @@ void menu_advanced_settings();
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if PREHEAT_COUNT && DISABLED(SLIM_LCD_MENUS)
 | 
			
		||||
#if HAS_PREHEAT && DISABLED(SLIM_LCD_MENUS)
 | 
			
		||||
 | 
			
		||||
  void _menu_configuration_preheat_settings() {
 | 
			
		||||
    #define _MINTEMP_ITEM(N) HEATER_##N##_MINTEMP,
 | 
			
		||||
@@ -547,7 +547,7 @@ void menu_configuration() {
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  // Preheat configurations
 | 
			
		||||
  #if PREHEAT_COUNT && DISABLED(SLIM_LCD_MENUS)
 | 
			
		||||
  #if HAS_PREHEAT && DISABLED(SLIM_LCD_MENUS)
 | 
			
		||||
    LOOP_L_N(m, PREHEAT_COUNT)
 | 
			
		||||
      SUBMENU_N_S(m, ui.get_preheat_label(m), MSG_PREHEAT_M_SETTINGS, _menu_configuration_preheat_settings);
 | 
			
		||||
  #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -90,7 +90,7 @@ void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) {
 | 
			
		||||
  START_MENU();
 | 
			
		||||
  if (LCD_HEIGHT >= 4) STATIC_ITEM_P(change_filament_header(mode), SS_DEFAULT|SS_INVERT);
 | 
			
		||||
  BACK_ITEM(MSG_BACK);
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    LOOP_L_N(m, PREHEAT_COUNT)
 | 
			
		||||
      ACTION_ITEM_N_S(m, ui.get_preheat_label(m), MSG_PREHEAT_M, _change_filament_with_preset);
 | 
			
		||||
  #endif
 | 
			
		||||
 
 | 
			
		||||
@@ -69,7 +69,7 @@ void Temperature::lcd_preheat(const uint8_t e, const int8_t indh, const int8_t i
 | 
			
		||||
  ui.return_to_status();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if PREHEAT_COUNT
 | 
			
		||||
#if HAS_PREHEAT
 | 
			
		||||
 | 
			
		||||
  #if HAS_TEMP_HOTEND
 | 
			
		||||
    inline void _preheat_end(const uint8_t m, const uint8_t e) { thermalManager.lcd_preheat(e, m, -1); }
 | 
			
		||||
@@ -138,7 +138,7 @@ void Temperature::lcd_preheat(const uint8_t e, const int8_t indh, const int8_t i
 | 
			
		||||
 | 
			
		||||
  #endif // HAS_MULTI_HOTEND || HAS_HEATED_BED
 | 
			
		||||
 | 
			
		||||
#endif // PREHEAT_COUNT
 | 
			
		||||
#endif // HAS_PREHEAT
 | 
			
		||||
 | 
			
		||||
#if HAS_TEMP_HOTEND || HAS_HEATED_BED
 | 
			
		||||
 | 
			
		||||
@@ -263,7 +263,7 @@ void menu_temperature() {
 | 
			
		||||
 | 
			
		||||
  #endif // HAS_FAN
 | 
			
		||||
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    //
 | 
			
		||||
    // Preheat for all Materials
 | 
			
		||||
    //
 | 
			
		||||
 
 | 
			
		||||
@@ -208,7 +208,7 @@ void _lcd_ubl_edit_mesh() {
 | 
			
		||||
  void _lcd_ubl_validate_mesh() {
 | 
			
		||||
    START_MENU();
 | 
			
		||||
    BACK_ITEM(MSG_UBL_TOOLS);
 | 
			
		||||
    #if PREHEAT_COUNT
 | 
			
		||||
    #if HAS_PREHEAT
 | 
			
		||||
      #if HAS_HEATED_BED
 | 
			
		||||
        #define VALIDATE_MESH_GCODE_ITEM(M) \
 | 
			
		||||
          GCODES_ITEM_N_S(M, ui.get_preheat_label(M), MSG_UBL_VALIDATE_MESH_M, PSTR("G28\nG26CPI" STRINGIFY(M)))
 | 
			
		||||
@@ -230,7 +230,7 @@ void _lcd_ubl_edit_mesh() {
 | 
			
		||||
          #endif
 | 
			
		||||
        #endif
 | 
			
		||||
      #endif
 | 
			
		||||
    #endif // PREHEAT_COUNT
 | 
			
		||||
    #endif // HAS_PREHEAT
 | 
			
		||||
    ACTION_ITEM(MSG_UBL_VALIDATE_CUSTOM_MESH, _lcd_ubl_validate_custom_mesh);
 | 
			
		||||
    ACTION_ITEM(MSG_INFO_SCREEN, ui.return_to_status);
 | 
			
		||||
    END_MENU();
 | 
			
		||||
@@ -324,7 +324,7 @@ void _lcd_ubl_invalidate() {
 | 
			
		||||
void _lcd_ubl_build_mesh() {
 | 
			
		||||
  START_MENU();
 | 
			
		||||
  BACK_ITEM(MSG_UBL_TOOLS);
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    #if HAS_HEATED_BED
 | 
			
		||||
      #define PREHEAT_BED_GCODE(M) "M190I" STRINGIFY(M) "\n"
 | 
			
		||||
    #else
 | 
			
		||||
@@ -352,7 +352,7 @@ void _lcd_ubl_build_mesh() {
 | 
			
		||||
        #endif
 | 
			
		||||
      #endif
 | 
			
		||||
    #endif
 | 
			
		||||
  #endif // PREHEAT_COUNT
 | 
			
		||||
  #endif // HAS_PREHEAT
 | 
			
		||||
 | 
			
		||||
  SUBMENU(MSG_UBL_BUILD_CUSTOM_MESH, _lcd_ubl_custom_mesh);
 | 
			
		||||
  GCODES_ITEM(MSG_UBL_BUILD_COLD_MESH, PSTR("G29NP1"));
 | 
			
		||||
 
 | 
			
		||||
@@ -317,7 +317,7 @@ typedef struct SettingsDataStruct {
 | 
			
		||||
  //
 | 
			
		||||
  // Material Presets
 | 
			
		||||
  //
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    preheat_t ui_material_preset[PREHEAT_COUNT];        // M145 S0 H B F
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
@@ -918,7 +918,7 @@ void MarlinSettings::postprocess() {
 | 
			
		||||
    //
 | 
			
		||||
    // LCD Preheat settings
 | 
			
		||||
    //
 | 
			
		||||
    #if PREHEAT_COUNT
 | 
			
		||||
    #if HAS_PREHEAT
 | 
			
		||||
      _FIELD_TEST(ui_material_preset);
 | 
			
		||||
      EEPROM_WRITE(ui.material_preset);
 | 
			
		||||
    #endif
 | 
			
		||||
@@ -1786,7 +1786,7 @@ void MarlinSettings::postprocess() {
 | 
			
		||||
      //
 | 
			
		||||
      // LCD Preheat settings
 | 
			
		||||
      //
 | 
			
		||||
      #if PREHEAT_COUNT
 | 
			
		||||
      #if HAS_PREHEAT
 | 
			
		||||
        _FIELD_TEST(ui_material_preset);
 | 
			
		||||
        EEPROM_READ(ui.material_preset);
 | 
			
		||||
      #endif
 | 
			
		||||
@@ -2796,7 +2796,7 @@ void MarlinSettings::reset() {
 | 
			
		||||
  //
 | 
			
		||||
  // Preheat parameters
 | 
			
		||||
  //
 | 
			
		||||
  #if PREHEAT_COUNT
 | 
			
		||||
  #if HAS_PREHEAT
 | 
			
		||||
    #define _PITEM(N,T) PREHEAT_##N##_##T,
 | 
			
		||||
    #if HAS_HOTEND
 | 
			
		||||
      constexpr uint16_t hpre[] = { REPEAT2_S(1, INCREMENT(PREHEAT_COUNT), _PITEM, TEMP_HOTEND) };
 | 
			
		||||
@@ -3181,7 +3181,7 @@ void MarlinSettings::reset() {
 | 
			
		||||
    //
 | 
			
		||||
    // LCD Preheat Settings
 | 
			
		||||
    //
 | 
			
		||||
    #if PREHEAT_COUNT
 | 
			
		||||
    #if HAS_PREHEAT
 | 
			
		||||
      gcode.M145_report(forReplay);
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user