3737#include " ../../feature/bedlevel/bedlevel.h"
3838
3939static int16_t ubl_storage_slot = 0 ,
40- custom_hotend_temp = 190 ,
40+ custom_hotend_temp = 150 ,
4141 side_points = 3 ,
4242 ubl_fillin_amount = 5 ,
4343 ubl_height_amount = 1 ;
@@ -603,6 +603,50 @@ void _menu_ubl_tools() {
603603
604604#endif
605605
606+ #if ENABLED(UBL_MESH_WIZARD)
607+
608+ /* *
609+ * UBL Mesh Wizard - One-click mesh creation with or without a probe
610+ */
611+ void _lcd_ubl_mesh_wizard () {
612+ char ubl_lcd_gcode[30 ];
613+ #if HAS_HEATED_BED && HAS_HOTEND
614+ sprintf_P (ubl_lcd_gcode, PSTR (" M1004B%iH%iS%i" ), custom_bed_temp, custom_hotend_temp, ubl_storage_slot);
615+ #elif HAS_HOTEND
616+ sprintf_P (ubl_lcd_gcode, PSTR (" M1004H%iS%i" ), custom_hotend_temp, ubl_storage_slot);
617+ #else
618+ sprintf_P (ubl_lcd_gcode, PSTR (" M1004S%i" ), ubl_storage_slot);
619+ #endif
620+ queue.inject (ubl_lcd_gcode);
621+ }
622+
623+ void _menu_ubl_mesh_wizard () {
624+ const int16_t total_slots = settings.calc_num_meshes ();
625+ START_MENU ();
626+ BACK_ITEM (MSG_UBL_LEVEL_BED);
627+
628+ #if HAS_HOTEND
629+ EDIT_ITEM (int3, MSG_UBL_HOTEND_TEMP_CUSTOM, &custom_hotend_temp, EXTRUDE_MINTEMP, thermalManager.hotend_max_target (0 ));
630+ #endif
631+
632+ #if HAS_HEATED_BED
633+ EDIT_ITEM (int3, MSG_UBL_BED_TEMP_CUSTOM, &custom_bed_temp, BED_MINTEMP, BED_MAX_TARGET);
634+ #endif
635+
636+ EDIT_ITEM (int3, MSG_UBL_STORAGE_SLOT, &ubl_storage_slot, 0 , total_slots);
637+
638+ ACTION_ITEM (MSG_UBL_MESH_WIZARD, _lcd_ubl_mesh_wizard);
639+
640+ #if ENABLED(G26_MESH_VALIDATION)
641+ SUBMENU (MSG_UBL_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh);
642+ #endif
643+
644+ ACTION_ITEM (MSG_INFO_SCREEN, ui.return_to_status );
645+ END_MENU ();
646+ }
647+
648+ #endif
649+
606650/* *
607651 * UBL System submenu
608652 *
@@ -626,6 +670,9 @@ void _lcd_ubl_level_bed() {
626670 #if ENABLED(G26_MESH_VALIDATION)
627671 SUBMENU (MSG_UBL_STEP_BY_STEP_MENU, _lcd_ubl_step_by_step);
628672 #endif
673+ #if ENABLED(UBL_MESH_WIZARD)
674+ SUBMENU (MSG_UBL_MESH_WIZARD, _menu_ubl_mesh_wizard);
675+ #endif
629676 ACTION_ITEM (MSG_UBL_MESH_EDIT, _ubl_goto_map_screen);
630677 SUBMENU (MSG_UBL_STORAGE_MESH_MENU, _lcd_ubl_storage_mesh);
631678 SUBMENU (MSG_UBL_OUTPUT_MAP, _lcd_ubl_output_map);
0 commit comments