Browse Source

Patch M425 for CAN_CALIBRATE

Fixes #17430
Scott Lahteine 4 years ago
parent
commit
3a42b6c5c6

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

51
   #undef CALIBRATION_MEASURE_AT_TOP_EDGES
51
   #undef CALIBRATION_MEASURE_AT_TOP_EDGES
52
 #endif
52
 #endif
53
 
53
 
54
-
55
 /**
54
 /**
56
  * G425 backs away from the calibration object by various distances
55
  * G425 backs away from the calibration object by various distances
57
  * depending on the confidence level:
56
  * depending on the confidence level:
256
     #endif
255
     #endif
257
   }
256
   }
258
 
257
 
259
-  if (AXIS_CAN_CALIBRATE(X) && axis == X_AXIS || AXIS_CAN_CALIBRATE(Y) && axis == Y_AXIS) {
258
+  if ((AXIS_CAN_CALIBRATE(X) && axis == X_AXIS) || (AXIS_CAN_CALIBRATE(Y) && axis == Y_AXIS)) {
260
     // Move to safe distance to the side of the calibration object
259
     // Move to safe distance to the side of the calibration object
261
     current_position[axis] = m.obj_center[axis] + (-dir) * (dimensions[axis] / 2 + m.nozzle_outer_dimension[axis] / 2 + uncertainty);
260
     current_position[axis] = m.obj_center[axis] + (-dir) * (dimensions[axis] / 2 + m.nozzle_outer_dimension[axis] / 2 + uncertainty);
262
     calibration_move();
261
     calibration_move();

+ 12
- 3
Marlin/src/gcode/calibrate/M425.cpp View File

46
 void GcodeSuite::M425() {
46
 void GcodeSuite::M425() {
47
   bool noArgs = true;
47
   bool noArgs = true;
48
 
48
 
49
+  auto axis_can_calibrate = [](const uint8_t a) {
50
+    switch (a) {
51
+      default:
52
+      case X_AXIS: return AXIS_CAN_CALIBRATE(X);
53
+      case Y_AXIS: return AXIS_CAN_CALIBRATE(Y);
54
+      case Z_AXIS: return AXIS_CAN_CALIBRATE(Z);
55
+    }
56
+  };
57
+
49
   LOOP_XYZ(a) {
58
   LOOP_XYZ(a) {
50
-    if (CAN_CALIBRATE(a) && parser.seen(XYZ_CHAR(a))) {
59
+    if (AXIS_CAN_CALIBRATE(a) && parser.seen(XYZ_CHAR(a))) {
51
       planner.synchronize();
60
       planner.synchronize();
52
       backlash.distance_mm[a] = parser.has_value() ? parser.value_linear_units() : backlash.get_measurement(AxisEnum(a));
61
       backlash.distance_mm[a] = parser.has_value() ? parser.value_linear_units() : backlash.get_measurement(AxisEnum(a));
53
       noArgs = false;
62
       noArgs = false;
74
     SERIAL_ECHOLNPGM("active:");
83
     SERIAL_ECHOLNPGM("active:");
75
     SERIAL_ECHOLNPAIR("  Correction Amount/Fade-out:     F", backlash.get_correction(), " (F1.0 = full, F0.0 = none)");
84
     SERIAL_ECHOLNPAIR("  Correction Amount/Fade-out:     F", backlash.get_correction(), " (F1.0 = full, F0.0 = none)");
76
     SERIAL_ECHOPGM("  Backlash Distance (mm):        ");
85
     SERIAL_ECHOPGM("  Backlash Distance (mm):        ");
77
-    LOOP_XYZ(a) if (CAN_CALIBRATE(a)) {
86
+    LOOP_XYZ(a) if (axis_can_calibrate(a)) {
78
       SERIAL_CHAR(' ', XYZ_CHAR(a));
87
       SERIAL_CHAR(' ', XYZ_CHAR(a));
79
       SERIAL_ECHO(backlash.distance_mm[a]);
88
       SERIAL_ECHO(backlash.distance_mm[a]);
80
       SERIAL_EOL();
89
       SERIAL_EOL();
87
     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
96
     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
88
       SERIAL_ECHOPGM("  Average measured backlash (mm):");
97
       SERIAL_ECHOPGM("  Average measured backlash (mm):");
89
       if (backlash.has_any_measurement()) {
98
       if (backlash.has_any_measurement()) {
90
-        LOOP_XYZ(a) if (CAN_CALIBRATE(a) && backlash.has_measurement(AxisEnum(a))) {
99
+        LOOP_XYZ(a) if (axis_can_calibrate(a) && backlash.has_measurement(AxisEnum(a))) {
91
           SERIAL_CHAR(' ', XYZ_CHAR(a));
100
           SERIAL_CHAR(' ', XYZ_CHAR(a));
92
           SERIAL_ECHO(backlash.get_measurement(AxisEnum(a)));
101
           SERIAL_ECHO(backlash.get_measurement(AxisEnum(a)));
93
         }
102
         }

+ 1
- 1
Marlin/src/inc/Conditionals_post.h View File

147
     #define Z_AXIS_INDEX 2
147
     #define Z_AXIS_INDEX 2
148
     #define CAN_CALIBRATE(A,B) (A##_AXIS_INDEX == B##_INDEX)
148
     #define CAN_CALIBRATE(A,B) (A##_AXIS_INDEX == B##_INDEX)
149
   #else
149
   #else
150
-    #define CAN_CALIBRATE(...) 1
150
+    #define CAN_CALIBRATE(A,B) 1
151
   #endif
151
   #endif
152
 #endif
152
 #endif
153
 #define AXIS_CAN_CALIBRATE(A) CAN_CALIBRATE(A,NORMAL_AXIS)
153
 #define AXIS_CAN_CALIBRATE(A) CAN_CALIBRATE(A,NORMAL_AXIS)

Loading…
Cancel
Save