From 321bebc9202ab473c6a129685e6a5734e7829fdf Mon Sep 17 00:00:00 2001 From: InsanityAutomation Date: Thu, 2 Jan 2020 11:27:28 -0500 Subject: [PATCH 1/3] ZOffset Precision Based on Limits --- Marlin/src/lcd/menu/menu.cpp | 12 ++++++++++-- Marlin/src/lcd/menu/menu_bed_leveling.cpp | 6 +++++- Marlin/src/lcd/menu/menu_configuration.cpp | 6 +++++- Marlin/src/lcd/menu/menu_tune.cpp | 12 ++++++++++-- 4 files changed, 30 insertions(+), 6 deletions(-) diff --git a/Marlin/src/lcd/menu/menu.cpp b/Marlin/src/lcd/menu/menu.cpp index f4a2e6cbbd5f..b35a12489824 100644 --- a/Marlin/src/lcd/menu/menu.cpp +++ b/Marlin/src/lcd/menu/menu.cpp @@ -429,10 +429,18 @@ void scroll_screen(const uint8_t limit, const bool is_menu) { if (ui.should_draw()) { #if ENABLED(BABYSTEP_HOTEND_Z_OFFSET) if (!do_probe) - MenuEditItemBase::draw_edit_screen(GET_TEXT(MSG_HOTEND_OFFSET_Z), ftostr43sign(hotend_offset[active_extruder].z)); + #if (Z_PROBE_OFFSET_RANGE_MIN < -9 || Z_PROBE_OFFSET_RANGE_MAX > 9) + MenuEditItemBase::draw_edit_screen(GET_TEXT(MSG_HOTEND_OFFSET_Z), ftostr52sign(hotend_offset[active_extruder].z)); + #else + MenuEditItemBase::draw_edit_screen(GET_TEXT(MSG_HOTEND_OFFSET_Z), ftostr54sign(hotend_offset[active_extruder].z)); + #endif else #endif - MenuEditItemBase::draw_edit_screen(GET_TEXT(MSG_ZPROBE_ZOFFSET), ftostr43sign(probe_offset.z)); + #if (Z_PROBE_OFFSET_RANGE_MIN < -9 || Z_PROBE_OFFSET_RANGE_MAX > 9) + MenuEditItemBase::draw_edit_screen(GET_TEXT(MSG_ZPROBE_ZOFFSET), ftostr52sign(probe_offset.z)); + #else + MenuEditItemBase::draw_edit_screen(GET_TEXT(MSG_ZPROBE_ZOFFSET), ftostr54sign(probe_offset.z)); + #endif #if ENABLED(BABYSTEP_ZPROBE_GFX_OVERLAY) if (do_probe) _lcd_zoffset_overlay_gfx(probe_offset.z); diff --git a/Marlin/src/lcd/menu/menu_bed_leveling.cpp b/Marlin/src/lcd/menu/menu_bed_leveling.cpp index f4fbf59a4284..6f29f3006739 100644 --- a/Marlin/src/lcd/menu/menu_bed_leveling.cpp +++ b/Marlin/src/lcd/menu/menu_bed_leveling.cpp @@ -281,7 +281,11 @@ void menu_bed_leveling() { #if ENABLED(BABYSTEP_ZPROBE_OFFSET) SUBMENU(MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset); #elif HAS_BED_PROBE - EDIT_ITEM(float52, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); + #if (Z_PROBE_OFFSET_RANGE_MIN < -9 || Z_PROBE_OFFSET_RANGE_MAX > 9) + EDIT_ITEM(ftostr52sign, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); + #else + EDIT_ITEM(ftostr54sign, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); + #endif #endif #if ENABLED(LEVEL_BED_CORNERS) diff --git a/Marlin/src/lcd/menu/menu_configuration.cpp b/Marlin/src/lcd/menu/menu_configuration.cpp index 5199f90ea01a..2fa254c1375c 100644 --- a/Marlin/src/lcd/menu/menu_configuration.cpp +++ b/Marlin/src/lcd/menu/menu_configuration.cpp @@ -317,7 +317,11 @@ void menu_configuration() { #if ENABLED(BABYSTEP_ZPROBE_OFFSET) SUBMENU(MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset); #elif HAS_BED_PROBE - EDIT_ITEM(float52, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); + #if (Z_PROBE_OFFSET_RANGE_MIN < -9 || Z_PROBE_OFFSET_RANGE_MAX > 9) + EDIT_ITEM(ftostr52sign, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); + #else + EDIT_ITEM(ftostr54sign, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); + #endif #endif const bool busy = printer_busy(); diff --git a/Marlin/src/lcd/menu/menu_tune.cpp b/Marlin/src/lcd/menu/menu_tune.cpp index 4fba6fe719a9..257fa0cae5a1 100644 --- a/Marlin/src/lcd/menu/menu_tune.cpp +++ b/Marlin/src/lcd/menu/menu_tune.cpp @@ -65,7 +65,11 @@ } if (ui.should_draw()) { const float spm = planner.steps_to_mm[axis]; - MenuEditItemBase::draw_edit_screen(msg, ftostr54sign(spm * babystep.accum)); + #if (Z_PROBE_OFFSET_RANGE_MIN < -9 || Z_PROBE_OFFSET_RANGE_MAX > 9) + MenuEditItemBase::draw_edit_screen(msg, ftostr52sign(spm * babystep.accum)); + #else + MenuEditItemBase::draw_edit_screen(msg, ftostr54sign(spm * babystep.accum)); + #endif #if ENABLED(BABYSTEP_DISPLAY_TOTAL) const bool in_view = (true #if HAS_GRAPHICAL_LCD @@ -81,7 +85,11 @@ #endif lcd_put_u8str_P(GET_TEXT(MSG_BABYSTEP_TOTAL)); lcd_put_wchar(':'); - lcd_put_u8str(ftostr54sign(spm * babystep.axis_total[BS_TOTAL_AXIS(axis)])); + #if (Z_PROBE_OFFSET_RANGE_MIN < -9 || Z_PROBE_OFFSET_RANGE_MAX > 9) + lcd_put_u8str(ftostr52sign(spm * babystep.axis_total[BS_TOTAL_AXIS(axis)])); + #else + lcd_put_u8str(ftostr54sign(spm * babystep.axis_total[BS_TOTAL_AXIS(axis)])); + #endif } #endif } From bb965a3d5e6758f05ad2600cbd78503c57d2422d Mon Sep 17 00:00:00 2001 From: InsanityAutomation Date: Thu, 2 Jan 2020 14:30:31 -0500 Subject: [PATCH 2/3] Other macro type... --- Marlin/src/lcd/menu/menu_bed_leveling.cpp | 4 ++-- Marlin/src/lcd/menu/menu_configuration.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Marlin/src/lcd/menu/menu_bed_leveling.cpp b/Marlin/src/lcd/menu/menu_bed_leveling.cpp index 6f29f3006739..cef72b65fb4d 100644 --- a/Marlin/src/lcd/menu/menu_bed_leveling.cpp +++ b/Marlin/src/lcd/menu/menu_bed_leveling.cpp @@ -282,9 +282,9 @@ void menu_bed_leveling() { SUBMENU(MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset); #elif HAS_BED_PROBE #if (Z_PROBE_OFFSET_RANGE_MIN < -9 || Z_PROBE_OFFSET_RANGE_MAX > 9) - EDIT_ITEM(ftostr52sign, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); + EDIT_ITEM(float52, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); #else - EDIT_ITEM(ftostr54sign, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); + EDIT_ITEM(float43, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); #endif #endif diff --git a/Marlin/src/lcd/menu/menu_configuration.cpp b/Marlin/src/lcd/menu/menu_configuration.cpp index 2fa254c1375c..6f8b1d148c1a 100644 --- a/Marlin/src/lcd/menu/menu_configuration.cpp +++ b/Marlin/src/lcd/menu/menu_configuration.cpp @@ -318,9 +318,9 @@ void menu_configuration() { SUBMENU(MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset); #elif HAS_BED_PROBE #if (Z_PROBE_OFFSET_RANGE_MIN < -9 || Z_PROBE_OFFSET_RANGE_MAX > 9) - EDIT_ITEM(ftostr52sign, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); + EDIT_ITEM(float52, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); #else - EDIT_ITEM(ftostr54sign, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); + EDIT_ITEM(float43, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); #endif #endif From 7a7c5094fdf1653e5adbf3d1b7bcc5cdb6cbb873 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 2 Jan 2020 20:25:23 -0600 Subject: [PATCH 3/3] Updates --- Marlin/src/lcd/menu/menu.cpp | 12 ++---------- Marlin/src/lcd/menu/menu.h | 8 ++++++++ Marlin/src/lcd/menu/menu_bed_leveling.cpp | 6 +----- Marlin/src/lcd/menu/menu_configuration.cpp | 6 +----- Marlin/src/lcd/menu/menu_tune.cpp | 12 ++---------- 5 files changed, 14 insertions(+), 30 deletions(-) diff --git a/Marlin/src/lcd/menu/menu.cpp b/Marlin/src/lcd/menu/menu.cpp index b35a12489824..ab251771dcc7 100644 --- a/Marlin/src/lcd/menu/menu.cpp +++ b/Marlin/src/lcd/menu/menu.cpp @@ -429,18 +429,10 @@ void scroll_screen(const uint8_t limit, const bool is_menu) { if (ui.should_draw()) { #if ENABLED(BABYSTEP_HOTEND_Z_OFFSET) if (!do_probe) - #if (Z_PROBE_OFFSET_RANGE_MIN < -9 || Z_PROBE_OFFSET_RANGE_MAX > 9) - MenuEditItemBase::draw_edit_screen(GET_TEXT(MSG_HOTEND_OFFSET_Z), ftostr52sign(hotend_offset[active_extruder].z)); - #else - MenuEditItemBase::draw_edit_screen(GET_TEXT(MSG_HOTEND_OFFSET_Z), ftostr54sign(hotend_offset[active_extruder].z)); - #endif + MenuEditItemBase::draw_edit_screen(GET_TEXT(MSG_HOTEND_OFFSET_Z), LCD_Z_OFFSET_FUNC(hotend_offset[active_extruder].z)); else #endif - #if (Z_PROBE_OFFSET_RANGE_MIN < -9 || Z_PROBE_OFFSET_RANGE_MAX > 9) - MenuEditItemBase::draw_edit_screen(GET_TEXT(MSG_ZPROBE_ZOFFSET), ftostr52sign(probe_offset.z)); - #else - MenuEditItemBase::draw_edit_screen(GET_TEXT(MSG_ZPROBE_ZOFFSET), ftostr54sign(probe_offset.z)); - #endif + MenuEditItemBase::draw_edit_screen(GET_TEXT(MSG_ZPROBE_ZOFFSET), LCD_Z_OFFSET_FUNC(probe_offset.z)); #if ENABLED(BABYSTEP_ZPROBE_GFX_OVERLAY) if (do_probe) _lcd_zoffset_overlay_gfx(probe_offset.z); diff --git a/Marlin/src/lcd/menu/menu.h b/Marlin/src/lcd/menu/menu.h index ce821d0dd2b6..ad6631ca0838 100644 --- a/Marlin/src/lcd/menu/menu.h +++ b/Marlin/src/lcd/menu/menu.h @@ -47,6 +47,14 @@ typedef void (*selectFunc_t)(); void _lcd_zoffset_overlay_gfx(const float zvalue); #endif +#if Z_PROBE_OFFSET_RANGE_MIN >= -9 && Z_PROBE_OFFSET_RANGE_MAX <= 9 + #define LCD_Z_OFFSET_FUNC(N) ftostr54sign(N) + #define LCD_Z_OFFSET_TYPE float43 +#else + #define LCD_Z_OFFSET_FUNC(N) ftostr52sign(N) + #define LCD_Z_OFFSET_TYPE float52 +#endif + //////////////////////////////////////////// ///////////// Base Menu Items ////////////// //////////////////////////////////////////// diff --git a/Marlin/src/lcd/menu/menu_bed_leveling.cpp b/Marlin/src/lcd/menu/menu_bed_leveling.cpp index cef72b65fb4d..753aa3d5e18b 100644 --- a/Marlin/src/lcd/menu/menu_bed_leveling.cpp +++ b/Marlin/src/lcd/menu/menu_bed_leveling.cpp @@ -281,11 +281,7 @@ void menu_bed_leveling() { #if ENABLED(BABYSTEP_ZPROBE_OFFSET) SUBMENU(MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset); #elif HAS_BED_PROBE - #if (Z_PROBE_OFFSET_RANGE_MIN < -9 || Z_PROBE_OFFSET_RANGE_MAX > 9) - EDIT_ITEM(float52, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); - #else - EDIT_ITEM(float43, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); - #endif + EDIT_ITEM(LCD_Z_OFFSET_TYPE, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); #endif #if ENABLED(LEVEL_BED_CORNERS) diff --git a/Marlin/src/lcd/menu/menu_configuration.cpp b/Marlin/src/lcd/menu/menu_configuration.cpp index 6f8b1d148c1a..3a57ba118509 100644 --- a/Marlin/src/lcd/menu/menu_configuration.cpp +++ b/Marlin/src/lcd/menu/menu_configuration.cpp @@ -317,11 +317,7 @@ void menu_configuration() { #if ENABLED(BABYSTEP_ZPROBE_OFFSET) SUBMENU(MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset); #elif HAS_BED_PROBE - #if (Z_PROBE_OFFSET_RANGE_MIN < -9 || Z_PROBE_OFFSET_RANGE_MAX > 9) - EDIT_ITEM(float52, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); - #else - EDIT_ITEM(float43, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); - #endif + EDIT_ITEM(LCD_Z_OFFSET_TYPE, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX); #endif const bool busy = printer_busy(); diff --git a/Marlin/src/lcd/menu/menu_tune.cpp b/Marlin/src/lcd/menu/menu_tune.cpp index 257fa0cae5a1..e0349c6fadbf 100644 --- a/Marlin/src/lcd/menu/menu_tune.cpp +++ b/Marlin/src/lcd/menu/menu_tune.cpp @@ -65,11 +65,7 @@ } if (ui.should_draw()) { const float spm = planner.steps_to_mm[axis]; - #if (Z_PROBE_OFFSET_RANGE_MIN < -9 || Z_PROBE_OFFSET_RANGE_MAX > 9) - MenuEditItemBase::draw_edit_screen(msg, ftostr52sign(spm * babystep.accum)); - #else - MenuEditItemBase::draw_edit_screen(msg, ftostr54sign(spm * babystep.accum)); - #endif + MenuEditItemBase::draw_edit_screen(msg, LCD_Z_OFFSET_FUNC(spm * babystep.accum)); #if ENABLED(BABYSTEP_DISPLAY_TOTAL) const bool in_view = (true #if HAS_GRAPHICAL_LCD @@ -85,11 +81,7 @@ #endif lcd_put_u8str_P(GET_TEXT(MSG_BABYSTEP_TOTAL)); lcd_put_wchar(':'); - #if (Z_PROBE_OFFSET_RANGE_MIN < -9 || Z_PROBE_OFFSET_RANGE_MAX > 9) - lcd_put_u8str(ftostr52sign(spm * babystep.axis_total[BS_TOTAL_AXIS(axis)])); - #else - lcd_put_u8str(ftostr54sign(spm * babystep.axis_total[BS_TOTAL_AXIS(axis)])); - #endif + lcd_put_u8str(LCD_Z_OFFSET_FUNC(spm * babystep.axis_total[BS_TOTAL_AXIS(axis)])); } #endif }