Fix issues with no hotend / bed / fan (#18395)
This commit is contained in:
@@ -128,7 +128,9 @@ void _lcd_ubl_build_custom_mesh() {
|
||||
void _lcd_ubl_custom_mesh() {
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_UBL_BUILD_MESH_MENU);
|
||||
EDIT_ITEM(int3, MSG_UBL_HOTEND_TEMP_CUSTOM, &custom_hotend_temp, EXTRUDE_MINTEMP, HEATER_0_MAXTEMP - HOTEND_OVERSHOOT);
|
||||
#if HAS_HOTEND
|
||||
EDIT_ITEM(int3, MSG_UBL_HOTEND_TEMP_CUSTOM, &custom_hotend_temp, EXTRUDE_MINTEMP, HEATER_0_MAXTEMP - HOTEND_OVERSHOOT);
|
||||
#endif
|
||||
#if HAS_HEATED_BED
|
||||
EDIT_ITEM(int3, MSG_UBL_BED_TEMP_CUSTOM, &custom_bed_temp, BED_MINTEMP, BED_MAX_TARGET);
|
||||
#endif
|
||||
@@ -182,39 +184,48 @@ void _lcd_ubl_edit_mesh() {
|
||||
END_MENU();
|
||||
}
|
||||
|
||||
/**
|
||||
* UBL Validate Custom Mesh Command
|
||||
*/
|
||||
void _lcd_ubl_validate_custom_mesh() {
|
||||
char ubl_lcd_gcode[24];
|
||||
const int16_t temp = TERN(HAS_HEATED_BED, custom_bed_temp, 0);
|
||||
sprintf_P(ubl_lcd_gcode, PSTR("G28\nG26 C B%" PRIi16 " H%" PRIi16 " P"), temp, custom_hotend_temp);
|
||||
queue.inject(ubl_lcd_gcode);
|
||||
}
|
||||
#if ENABLED(G26_MESH_VALIDATION)
|
||||
|
||||
/**
|
||||
* UBL Validate Mesh submenu
|
||||
*
|
||||
* << UBL Tools
|
||||
* Mesh Validation with Material 1
|
||||
* Mesh Validation with Material 2
|
||||
* Validate Custom Mesh
|
||||
* << Info Screen
|
||||
*/
|
||||
void _lcd_ubl_validate_mesh() {
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_UBL_TOOLS);
|
||||
#if HAS_HEATED_BED
|
||||
GCODES_ITEM(MSG_UBL_VALIDATE_MESH_M1, PSTR("G28\nG26 C B" STRINGIFY(PREHEAT_1_TEMP_BED) " H" STRINGIFY(PREHEAT_1_TEMP_HOTEND) " P"));
|
||||
GCODES_ITEM(MSG_UBL_VALIDATE_MESH_M2, PSTR("G28\nG26 C B" STRINGIFY(PREHEAT_2_TEMP_BED) " H" STRINGIFY(PREHEAT_2_TEMP_HOTEND) " P"));
|
||||
#else
|
||||
GCODES_ITEM(MSG_UBL_VALIDATE_MESH_M1, PSTR("G28\nG26 C B0 H" STRINGIFY(PREHEAT_1_TEMP_HOTEND) " P"));
|
||||
GCODES_ITEM(MSG_UBL_VALIDATE_MESH_M2, PSTR("G28\nG26 C B0 H" STRINGIFY(PREHEAT_2_TEMP_HOTEND) " P"));
|
||||
#endif
|
||||
ACTION_ITEM(MSG_UBL_VALIDATE_CUSTOM_MESH, _lcd_ubl_validate_custom_mesh);
|
||||
ACTION_ITEM(MSG_INFO_SCREEN, ui.return_to_status);
|
||||
END_MENU();
|
||||
}
|
||||
/**
|
||||
* UBL Validate Custom Mesh Command
|
||||
*/
|
||||
void _lcd_ubl_validate_custom_mesh() {
|
||||
char ubl_lcd_gcode[24];
|
||||
const int16_t temp = TERN(HAS_HEATED_BED, custom_bed_temp, 0);
|
||||
sprintf_P(ubl_lcd_gcode, PSTR("G28\nG26 C P H%" PRIi16 TERN_(HAS_HEATED_BED, " B%" PRIi16))
|
||||
, custom_hotend_temp
|
||||
#if HAS_HEATED_BED
|
||||
, temp
|
||||
#endif
|
||||
);
|
||||
queue.inject(ubl_lcd_gcode);
|
||||
}
|
||||
|
||||
/**
|
||||
* UBL Validate Mesh submenu
|
||||
*
|
||||
* << UBL Tools
|
||||
* Mesh Validation with Material 1
|
||||
* Mesh Validation with Material 2
|
||||
* Validate Custom Mesh
|
||||
* << Info Screen
|
||||
*/
|
||||
void _lcd_ubl_validate_mesh() {
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_UBL_TOOLS);
|
||||
#if HAS_HEATED_BED
|
||||
GCODES_ITEM(MSG_UBL_VALIDATE_MESH_M1, PSTR("G28\nG26 C B" STRINGIFY(PREHEAT_1_TEMP_BED) " H" STRINGIFY(PREHEAT_1_TEMP_HOTEND) " P"));
|
||||
GCODES_ITEM(MSG_UBL_VALIDATE_MESH_M2, PSTR("G28\nG26 C B" STRINGIFY(PREHEAT_2_TEMP_BED) " H" STRINGIFY(PREHEAT_2_TEMP_HOTEND) " P"));
|
||||
#else
|
||||
GCODES_ITEM(MSG_UBL_VALIDATE_MESH_M1, PSTR("G28\nG26 C B0 H" STRINGIFY(PREHEAT_1_TEMP_HOTEND) " P"));
|
||||
GCODES_ITEM(MSG_UBL_VALIDATE_MESH_M2, PSTR("G28\nG26 C B0 H" STRINGIFY(PREHEAT_2_TEMP_HOTEND) " P"));
|
||||
#endif
|
||||
ACTION_ITEM(MSG_UBL_VALIDATE_CUSTOM_MESH, _lcd_ubl_validate_custom_mesh);
|
||||
ACTION_ITEM(MSG_INFO_SCREEN, ui.return_to_status);
|
||||
END_MENU();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* UBL Grid Leveling submenu
|
||||
@@ -530,36 +541,42 @@ void _menu_ubl_tools() {
|
||||
BACK_ITEM(MSG_UBL_LEVEL_BED);
|
||||
SUBMENU(MSG_UBL_BUILD_MESH_MENU, _lcd_ubl_build_mesh);
|
||||
GCODES_ITEM(MSG_UBL_MANUAL_MESH, PSTR("G29 I999\nG29 P2 B T0"));
|
||||
SUBMENU(MSG_UBL_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh);
|
||||
#if ENABLED(G26_MESH_VALIDATION)
|
||||
SUBMENU(MSG_UBL_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh);
|
||||
#endif
|
||||
SUBMENU(MSG_EDIT_MESH, _lcd_ubl_edit_mesh);
|
||||
SUBMENU(MSG_UBL_MESH_LEVELING, _lcd_ubl_mesh_leveling);
|
||||
END_MENU();
|
||||
}
|
||||
|
||||
/**
|
||||
* UBL Step-By-Step submenu
|
||||
*
|
||||
* << Unified Bed Leveling
|
||||
* 1 Build Cold Mesh
|
||||
* 2 Smart Fill-in
|
||||
* - 3 Validate Mesh >>
|
||||
* 4 Fine Tune All
|
||||
* - 5 Validate Mesh >>
|
||||
* 6 Fine Tune All
|
||||
* 7 Save Bed Mesh
|
||||
*/
|
||||
void _lcd_ubl_step_by_step() {
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_UBL_LEVEL_BED);
|
||||
GCODES_ITEM(MSG_UBL_1_BUILD_COLD_MESH, PSTR("G28\nG29 P1"));
|
||||
GCODES_ITEM(MSG_UBL_2_SMART_FILLIN, PSTR("G29 P3 T0"));
|
||||
SUBMENU(MSG_UBL_3_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh);
|
||||
GCODES_ITEM(MSG_UBL_4_FINE_TUNE_ALL, PSTR("G29 P4 R999 T"));
|
||||
SUBMENU(MSG_UBL_5_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh);
|
||||
GCODES_ITEM(MSG_UBL_6_FINE_TUNE_ALL, PSTR("G29 P4 R999 T"));
|
||||
ACTION_ITEM(MSG_UBL_7_SAVE_MESH, _lcd_ubl_save_mesh_cmd);
|
||||
END_MENU();
|
||||
}
|
||||
#if ENABLED(G26_MESH_VALIDATION)
|
||||
|
||||
/**
|
||||
* UBL Step-By-Step submenu
|
||||
*
|
||||
* << Unified Bed Leveling
|
||||
* 1 Build Cold Mesh
|
||||
* 2 Smart Fill-in
|
||||
* - 3 Validate Mesh >>
|
||||
* 4 Fine Tune All
|
||||
* - 5 Validate Mesh >>
|
||||
* 6 Fine Tune All
|
||||
* 7 Save Bed Mesh
|
||||
*/
|
||||
void _lcd_ubl_step_by_step() {
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_UBL_LEVEL_BED);
|
||||
GCODES_ITEM(MSG_UBL_1_BUILD_COLD_MESH, PSTR("G28\nG29 P1"));
|
||||
GCODES_ITEM(MSG_UBL_2_SMART_FILLIN, PSTR("G29 P3 T0"));
|
||||
SUBMENU(MSG_UBL_3_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh);
|
||||
GCODES_ITEM(MSG_UBL_4_FINE_TUNE_ALL, PSTR("G29 P4 R999 T"));
|
||||
SUBMENU(MSG_UBL_5_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh);
|
||||
GCODES_ITEM(MSG_UBL_6_FINE_TUNE_ALL, PSTR("G29 P4 R999 T"));
|
||||
ACTION_ITEM(MSG_UBL_7_SAVE_MESH, _lcd_ubl_save_mesh_cmd);
|
||||
END_MENU();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* UBL System submenu
|
||||
@@ -574,7 +591,6 @@ void _lcd_ubl_step_by_step() {
|
||||
* - UBL Tools >>
|
||||
* - Output UBL Info >>
|
||||
*/
|
||||
|
||||
void _lcd_ubl_level_bed() {
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_MOTION);
|
||||
@@ -582,7 +598,9 @@ void _lcd_ubl_level_bed() {
|
||||
GCODES_ITEM(MSG_UBL_DEACTIVATE_MESH, PSTR("G29 D"));
|
||||
else
|
||||
GCODES_ITEM(MSG_UBL_ACTIVATE_MESH, PSTR("G29 A"));
|
||||
SUBMENU(MSG_UBL_STEP_BY_STEP_MENU, _lcd_ubl_step_by_step);
|
||||
#if ENABLED(G26_MESH_VALIDATION)
|
||||
SUBMENU(MSG_UBL_STEP_BY_STEP_MENU, _lcd_ubl_step_by_step);
|
||||
#endif
|
||||
ACTION_ITEM(MSG_UBL_MESH_EDIT, _lcd_ubl_output_map_lcd_cmd);
|
||||
SUBMENU(MSG_UBL_STORAGE_MESH_MENU, _lcd_ubl_storage_mesh);
|
||||
SUBMENU(MSG_UBL_OUTPUT_MAP, _lcd_ubl_output_map);
|
||||
|
||||
Reference in New Issue
Block a user