UBL Mesh Wizard (#21556, #21791)

Co-authored-by: Scott Lahteine <github@thinkyhead.com>
This commit is contained in:
Vert
2021-05-02 17:38:55 -04:00
committed by Scott Lahteine
parent 5cf0975913
commit 0b3420a012
7 changed files with 106 additions and 2 deletions

View File

@ -166,6 +166,7 @@ namespace Language_en {
PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("Unified Bed Leveling");
PROGMEM Language_Str MSG_LCD_TILTING_MESH = _UxGT("Tilting Point");
PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("Manually Build Mesh");
PROGMEM Language_Str MSG_UBL_MESH_WIZARD = _UxGT("UBL Mesh Wizard");
PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("Place Shim & Measure");
PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("Measure");
PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("Remove & Measure Bed");

View File

@ -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);