소스 검색

Probe Wizard XY position (#20167)

wmariz 4 년 전
부모
커밋
5768ee0f9e
No account linked to committer's email address

+ 2
- 1
Marlin/Configuration_adv.h 파일 보기

1085
     //#define PROBE_OFFSET_WIZARD
1085
     //#define PROBE_OFFSET_WIZARD
1086
     #if ENABLED(PROBE_OFFSET_WIZARD)
1086
     #if ENABLED(PROBE_OFFSET_WIZARD)
1087
       #define PROBE_OFFSET_START -4.0   // Estimated nozzle-to-probe Z offset, plus a little extra
1087
       #define PROBE_OFFSET_START -4.0   // Estimated nozzle-to-probe Z offset, plus a little extra
1088
+      //#define PROBE_OFFSET_WIZARD_XY_POS XY_CENTER // Set a convenient position to do the measurement
1088
     #endif
1089
     #endif
1089
   #endif
1090
   #endif
1090
 
1091
 
3447
   #define GANTRY_CALIBRATION_FEEDRATE         500     // Feedrate for correction move
3448
   #define GANTRY_CALIBRATION_FEEDRATE         500     // Feedrate for correction move
3448
   //#define GANTRY_CALIBRATION_TO_MIN                 // Enable to calibrate Z in the MIN direction
3449
   //#define GANTRY_CALIBRATION_TO_MIN                 // Enable to calibrate Z in the MIN direction
3449
 
3450
 
3450
-  //#define GANTRY_CALIBRATION_SAFE_POSITION  { X_CENTER, Y_CENTER } // Safe position for nozzle
3451
+  //#define GANTRY_CALIBRATION_SAFE_POSITION XY_CENTER // Safe position for nozzle
3451
   //#define GANTRY_CALIBRATION_XY_PARK_FEEDRATE 3000  // XY Park Feedrate - MMM
3452
   //#define GANTRY_CALIBRATION_XY_PARK_FEEDRATE 3000  // XY Park Feedrate - MMM
3452
   //#define GANTRY_CALIBRATION_COMMANDS_PRE   ""
3453
   //#define GANTRY_CALIBRATION_COMMANDS_PRE   ""
3453
   #define GANTRY_CALIBRATION_COMMANDS_POST  "G28"     // G28 highly recommended to ensure an accurate position
3454
   #define GANTRY_CALIBRATION_COMMANDS_POST  "G28"     // G28 highly recommended to ensure an accurate position

+ 1
- 0
Marlin/src/inc/Conditionals_post.h 파일 보기

100
 #define _Y_HALF_BED ((Y_BED_SIZE) / 2)
100
 #define _Y_HALF_BED ((Y_BED_SIZE) / 2)
101
 #define X_CENTER TERN(BED_CENTER_AT_0_0, 0, _X_HALF_BED)
101
 #define X_CENTER TERN(BED_CENTER_AT_0_0, 0, _X_HALF_BED)
102
 #define Y_CENTER TERN(BED_CENTER_AT_0_0, 0, _Y_HALF_BED)
102
 #define Y_CENTER TERN(BED_CENTER_AT_0_0, 0, _Y_HALF_BED)
103
+#define XY_CENTER { X_CENTER, Y_CENTER }
103
 
104
 
104
 // Get the linear boundaries of the bed
105
 // Get the linear boundaries of the bed
105
 #define X_MIN_BED (X_CENTER - _X_HALF_BED)
106
 #define X_MIN_BED (X_CENTER - _X_HALF_BED)

+ 1
- 1
Marlin/src/lcd/marlinui.h 파일 보기

622
   //
622
   //
623
   // Special handling if a move is underway
623
   // Special handling if a move is underway
624
   //
624
   //
625
-  #if EITHER(DELTA_CALIBRATION_MENU, DELTA_AUTO_CALIBRATION) || (ENABLED(LCD_BED_LEVELING) && EITHER(PROBE_MANUALLY, MESH_BED_LEVELING))
625
+  #if EITHER(DELTA_CALIBRATION_MENU, DELTA_AUTO_CALIBRATION) || (ENABLED(LCD_BED_LEVELING) && EITHER(PROBE_MANUALLY, MESH_BED_LEVELING)) || (ENABLED(PROBE_OFFSET_WIZARD) && defined(PROBE_OFFSET_WIZARD_XY_POS))
626
     #define LCD_HAS_WAIT_FOR_MOVE 1
626
     #define LCD_HAS_WAIT_FOR_MOVE 1
627
     static bool wait_for_move;
627
     static bool wait_for_move;
628
   #else
628
   #else

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

220
 #endif
220
 #endif
221
 
221
 
222
 #if ENABLED(PROBE_OFFSET_WIZARD)
222
 #if ENABLED(PROBE_OFFSET_WIZARD)
223
-  void goto_probe_offset_wizard();
223
+  void home_and_goto_probe_offset_wizard();
224
 #endif
224
 #endif
225
 
225
 
226
 #if ENABLED(LCD_BED_LEVELING) || (HAS_LEVELING && DISABLED(SLIM_LCD_MENUS))
226
 #if ENABLED(LCD_BED_LEVELING) || (HAS_LEVELING && DISABLED(SLIM_LCD_MENUS))

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

488
       EDIT_ITEM(LCD_Z_OFFSET_TYPE, MSG_ZPROBE_ZOFFSET, &probe.offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX);
488
       EDIT_ITEM(LCD_Z_OFFSET_TYPE, MSG_ZPROBE_ZOFFSET, &probe.offset.z, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX);
489
 
489
 
490
       #if ENABLED(PROBE_OFFSET_WIZARD)
490
       #if ENABLED(PROBE_OFFSET_WIZARD)
491
-        SUBMENU(MSG_PROBE_WIZARD, goto_probe_offset_wizard);
491
+        SUBMENU(MSG_PROBE_WIZARD, home_and_goto_probe_offset_wizard);
492
       #endif
492
       #endif
493
 
493
 
494
       END_MENU();
494
       END_MENU();

+ 22
- 11
Marlin/src/lcd/menu/menu_probe_offset.cpp 파일 보기

36
 
36
 
37
 #include "menu_item.h"
37
 #include "menu_item.h"
38
 #include "menu_addon.h"
38
 #include "menu_addon.h"
39
+#include "../../gcode/queue.h"
39
 #include "../../module/motion.h"
40
 #include "../../module/motion.h"
40
 #include "../../module/planner.h"
41
 #include "../../module/planner.h"
41
 #include "../../module/probe.h"
42
 #include "../../module/probe.h"
120
   END_MENU();
121
   END_MENU();
121
 }
122
 }
122
 
123
 
123
-void goto_probe_offset_wizard() {
124
-  ui.defer_status_screen();
125
-
126
-  prepare_for_calibration();
124
+#ifdef PROBE_OFFSET_WIZARD_XY_POS
125
+
126
+  #define HAS_PROBE_OFFSET_WIZARD_XY_POS 1
127
+
128
+  inline void goto_probe_offset_wizard() {
129
+    if (ui.wait_for_move) return;
130
+    constexpr xy_pos_t wizard_pos = PROBE_OFFSET_WIZARD_XY_POS;
131
+    current_position = wizard_pos;
132
+    ui.wait_for_move = true;
133
+    line_to_current_position(MMM_TO_MMS(HOMING_FEEDRATE_XY)); // Could invoke idle()
134
+    ui.wait_for_move = false;
135
+    ui.synchronize();
136
+    prepare_for_calibration();
137
+    probe.offset.z = PROBE_OFFSET_START;
138
+    ui.goto_screen(probe_offset_wizard_menu);
139
+    ui.defer_status_screen();
140
+  }
127
 
141
 
128
-  probe.offset.z = PROBE_OFFSET_START;
142
+#endif
129
 
143
 
130
-  set_all_unhomed();
144
+void home_and_goto_probe_offset_wizard() {
131
   queue.inject_P(G28_STR);
145
   queue.inject_P(G28_STR);
132
-
133
   ui.goto_screen([]{
146
   ui.goto_screen([]{
134
     _lcd_draw_homing();
147
     _lcd_draw_homing();
135
-    if (all_axes_homed()) {
136
-      ui.goto_screen(probe_offset_wizard_menu);
137
-      ui.defer_status_screen();
138
-    }
148
+    if (all_axes_homed())
149
+      ui.goto_screen(TERN(HAS_PROBE_OFFSET_WIZARD_XY_POS, goto_probe_offset_wizard, probe_offset_wizard_menu));
139
   });
150
   });
140
 }
151
 }
141
 
152
 

Loading…
취소
저장