Browse Source

PROBE_MANUALLY etc.

LVD-AC 7 years ago
parent
commit
e334efb2a7

+ 2
- 2
Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h View File

@@ -487,7 +487,7 @@
487 487
   // Delta calibration menu
488 488
   // uncomment to add three points calibration menu option.
489 489
   // See http://minow.blogspot.com/index.html#4918805519571907051
490
-  #define DELTA_CALIBRATION_MENU
490
+  //#define DELTA_CALIBRATION_MENU
491 491
 
492 492
   // uncomment to add G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
493 493
   #define DELTA_AUTO_CALIBRATION
@@ -506,7 +506,7 @@
506 506
   #endif
507 507
 
508 508
   #if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
509
-    // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS for non-eccentric probes
509
+    // Set the radius for the calibration probe points - max 0.9 * DELTA_PRINTABLE_RADIUS for non-eccentric probes
510 510
     #define DELTA_CALIBRATION_RADIUS 73.5 // mm
511 511
     // Set the steprate for papertest probing
512 512
     #define PROBE_MANUALLY_STEP 0.025

+ 1
- 1
Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h View File

@@ -506,7 +506,7 @@
506 506
   #endif
507 507
 
508 508
   #if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
509
-    // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS for non-eccentric probes
509
+    // Set the radius for the calibration probe points - max 0.9 * DELTA_PRINTABLE_RADIUS for non-eccentric probes
510 510
     #define DELTA_CALIBRATION_RADIUS 73.5 // mm
511 511
     // Set the steprate for papertest probing
512 512
     #define PROBE_MANUALLY_STEP 0.025

+ 1
- 1
Marlin/src/config/examples/delta/generic/Configuration.h View File

@@ -496,7 +496,7 @@
496 496
   #endif
497 497
 
498 498
   #if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
499
-    // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS for non-eccentric probes
499
+    // Set the radius for the calibration probe points - max 0.9 * DELTA_PRINTABLE_RADIUS for non-eccentric probes
500 500
     #define DELTA_CALIBRATION_RADIUS 121.5 // mm
501 501
     // Set the steprate for papertest probing
502 502
     #define PROBE_MANUALLY_STEP 0.025

+ 1
- 1
Marlin/src/config/examples/delta/kossel_mini/Configuration.h View File

@@ -496,7 +496,7 @@
496 496
   #endif
497 497
 
498 498
   #if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
499
-    // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS for non-eccentric probes
499
+    // Set the radius for the calibration probe points - max 0.9 * DELTA_PRINTABLE_RADIUS for non-eccentric probes
500 500
     #define DELTA_CALIBRATION_RADIUS 78.0 // mm
501 501
     // Set the steprate for papertest probing
502 502
     #define PROBE_MANUALLY_STEP 0.025

+ 1
- 1
Marlin/src/config/examples/delta/kossel_pro/Configuration.h View File

@@ -482,7 +482,7 @@
482 482
   #endif
483 483
 
484 484
   #if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
485
-    // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS for non-eccentric probes
485
+    // Set the radius for the calibration probe points - max 0.9 * DELTA_PRINTABLE_RADIUS for non-eccentric probes
486 486
     #define DELTA_CALIBRATION_RADIUS 110.0 // mm
487 487
     // Set the steprate for papertest probing
488 488
     #define PROBE_MANUALLY_STEP 0.025

+ 1
- 1
Marlin/src/config/examples/delta/kossel_xl/Configuration.h View File

@@ -500,7 +500,7 @@
500 500
   #endif
501 501
 
502 502
   #if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
503
-    // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS for non-eccentric probes
503
+    // Set the radius for the calibration probe points - max 0.9 * DELTA_PRINTABLE_RADIUS for non-eccentric probes
504 504
     #define DELTA_CALIBRATION_RADIUS 121.5 // mm
505 505
     // Set the steprate for papertest probing
506 506
     #define PROBE_MANUALLY_STEP 0.025

+ 9
- 8
Marlin/src/gcode/calibrate/G33.cpp View File

@@ -180,7 +180,7 @@ static float probe_G33_points(float z_at_pt[NPP + 1], const int8_t probe_points,
180 180
                     r = delta_calibration_radius * 0.1;
181 181
         z_at_pt[CEN] +=
182 182
           #if HAS_BED_PROBE
183
-            probe_pt(cos(a) * r + dx, sin(a) * r + dy, stow_after_each, 1)
183
+            probe_pt(cos(a) * r + dx, sin(a) * r + dy, stow_after_each, 1, false)
184 184
           #else
185 185
             lcd_probe_pt(cos(a) * r, sin(a) * r)
186 186
           #endif
@@ -209,7 +209,7 @@ static float probe_G33_points(float z_at_pt[NPP + 1], const int8_t probe_points,
209 209
                       interpol = FMOD(axis, 1);
210 210
           const float z_temp =
211 211
             #if HAS_BED_PROBE
212
-              probe_pt(cos(a) * r + dx, sin(a) * r + dy, stow_after_each, 1)
212
+              probe_pt(cos(a) * r + dx, sin(a) * r + dy, stow_after_each, 1, false)
213 213
             #else
214 214
               lcd_probe_pt(cos(a) * r, sin(a) * r)
215 215
             #endif
@@ -225,7 +225,6 @@ static float probe_G33_points(float z_at_pt[NPP + 1], const int8_t probe_points,
225 225
           z_at_pt[axis] /= _7P_STEP / steps;
226 226
     }
227 227
 
228
-
229 228
     float S1 = z_at_pt[CEN],
230 229
           S2 = sq(z_at_pt[CEN]);
231 230
     int16_t N = 1;
@@ -263,6 +262,7 @@ static float probe_G33_points(float z_at_pt[NPP + 1], const int8_t probe_points,
263 262
 
264 263
     LOOP_XYZ(axis) {
265 264
       delta_endstop_adj[axis] -= 1.0;
265
+      recalc_delta_settings();
266 266
 
267 267
       endstops.enable(true);
268 268
       if (!home_delta()) return;
@@ -276,6 +276,7 @@ static float probe_G33_points(float z_at_pt[NPP + 1], const int8_t probe_points,
276 276
       LOOP_CAL_ALL(axis) z_at_pt[axis] -= z_at_pt_base[axis];
277 277
       print_G33_results(z_at_pt, true, true);
278 278
       delta_endstop_adj[axis] += 1.0;
279
+      recalc_delta_settings();
279 280
       switch (axis) {
280 281
         case A_AXIS :
281 282
           h_fac += 4.0 / (Z03(CEN) +Z01(__A)                               +Z32(_CA) +Z32(_AB)); // Offset by X-tower end-stop
@@ -293,7 +294,7 @@ static float probe_G33_points(float z_at_pt[NPP + 1], const int8_t probe_points,
293 294
 
294 295
     for (int8_t zig_zag = -1; zig_zag < 2; zig_zag += 2) {
295 296
       delta_radius += 1.0 * zig_zag;
296
-      recalc_delta_settings(delta_radius, delta_diagonal_rod, delta_tower_angle_trim);
297
+      recalc_delta_settings();
297 298
 
298 299
       endstops.enable(true);
299 300
       if (!home_delta()) return;
@@ -306,7 +307,7 @@ static float probe_G33_points(float z_at_pt[NPP + 1], const int8_t probe_points,
306 307
       LOOP_CAL_ALL(axis) z_at_pt[axis] -= z_at_pt_base[axis];
307 308
       print_G33_results(z_at_pt, true, true);
308 309
       delta_radius -= 1.0 * zig_zag;
309
-      recalc_delta_settings(delta_radius, delta_diagonal_rod, delta_tower_angle_trim);
310
+      recalc_delta_settings();
310 311
       r_fac -= zig_zag * 6.0 / (Z03(__A) +Z03(__B) +Z03(__C) +Z03(_BC) +Z03(_CA) +Z03(_AB)); // Offset by delta radius
311 312
     }
312 313
     r_fac /= 2.0;
@@ -319,7 +320,7 @@ static float probe_G33_points(float z_at_pt[NPP + 1], const int8_t probe_points,
319 320
       z_temp = MAX3(delta_endstop_adj[A_AXIS], delta_endstop_adj[B_AXIS], delta_endstop_adj[C_AXIS]);
320 321
       delta_height -= z_temp;
321 322
       LOOP_XYZ(axis) delta_endstop_adj[axis] -= z_temp;
322
-      recalc_delta_settings(delta_radius, delta_diagonal_rod, delta_tower_angle_trim);
323
+      recalc_delta_settings();
323 324
 
324 325
       endstops.enable(true);
325 326
       if (!home_delta()) return;
@@ -339,7 +340,7 @@ static float probe_G33_points(float z_at_pt[NPP + 1], const int8_t probe_points,
339 340
       z_temp = MAX3(delta_endstop_adj[A_AXIS], delta_endstop_adj[B_AXIS], delta_endstop_adj[C_AXIS]);
340 341
       delta_height -= z_temp;
341 342
       LOOP_XYZ(axis) delta_endstop_adj[axis] -= z_temp;
342
-      recalc_delta_settings(delta_radius, delta_diagonal_rod, delta_tower_angle_trim);
343
+      recalc_delta_settings();
343 344
       switch (axis) {
344 345
         case A_AXIS :
345 346
           a_fac += 4.0 / (          Z06(__B) -Z06(__C)           +Z06(_CA) -Z06(_AB)); // Offset by alpha tower angle
@@ -626,7 +627,7 @@ void GcodeSuite::G33() {
626 627
       delta_height -= z_temp;
627 628
       LOOP_XYZ(axis) delta_endstop_adj[axis] -= z_temp;
628 629
     }
629
-    recalc_delta_settings(delta_radius, delta_diagonal_rod, delta_tower_angle_trim);
630
+    recalc_delta_settings();
630 631
     NOMORE(zero_std_dev_min, zero_std_dev);
631 632
 
632 633
     // print report

+ 1
- 1
Marlin/src/gcode/calibrate/M665.cpp View File

@@ -55,7 +55,7 @@
55 55
     if (parser.seen('X')) delta_tower_angle_trim[A_AXIS] = parser.value_float();
56 56
     if (parser.seen('Y')) delta_tower_angle_trim[B_AXIS] = parser.value_float();
57 57
     if (parser.seen('Z')) delta_tower_angle_trim[C_AXIS] = parser.value_float();
58
-    recalc_delta_settings(delta_radius, delta_diagonal_rod, delta_tower_angle_trim);
58
+    recalc_delta_settings();
59 59
   }
60 60
 
61 61
 #elif IS_SCARA

+ 2
- 2
Marlin/src/lcd/language/language_en.h View File

@@ -752,8 +752,8 @@
752 752
 #ifndef MSG_DELTA_HEIGHT_CALIBRATE
753 753
   #define MSG_DELTA_HEIGHT_CALIBRATE          _UxGT("Set Delta Height")
754 754
 #endif
755
-#ifndef MSG_DELTA_DIAG_ROG
756
-  #define MSG_DELTA_DIAG_ROG                  _UxGT("Diag Rod")
755
+#ifndef MSG_DELTA_DIAG_ROD
756
+  #define MSG_DELTA_DIAG_ROD                  _UxGT("Diag Rod")
757 757
 #endif
758 758
 #ifndef MSG_DELTA_HEIGHT
759 759
   #define MSG_DELTA_HEIGHT                    _UxGT("Height")

+ 26
- 24
Marlin/src/lcd/ultralcd.cpp View File

@@ -205,7 +205,7 @@ uint16_t max_display_update_time = 0;
205 205
     void lcd_control_retract_menu();
206 206
   #endif
207 207
 
208
-  #if ENABLED(DELTA_CALIBRATION_MENU)
208
+  #if ENABLED(DELTA_CALIBRATION_MENU) || ENABLED(DELTA_AUTO_CALIBRATION)
209 209
     void lcd_delta_calibrate_menu();
210 210
   #endif
211 211
 
@@ -2559,7 +2559,7 @@ void kill_screen(const char* lcd_msg) {
2559 2559
     // Move Axis
2560 2560
     //
2561 2561
     #if ENABLED(DELTA)
2562
-      if (axis_homed[Z_AXIS])
2562
+      if (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS])
2563 2563
     #endif
2564 2564
         MENU_ITEM(submenu, MSG_MOVE_AXIS, lcd_move_menu);
2565 2565
 
@@ -2674,7 +2674,7 @@ void kill_screen(const char* lcd_msg) {
2674 2674
     //
2675 2675
     // Delta Calibration
2676 2676
     //
2677
-    #if ENABLED(DELTA_CALIBRATION_MENU)
2677
+    #if ENABLED(DELTA_CALIBRATION_MENU) || ENABLED(DELTA_AUTO_CALIBRATION)
2678 2678
       MENU_ITEM(submenu, MSG_DELTA_CALIBRATE, lcd_delta_calibrate_menu);
2679 2679
     #endif
2680 2680
 
@@ -2743,22 +2743,22 @@ void kill_screen(const char* lcd_msg) {
2743 2743
     void _goto_tower_z() { _man_probe_pt(cos(RADIANS( 90)) * delta_calibration_radius, sin(RADIANS( 90)) * delta_calibration_radius); }
2744 2744
     void _goto_center()  { _man_probe_pt(0,0); }
2745 2745
 
2746
-    void _lcd_set_delta_height() {
2747
-      update_software_endstops(Z_AXIS);
2748
-    }
2746
+  #endif // DELTA_CALIBRATION_MENU
2747
+
2748
+  #if ENABLED(DELTA_CALIBRATION_MENU) || ENABLED(DELTA_AUTO_CALIBRATION)
2749 2749
 
2750 2750
     void lcd_delta_settings() {
2751 2751
       START_MENU();
2752 2752
       MENU_BACK(MSG_DELTA_CALIBRATE);
2753
-      MENU_ITEM_EDIT(float52, MSG_DELTA_DIAG_ROG, &delta_diagonal_rod, DELTA_DIAGONAL_ROD - 5.0, DELTA_DIAGONAL_ROD + 5.0);
2754
-      MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float52, MSG_DELTA_HEIGHT, &delta_height, delta_height - 10.0, delta_height + 10.0, _lcd_set_delta_height);
2755
-      MENU_ITEM_EDIT(float43, "Ex", &delta_endstop_adj[A_AXIS], -5.0, 5.0);
2756
-      MENU_ITEM_EDIT(float43, "Ey", &delta_endstop_adj[B_AXIS], -5.0, 5.0);
2757
-      MENU_ITEM_EDIT(float43, "Ez", &delta_endstop_adj[C_AXIS], -5.0, 5.0);
2758
-      MENU_ITEM_EDIT(float52, MSG_DELTA_RADIUS, &delta_radius, DELTA_RADIUS - 5.0, DELTA_RADIUS + 5.0);
2759
-      MENU_ITEM_EDIT(float43, "Tx", &delta_tower_angle_trim[A_AXIS], -5.0, 5.0);
2760
-      MENU_ITEM_EDIT(float43, "Ty", &delta_tower_angle_trim[B_AXIS], -5.0, 5.0);
2761
-      MENU_ITEM_EDIT(float43, "Tz", &delta_tower_angle_trim[C_AXIS], -5.0, 5.0);
2753
+      MENU_ITEM_EDIT_CALLBACK(float52, MSG_DELTA_DIAG_ROD, &delta_diagonal_rod, delta_diagonal_rod - 5.0, delta_diagonal_rod + 5.0, recalc_delta_settings);
2754
+      MENU_ITEM_EDIT_CALLBACK(float52, MSG_DELTA_HEIGHT, &delta_height, delta_height - 10.0, delta_height + 10.0, recalc_delta_settings);
2755
+      MENU_ITEM_EDIT_CALLBACK(float43, "Ex", &delta_endstop_adj[A_AXIS], -5.0, 5.0, recalc_delta_settings);
2756
+      MENU_ITEM_EDIT_CALLBACK(float43, "Ey", &delta_endstop_adj[B_AXIS], -5.0, 5.0, recalc_delta_settings);
2757
+      MENU_ITEM_EDIT_CALLBACK(float43, "Ez", &delta_endstop_adj[C_AXIS], -5.0, 5.0, recalc_delta_settings);
2758
+      MENU_ITEM_EDIT_CALLBACK(float52, MSG_DELTA_RADIUS, &delta_radius, delta_radius - 5.0, delta_radius + 5.0, recalc_delta_settings);
2759
+      MENU_ITEM_EDIT_CALLBACK(float43, "Tx", &delta_tower_angle_trim[A_AXIS], -5.0, 5.0, recalc_delta_settings);
2760
+      MENU_ITEM_EDIT_CALLBACK(float43, "Ty", &delta_tower_angle_trim[B_AXIS], -5.0, 5.0, recalc_delta_settings);
2761
+      MENU_ITEM_EDIT_CALLBACK(float43, "Tz", &delta_tower_angle_trim[C_AXIS], -5.0, 5.0, recalc_delta_settings);
2762 2762
       END_MENU();
2763 2763
     }
2764 2764
 
@@ -2766,7 +2766,6 @@ void kill_screen(const char* lcd_msg) {
2766 2766
       START_MENU();
2767 2767
       MENU_BACK(MSG_MAIN);
2768 2768
       #if ENABLED(DELTA_AUTO_CALIBRATION)
2769
-        MENU_ITEM(submenu, MSG_DELTA_SETTINGS, lcd_delta_settings);
2770 2769
         MENU_ITEM(gcode, MSG_DELTA_AUTO_CALIBRATE, PSTR("G33"));
2771 2770
         MENU_ITEM(gcode, MSG_DELTA_HEIGHT_CALIBRATE, PSTR("G33 P1"));
2772 2771
         #if ENABLED(EEPROM_SETTINGS)
@@ -2774,17 +2773,20 @@ void kill_screen(const char* lcd_msg) {
2774 2773
           MENU_ITEM(function, MSG_LOAD_EEPROM, lcd_load_settings);
2775 2774
         #endif
2776 2775
       #endif
2777
-      MENU_ITEM(submenu, MSG_AUTO_HOME, _lcd_delta_calibrate_home);
2778
-      if (axis_homed[Z_AXIS]) {
2779
-        MENU_ITEM(submenu, MSG_DELTA_CALIBRATE_X, _goto_tower_x);
2780
-        MENU_ITEM(submenu, MSG_DELTA_CALIBRATE_Y, _goto_tower_y);
2781
-        MENU_ITEM(submenu, MSG_DELTA_CALIBRATE_Z, _goto_tower_z);
2782
-        MENU_ITEM(submenu, MSG_DELTA_CALIBRATE_CENTER, _goto_center);
2783
-      }
2776
+      MENU_ITEM(submenu, MSG_DELTA_SETTINGS, lcd_delta_settings);
2777
+      #if ENABLED(DELTA_CALIBRATION_MENU)
2778
+        MENU_ITEM(submenu, MSG_AUTO_HOME, _lcd_delta_calibrate_home);
2779
+        if (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS]) {
2780
+          MENU_ITEM(submenu, MSG_DELTA_CALIBRATE_X, _goto_tower_x);
2781
+          MENU_ITEM(submenu, MSG_DELTA_CALIBRATE_Y, _goto_tower_y);
2782
+          MENU_ITEM(submenu, MSG_DELTA_CALIBRATE_Z, _goto_tower_z);
2783
+          MENU_ITEM(submenu, MSG_DELTA_CALIBRATE_CENTER, _goto_center);
2784
+        }
2785
+      #endif
2784 2786
       END_MENU();
2785 2787
     }
2786 2788
 
2787
-  #endif // DELTA_CALIBRATION_MENU
2789
+  #endif // DELTA_CALIBRATION_MENU || DELTA_AUTO_CALIBRATION
2788 2790
 
2789 2791
   /**
2790 2792
    * If the most recent manual move hasn't been fed to the planner yet,

+ 1
- 1
Marlin/src/module/configuration_store.cpp View File

@@ -225,7 +225,7 @@ void MarlinSettings::postprocess() {
225 225
   // Make sure delta kinematics are updated before refreshing the
226 226
   // planner position so the stepper counts will be set correctly.
227 227
   #if ENABLED(DELTA)
228
-    recalc_delta_settings(delta_radius, delta_diagonal_rod, delta_tower_angle_trim);
228
+    recalc_delta_settings();
229 229
   #endif
230 230
 
231 231
   // Refresh steps_to_mm with the reciprocal of axis_steps_per_mm

+ 12
- 10
Marlin/src/module/delta.cpp View File

@@ -56,18 +56,20 @@ float delta_safe_distance_from_top();
56 56
  * Recalculate factors used for delta kinematics whenever
57 57
  * settings have been changed (e.g., by M665).
58 58
  */
59
-void recalc_delta_settings(const float radius, const float diagonal_rod, const float tower_angle_trim[ABC]) {
59
+void recalc_delta_settings() {
60 60
   const float trt[ABC] = DELTA_RADIUS_TRIM_TOWER,
61 61
               drt[ABC] = DELTA_DIAGONAL_ROD_TRIM_TOWER;
62
-  delta_tower[A_AXIS][X_AXIS] = cos(RADIANS(210 + tower_angle_trim[A_AXIS])) * (radius + trt[A_AXIS]); // front left tower
63
-  delta_tower[A_AXIS][Y_AXIS] = sin(RADIANS(210 + tower_angle_trim[A_AXIS])) * (radius + trt[A_AXIS]);
64
-  delta_tower[B_AXIS][X_AXIS] = cos(RADIANS(330 + tower_angle_trim[B_AXIS])) * (radius + trt[B_AXIS]); // front right tower
65
-  delta_tower[B_AXIS][Y_AXIS] = sin(RADIANS(330 + tower_angle_trim[B_AXIS])) * (radius + trt[B_AXIS]);
66
-  delta_tower[C_AXIS][X_AXIS] = cos(RADIANS( 90 + tower_angle_trim[C_AXIS])) * (radius + trt[C_AXIS]); // back middle tower
67
-  delta_tower[C_AXIS][Y_AXIS] = sin(RADIANS( 90 + tower_angle_trim[C_AXIS])) * (radius + trt[C_AXIS]);
68
-  delta_diagonal_rod_2_tower[A_AXIS] = sq(diagonal_rod + drt[A_AXIS]);
69
-  delta_diagonal_rod_2_tower[B_AXIS] = sq(diagonal_rod + drt[B_AXIS]);
70
-  delta_diagonal_rod_2_tower[C_AXIS] = sq(diagonal_rod + drt[C_AXIS]);
62
+  delta_tower[A_AXIS][X_AXIS] = cos(RADIANS(210 + delta_tower_angle_trim[A_AXIS])) * (delta_radius + trt[A_AXIS]); // front left tower
63
+  delta_tower[A_AXIS][Y_AXIS] = sin(RADIANS(210 + delta_tower_angle_trim[A_AXIS])) * (delta_radius + trt[A_AXIS]);
64
+  delta_tower[B_AXIS][X_AXIS] = cos(RADIANS(330 + delta_tower_angle_trim[B_AXIS])) * (delta_radius + trt[B_AXIS]); // front right tower
65
+  delta_tower[B_AXIS][Y_AXIS] = sin(RADIANS(330 + delta_tower_angle_trim[B_AXIS])) * (delta_radius + trt[B_AXIS]);
66
+  delta_tower[C_AXIS][X_AXIS] = cos(RADIANS( 90 + delta_tower_angle_trim[C_AXIS])) * (delta_radius + trt[C_AXIS]); // back middle tower
67
+  delta_tower[C_AXIS][Y_AXIS] = sin(RADIANS( 90 + delta_tower_angle_trim[C_AXIS])) * (delta_radius + trt[C_AXIS]);
68
+  delta_diagonal_rod_2_tower[A_AXIS] = sq(delta_diagonal_rod + drt[A_AXIS]);
69
+  delta_diagonal_rod_2_tower[B_AXIS] = sq(delta_diagonal_rod + drt[B_AXIS]);
70
+  delta_diagonal_rod_2_tower[C_AXIS] = sq(delta_diagonal_rod + drt[C_AXIS]);
71
+  update_software_endstops(Z_AXIS);
72
+  axis_homed[X_AXIS] = axis_homed[Y_AXIS] = axis_homed[Z_AXIS] = false;
71 73
 }
72 74
 
73 75
 /**

+ 1
- 1
Marlin/src/module/delta.h View File

@@ -43,7 +43,7 @@ extern float delta_tower[ABC][2],
43 43
  * Recalculate factors used for delta kinematics whenever
44 44
  * settings have been changed (e.g., by M665).
45 45
  */
46
-void recalc_delta_settings(const float radius, const float diagonal_rod, const float tower_angle_trim[ABC]);
46
+void recalc_delta_settings();
47 47
 
48 48
 /**
49 49
  * Delta Inverse Kinematics

+ 5
- 18
Marlin/src/module/probe.cpp View File

@@ -509,10 +509,9 @@ static bool do_probe_move(const float z, const float fr_mm_m) {
509 509
  * @details Used by probe_pt to do a single Z probe.
510 510
  *          Leaves current_position[Z_AXIS] at the height where the probe triggered.
511 511
  *
512
- * @param  short_move Flag for a shorter probe move towards the bed
513 512
  * @return The raw Z position where the probe was triggered
514 513
  */
515
-static float run_z_probe(const bool short_move=true) {
514
+static float run_z_probe() {
516 515
 
517 516
   #if ENABLED(DEBUG_LEVELING_FEATURE)
518 517
     if (DEBUGGING(LEVELING)) DEBUG_POS(">>> run_z_probe", current_position);
@@ -549,8 +548,8 @@ static float run_z_probe(const bool short_move=true) {
549 548
     }
550 549
   #endif
551 550
 
552
-  // move down slowly to find bed
553
-  if (do_probe_move(-10 + (short_move ? 0 : -(Z_MAX_LENGTH)), Z_PROBE_SPEED_SLOW)) return NAN;
551
+  // Move down slowly to find bed, not too far
552
+  if (do_probe_move(-10, Z_PROBE_SPEED_SLOW)) return NAN;
554 553
 
555 554
   #if ENABLED(DEBUG_LEVELING_FEATURE)
556 555
     if (DEBUGGING(LEVELING)) DEBUG_POS("<<< run_z_probe", current_position);
@@ -589,12 +588,11 @@ float probe_pt(const float &rx, const float &ry, const bool stow, const uint8_t
589 588
 
590 589
   const float nx = rx - (X_PROBE_OFFSET_FROM_EXTRUDER), ny = ry - (Y_PROBE_OFFSET_FROM_EXTRUDER);
591 590
 
592
-  if (printable
591
+  if (!printable
593 592
     ? !position_is_reachable(nx, ny)
594 593
     : !position_is_reachable_by_probe(rx, ry)
595 594
   ) return NAN;
596 595
 
597
-
598 596
   const float old_feedrate_mm_s = feedrate_mm_s;
599 597
 
600 598
   #if ENABLED(DELTA)
@@ -602,12 +600,6 @@ float probe_pt(const float &rx, const float &ry, const bool stow, const uint8_t
602 600
       do_blocking_move_to_z(delta_clip_start_height);
603 601
   #endif
604 602
 
605
-  #if HAS_SOFTWARE_ENDSTOPS
606
-    // Store the status of the soft endstops and disable if we're probing a non-printable location
607
-    static bool enable_soft_endstops = soft_endstops_enabled;
608
-    if (!printable) soft_endstops_enabled = false;
609
-  #endif
610
-
611 603
   feedrate_mm_s = XY_PROBE_FEEDRATE_MM_S;
612 604
 
613 605
   // Move the probe to the given XY
@@ -615,7 +607,7 @@ float probe_pt(const float &rx, const float &ry, const bool stow, const uint8_t
615 607
 
616 608
   float measured_z = NAN;
617 609
   if (!DEPLOY_PROBE()) {
618
-    measured_z = run_z_probe(printable);
610
+    measured_z = run_z_probe();
619 611
 
620 612
     if (!stow)
621 613
       do_blocking_move_to_z(current_position[Z_AXIS] + Z_CLEARANCE_BETWEEN_PROBES, MMM_TO_MMS(Z_PROBE_SPEED_FAST));
@@ -623,11 +615,6 @@ float probe_pt(const float &rx, const float &ry, const bool stow, const uint8_t
623 615
       if (STOW_PROBE()) measured_z = NAN;
624 616
   }
625 617
 
626
-  #if HAS_SOFTWARE_ENDSTOPS
627
-    // Restore the soft endstop status
628
-    soft_endstops_enabled = enable_soft_endstops;
629
-  #endif
630
-
631 618
   if (verbose_level > 2) {
632 619
     SERIAL_PROTOCOLPGM("Bed X: ");
633 620
     SERIAL_PROTOCOL_F(LOGICAL_X_POSITION(rx), 3);

Loading…
Cancel
Save