|
|
@ -37,7 +37,7 @@ |
|
|
|
#include "../../feature/bedlevel/bedlevel.h" |
|
|
|
|
|
|
|
static int16_t ubl_storage_slot = 0, |
|
|
|
custom_hotend_temp = 190, |
|
|
|
custom_hotend_temp = 150, |
|
|
|
side_points = 3, |
|
|
|
ubl_fillin_amount = 5, |
|
|
|
ubl_height_amount = 1; |
|
|
@ -603,6 +603,51 @@ void _menu_ubl_tools() { |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if ENABLED(UBL_MESH_WIZARD) |
|
|
|
|
|
|
|
/**
|
|
|
|
* UBL Mesh Wizard - One-click mesh creation with or without a probe |
|
|
|
*/ |
|
|
|
void _lcd_ubl_mesh_wizard() { |
|
|
|
char ubl_lcd_gcode[30]; |
|
|
|
#if HAS_HEATED_BED && HAS_HOTEND |
|
|
|
sprintf_P(ubl_lcd_gcode, PSTR("M1004B%iH%iS%i"), custom_bed_temp, custom_hotend_temp, ubl_storage_slot); |
|
|
|
#elif HAS_HOTEND |
|
|
|
sprintf_P(ubl_lcd_gcode, PSTR("M1004H%iS%i"), custom_hotend_temp, ubl_storage_slot); |
|
|
|
#else |
|
|
|
sprintf_P(ubl_lcd_gcode, PSTR("M1004S%i"), ubl_storage_slot); |
|
|
|
#endif |
|
|
|
queue.inject(ubl_lcd_gcode); |
|
|
|
ui.return_to_status(); |
|
|
|
} |
|
|
|
|
|
|
|
void _menu_ubl_mesh_wizard() { |
|
|
|
const int16_t total_slots = settings.calc_num_meshes(); |
|
|
|
START_MENU(); |
|
|
|
BACK_ITEM(MSG_UBL_LEVEL_BED); |
|
|
|
|
|
|
|
#if HAS_HOTEND |
|
|
|
EDIT_ITEM(int3, MSG_UBL_HOTEND_TEMP_CUSTOM, &custom_hotend_temp, HEATER_0_MINTEMP + 20, thermalManager.hotend_max_target(0)); |
|
|
|
#endif |
|
|
|
|
|
|
|
#if HAS_HEATED_BED |
|
|
|
EDIT_ITEM(int3, MSG_UBL_BED_TEMP_CUSTOM, &custom_bed_temp, BED_MINTEMP + 20, BED_MAX_TARGET); |
|
|
|
#endif |
|
|
|
|
|
|
|
EDIT_ITEM(int3, MSG_UBL_STORAGE_SLOT, &ubl_storage_slot, 0, total_slots); |
|
|
|
|
|
|
|
ACTION_ITEM(MSG_UBL_MESH_WIZARD, _lcd_ubl_mesh_wizard); |
|
|
|
|
|
|
|
#if ENABLED(G26_MESH_VALIDATION) |
|
|
|
SUBMENU(MSG_UBL_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh); |
|
|
|
#endif |
|
|
|
|
|
|
|
ACTION_ITEM(MSG_INFO_SCREEN, ui.return_to_status); |
|
|
|
END_MENU(); |
|
|
|
} |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
/**
|
|
|
|
* UBL System submenu |
|
|
|
* |
|
|
@ -626,6 +671,9 @@ void _lcd_ubl_level_bed() { |
|
|
|
#if ENABLED(G26_MESH_VALIDATION) |
|
|
|
SUBMENU(MSG_UBL_STEP_BY_STEP_MENU, _lcd_ubl_step_by_step); |
|
|
|
#endif |
|
|
|
#if ENABLED(UBL_MESH_WIZARD) |
|
|
|
SUBMENU(MSG_UBL_MESH_WIZARD, _menu_ubl_mesh_wizard); |
|
|
|
#endif |
|
|
|
ACTION_ITEM(MSG_UBL_MESH_EDIT, _ubl_goto_map_screen); |
|
|
|
SUBMENU(MSG_UBL_STORAGE_MESH_MENU, _lcd_ubl_storage_mesh); |
|
|
|
SUBMENU(MSG_UBL_OUTPUT_MAP, _lcd_ubl_output_map); |
|
|
|