MarlinUI support for up to 5 Material Presets (#18488)
- Add `I` preset parameter to `G26`, `M106`, `M140`, and `M190`. - Extend menu items to permit a string interpolation. - Keep material names in a list and interpolate in menu items. - Extend material presets to support up to 5 predefined materials. Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
@@ -196,21 +196,36 @@ void _lcd_ubl_edit_mesh() {
|
||||
* UBL Validate Mesh submenu
|
||||
*
|
||||
* << UBL Tools
|
||||
* Mesh Validation with Material 1
|
||||
* Mesh Validation with Material 2
|
||||
* Mesh Validation with Material 1 up to 5
|
||||
* 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
|
||||
#if PREHEAT_COUNT
|
||||
#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\nG26 C P I" STRINGIFY(M)))
|
||||
#else
|
||||
#define VALIDATE_MESH_GCODE_ITEM(M) \
|
||||
GCODES_ITEM_N_S(M, ui.get_preheat_label(M), MSG_UBL_VALIDATE_MESH_M, PSTR("G28\nG26 C P B0 I" STRINGIFY(M)))
|
||||
#endif
|
||||
|
||||
VALIDATE_MESH_GCODE_ITEM(0);
|
||||
#if PREHEAT_COUNT > 1
|
||||
VALIDATE_MESH_GCODE_ITEM(1);
|
||||
#if PREHEAT_COUNT > 2
|
||||
VALIDATE_MESH_GCODE_ITEM(2);
|
||||
#if PREHEAT_COUNT > 3
|
||||
VALIDATE_MESH_GCODE_ITEM(3);
|
||||
#if PREHEAT_COUNT > 4
|
||||
VALIDATE_MESH_GCODE_ITEM(4);
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif // PREHEAT_COUNT
|
||||
ACTION_ITEM(MSG_UBL_VALIDATE_CUSTOM_MESH, _lcd_ubl_validate_custom_mesh);
|
||||
ACTION_ITEM(MSG_INFO_SCREEN, ui.return_to_status);
|
||||
END_MENU();
|
||||
@@ -292,8 +307,7 @@ void _lcd_ubl_invalidate() {
|
||||
* UBL Build Mesh submenu
|
||||
*
|
||||
* << UBL Tools
|
||||
* Build Mesh with Material 1
|
||||
* Build Mesh with Material 2
|
||||
* Build Mesh with Material 1 up to 5
|
||||
* - Build Custom Mesh >>
|
||||
* Build Cold Mesh
|
||||
* - Fill-in Mesh >>
|
||||
@@ -305,37 +319,36 @@ void _lcd_ubl_invalidate() {
|
||||
void _lcd_ubl_build_mesh() {
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_UBL_TOOLS);
|
||||
#if HAS_HEATED_BED
|
||||
GCODES_ITEM(MSG_UBL_BUILD_MESH_M1, PSTR(
|
||||
"G28\n"
|
||||
"M190 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\n"
|
||||
"M109 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND) "\n"
|
||||
"G29 P1\n"
|
||||
"M104 S0\n"
|
||||
"M140 S0"
|
||||
));
|
||||
GCODES_ITEM(MSG_UBL_BUILD_MESH_M2, PSTR(
|
||||
"G28\n"
|
||||
"M190 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\n"
|
||||
"M109 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND) "\n"
|
||||
"G29 P1\n"
|
||||
"M104 S0\n"
|
||||
"M140 S0"
|
||||
));
|
||||
#else
|
||||
GCODES_ITEM(MSG_UBL_BUILD_MESH_M1, PSTR(
|
||||
"G28\n"
|
||||
"M109 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND) "\n"
|
||||
"G29 P1\n"
|
||||
"M104 S0"
|
||||
));
|
||||
GCODES_ITEM(MSG_UBL_BUILD_MESH_M2, PSTR(
|
||||
"G28\n"
|
||||
"M109 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND) "\n"
|
||||
"G29 P1\n"
|
||||
"M104 S0"
|
||||
));
|
||||
#endif
|
||||
#if PREHEAT_COUNT
|
||||
#if HAS_HEATED_BED
|
||||
#define PREHEAT_BED_GCODE(M) "M190 I" STRINGIFY(M) "\n"
|
||||
#else
|
||||
#define PREHEAT_BED_GCODE(M) ""
|
||||
#endif
|
||||
#define BUILD_MESH_GCODE_ITEM(M) GCODES_ITEM_S(ui.get_preheat_label(M), MSG_UBL_BUILD_MESH_M, \
|
||||
PSTR( \
|
||||
"G28\n" \
|
||||
PREHEAT_BED_GCODE(M) \
|
||||
"M109 I" STRINGIFY(M) "\n" \
|
||||
"G29 P1\n" \
|
||||
"M104 S0\n" \
|
||||
"M140 S0" \
|
||||
) )
|
||||
BUILD_MESH_GCODE_ITEM(0);
|
||||
#if PREHEAT_COUNT > 1
|
||||
BUILD_MESH_GCODE_ITEM(1);
|
||||
#if PREHEAT_COUNT > 2
|
||||
BUILD_MESH_GCODE_ITEM(2);
|
||||
#if PREHEAT_COUNT > 3
|
||||
BUILD_MESH_GCODE_ITEM(3);
|
||||
#if PREHEAT_COUNT > 4
|
||||
BUILD_MESH_GCODE_ITEM(4);
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif // PREHEAT_COUNT
|
||||
|
||||
SUBMENU(MSG_UBL_BUILD_CUSTOM_MESH, _lcd_ubl_custom_mesh);
|
||||
GCODES_ITEM(MSG_UBL_BUILD_COLD_MESH, PSTR("G28\nG29 P1"));
|
||||
SUBMENU(MSG_UBL_FILLIN_MESH, _menu_ubl_fillin);
|
||||
|
||||
Reference in New Issue
Block a user