소스 검색

Z-offset edit precision based on value limits (#16425)

InsanityAutomation 5 년 전
부모
커밋
d129ac1b37

+ 2
- 2
Marlin/src/lcd/menu/menu.cpp 파일 보기

429
     if (ui.should_draw()) {
429
     if (ui.should_draw()) {
430
       #if ENABLED(BABYSTEP_HOTEND_Z_OFFSET)
430
       #if ENABLED(BABYSTEP_HOTEND_Z_OFFSET)
431
         if (!do_probe)
431
         if (!do_probe)
432
-          MenuEditItemBase::draw_edit_screen(GET_TEXT(MSG_HOTEND_OFFSET_Z), ftostr43sign(hotend_offset[active_extruder].z));
432
+          MenuEditItemBase::draw_edit_screen(GET_TEXT(MSG_HOTEND_OFFSET_Z), LCD_Z_OFFSET_FUNC(hotend_offset[active_extruder].z));
433
         else
433
         else
434
       #endif
434
       #endif
435
-          MenuEditItemBase::draw_edit_screen(GET_TEXT(MSG_ZPROBE_ZOFFSET), ftostr43sign(probe_offset.z));
435
+          MenuEditItemBase::draw_edit_screen(GET_TEXT(MSG_ZPROBE_ZOFFSET), LCD_Z_OFFSET_FUNC(probe_offset.z));
436
 
436
 
437
       #if ENABLED(BABYSTEP_ZPROBE_GFX_OVERLAY)
437
       #if ENABLED(BABYSTEP_ZPROBE_GFX_OVERLAY)
438
         if (do_probe) _lcd_zoffset_overlay_gfx(probe_offset.z);
438
         if (do_probe) _lcd_zoffset_overlay_gfx(probe_offset.z);

+ 8
- 0
Marlin/src/lcd/menu/menu.h 파일 보기

47
   void _lcd_zoffset_overlay_gfx(const float zvalue);
47
   void _lcd_zoffset_overlay_gfx(const float zvalue);
48
 #endif
48
 #endif
49
 
49
 
50
+#if Z_PROBE_OFFSET_RANGE_MIN >= -9 && Z_PROBE_OFFSET_RANGE_MAX <= 9
51
+  #define LCD_Z_OFFSET_FUNC(N) ftostr54sign(N)
52
+  #define LCD_Z_OFFSET_TYPE float43
53
+#else
54
+  #define LCD_Z_OFFSET_FUNC(N) ftostr52sign(N)
55
+  #define LCD_Z_OFFSET_TYPE float52
56
+#endif
57
+
50
 ////////////////////////////////////////////
58
 ////////////////////////////////////////////
51
 ///////////// Base Menu Items //////////////
59
 ///////////// Base Menu Items //////////////
52
 ////////////////////////////////////////////
60
 ////////////////////////////////////////////

+ 1
- 1
Marlin/src/lcd/menu/menu_bed_leveling.cpp 파일 보기

281
   #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
281
   #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
282
     SUBMENU(MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset);
282
     SUBMENU(MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset);
283
   #elif HAS_BED_PROBE
283
   #elif HAS_BED_PROBE
284
-    EDIT_ITEM(float52, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX);
284
+    EDIT_ITEM(LCD_Z_OFFSET_TYPE, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX);
285
   #endif
285
   #endif
286
 
286
 
287
   #if ENABLED(LEVEL_BED_CORNERS)
287
   #if ENABLED(LEVEL_BED_CORNERS)

+ 1
- 1
Marlin/src/lcd/menu/menu_configuration.cpp 파일 보기

317
   #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
317
   #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
318
     SUBMENU(MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset);
318
     SUBMENU(MSG_ZPROBE_ZOFFSET, lcd_babystep_zoffset);
319
   #elif HAS_BED_PROBE
319
   #elif HAS_BED_PROBE
320
-    EDIT_ITEM(float52, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX);
320
+    EDIT_ITEM(LCD_Z_OFFSET_TYPE, MSG_ZPROBE_ZOFFSET, &probe_offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX);
321
   #endif
321
   #endif
322
 
322
 
323
   const bool busy = printer_busy();
323
   const bool busy = printer_busy();

+ 2
- 2
Marlin/src/lcd/menu/menu_tune.cpp 파일 보기

65
     }
65
     }
66
     if (ui.should_draw()) {
66
     if (ui.should_draw()) {
67
       const float spm = planner.steps_to_mm[axis];
67
       const float spm = planner.steps_to_mm[axis];
68
-      MenuEditItemBase::draw_edit_screen(msg, ftostr54sign(spm * babystep.accum));
68
+      MenuEditItemBase::draw_edit_screen(msg, LCD_Z_OFFSET_FUNC(spm * babystep.accum));
69
       #if ENABLED(BABYSTEP_DISPLAY_TOTAL)
69
       #if ENABLED(BABYSTEP_DISPLAY_TOTAL)
70
         const bool in_view = (true
70
         const bool in_view = (true
71
           #if HAS_GRAPHICAL_LCD
71
           #if HAS_GRAPHICAL_LCD
81
           #endif
81
           #endif
82
           lcd_put_u8str_P(GET_TEXT(MSG_BABYSTEP_TOTAL));
82
           lcd_put_u8str_P(GET_TEXT(MSG_BABYSTEP_TOTAL));
83
           lcd_put_wchar(':');
83
           lcd_put_wchar(':');
84
-          lcd_put_u8str(ftostr54sign(spm * babystep.axis_total[BS_TOTAL_AXIS(axis)]));
84
+          lcd_put_u8str(LCD_Z_OFFSET_FUNC(spm * babystep.axis_total[BS_TOTAL_AXIS(axis)]));
85
         }
85
         }
86
       #endif
86
       #endif
87
     }
87
     }

Loading…
취소
저장