Skip to content

Commit 585288f

Browse files
committed
test axis in CAN_CALIBRATE
1 parent 797ecd1 commit 585288f

File tree

3 files changed

+27
-24
lines changed

3 files changed

+27
-24
lines changed

Marlin/src/gcode/calibrate/G425.cpp

+18-18
Original file line numberDiff line numberDiff line change
@@ -271,33 +271,33 @@ inline void probe_side(measurements_t &m, const float uncertainty, const side_t
271271
#if AXIS_CAN_CALIBRATE(X)
272272
_ACASE(X, RIGHT, LEFT);
273273
#endif
274-
#if HAS_Y_AXIS && AXIS_CAN_CALIBRATE(Y)
274+
#if AXIS_CAN_CALIBRATE(Y)
275275
_ACASE(Y, BACK, FRONT);
276276
#endif
277-
#if HAS_Z_AXIS && AXIS_CAN_CALIBRATE(Z)
277+
#if AXIS_CAN_CALIBRATE(Z)
278278
case TOP: {
279279
const float measurement = measure(Z_AXIS, -1, true, &m.backlash[TOP], uncertainty);
280280
m.obj_center.z = measurement - dimensions.z / 2;
281281
m.obj_side[TOP] = measurement;
282282
return;
283283
}
284284
#endif
285-
#if HAS_I_AXIS && AXIS_CAN_CALIBRATE(I)
285+
#if AXIS_CAN_CALIBRATE(I)
286286
_PCASE(I);
287287
#endif
288-
#if HAS_J_AXIS && AXIS_CAN_CALIBRATE(J)
288+
#if AXIS_CAN_CALIBRATE(J)
289289
_PCASE(J);
290290
#endif
291-
#if HAS_K_AXIS && AXIS_CAN_CALIBRATE(K)
291+
#if AXIS_CAN_CALIBRATE(K)
292292
_PCASE(K);
293293
#endif
294-
#if HAS_U_AXIS && AXIS_CAN_CALIBRATE(U)
294+
#if AXIS_CAN_CALIBRATE(U)
295295
_PCASE(U);
296296
#endif
297-
#if HAS_V_AXIS && AXIS_CAN_CALIBRATE(V)
297+
#if AXIS_CAN_CALIBRATE(V)
298298
_PCASE(V);
299299
#endif
300-
#if HAS_W_AXIS && AXIS_CAN_CALIBRATE(W)
300+
#if AXIS_CAN_CALIBRATE(W)
301301
_PCASE(W);
302302
#endif
303303
default: return;
@@ -395,7 +395,7 @@ inline void probe_sides(measurements_t &m, const float uncertainty) {
395395
#if ENABLED(CALIBRATION_REPORTING)
396396
inline void report_measured_faces(const measurements_t &m) {
397397
SERIAL_ECHOLNPGM("Sides:");
398-
#if HAS_Z_AXIS && AXIS_CAN_CALIBRATE(Z)
398+
#if AXIS_CAN_CALIBRATE(Z)
399399
SERIAL_ECHOLNPGM(" Top: ", m.obj_side[TOP]);
400400
#endif
401401
#if ENABLED(CALIBRATION_MEASURE_LEFT)
@@ -503,58 +503,58 @@ inline void probe_sides(measurements_t &m, const float uncertainty) {
503503
SERIAL_ECHOLNPGM(" Right: ", m.backlash[RIGHT]);
504504
#endif
505505
#endif
506-
#if HAS_Y_AXIS && AXIS_CAN_CALIBRATE(Y)
506+
#if AXIS_CAN_CALIBRATE(Y)
507507
#if ENABLED(CALIBRATION_MEASURE_FRONT)
508508
SERIAL_ECHOLNPGM(" Front: ", m.backlash[FRONT]);
509509
#endif
510510
#if ENABLED(CALIBRATION_MEASURE_BACK)
511511
SERIAL_ECHOLNPGM(" Back: ", m.backlash[BACK]);
512512
#endif
513513
#endif
514-
#if HAS_Z_AXIS && AXIS_CAN_CALIBRATE(Z)
514+
#if AXIS_CAN_CALIBRATE(Z)
515515
SERIAL_ECHOLNPGM(" Top: ", m.backlash[TOP]);
516516
#endif
517-
#if HAS_I_AXIS && AXIS_CAN_CALIBRATE(I)
517+
#if AXIS_CAN_CALIBRATE(I)
518518
#if ENABLED(CALIBRATION_MEASURE_IMIN)
519519
SERIAL_ECHOLNPGM(" " STR_I_MIN ": ", m.backlash[IMINIMUM]);
520520
#endif
521521
#if ENABLED(CALIBRATION_MEASURE_IMAX)
522522
SERIAL_ECHOLNPGM(" " STR_I_MAX ": ", m.backlash[IMAXIMUM]);
523523
#endif
524524
#endif
525-
#if HAS_J_AXIS && AXIS_CAN_CALIBRATE(J)
525+
#if AXIS_CAN_CALIBRATE(J)
526526
#if ENABLED(CALIBRATION_MEASURE_JMIN)
527527
SERIAL_ECHOLNPGM(" " STR_J_MIN ": ", m.backlash[JMINIMUM]);
528528
#endif
529529
#if ENABLED(CALIBRATION_MEASURE_JMAX)
530530
SERIAL_ECHOLNPGM(" " STR_J_MAX ": ", m.backlash[JMAXIMUM]);
531531
#endif
532532
#endif
533-
#if HAS_K_AXIS && AXIS_CAN_CALIBRATE(K)
533+
#if AXIS_CAN_CALIBRATE(K)
534534
#if ENABLED(CALIBRATION_MEASURE_KMIN)
535535
SERIAL_ECHOLNPGM(" " STR_K_MIN ": ", m.backlash[KMINIMUM]);
536536
#endif
537537
#if ENABLED(CALIBRATION_MEASURE_KMAX)
538538
SERIAL_ECHOLNPGM(" " STR_K_MAX ": ", m.backlash[KMAXIMUM]);
539539
#endif
540540
#endif
541-
#if HAS_U_AXIS && AXIS_CAN_CALIBRATE(U)
541+
#if AXIS_CAN_CALIBRATE(U)
542542
#if ENABLED(CALIBRATION_MEASURE_UMIN)
543543
SERIAL_ECHOLNPGM(" " STR_U_MIN ": ", m.backlash[UMINIMUM]);
544544
#endif
545545
#if ENABLED(CALIBRATION_MEASURE_UMAX)
546546
SERIAL_ECHOLNPGM(" " STR_U_MAX ": ", m.backlash[UMAXIMUM]);
547547
#endif
548548
#endif
549-
#if HAS_V_AXIS && AXIS_CAN_CALIBRATE(V)
549+
#if AXIS_CAN_CALIBRATE(V)
550550
#if ENABLED(CALIBRATION_MEASURE_VMIN)
551551
SERIAL_ECHOLNPGM(" " STR_V_MIN ": ", m.backlash[VMINIMUM]);
552552
#endif
553553
#if ENABLED(CALIBRATION_MEASURE_VMAX)
554554
SERIAL_ECHOLNPGM(" " STR_V_MAX ": ", m.backlash[VMAXIMUM]);
555555
#endif
556556
#endif
557-
#if HAS_W_AXIS && AXIS_CAN_CALIBRATE(W)
557+
#if AXIS_CAN_CALIBRATE(W)
558558
#if ENABLED(CALIBRATION_MEASURE_WMIN)
559559
SERIAL_ECHOLNPGM(" " STR_W_MIN ": ", m.backlash[WMINIMUM]);
560560
#endif
@@ -575,7 +575,7 @@ inline void probe_sides(measurements_t &m, const float uncertainty) {
575575
#if HAS_Y_CENTER && AXIS_CAN_CALIBRATE(Y)
576576
SERIAL_ECHOLNPGM_P(SP_Y_STR, m.pos_error.y);
577577
#endif
578-
#if HAS_Z_AXIS && AXIS_CAN_CALIBRATE(Z)
578+
#if AXIS_CAN_CALIBRATE(Z)
579579
SERIAL_ECHOLNPGM_P(SP_Z_STR, m.pos_error.z);
580580
#endif
581581
#if HAS_I_CENTER && AXIS_CAN_CALIBRATE(I)

Marlin/src/gcode/calibrate/M425.cpp

+4-3
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,13 @@
4646
void GcodeSuite::M425() {
4747
bool noArgs = true;
4848

49-
auto axis_can_calibrate = [](const uint8_t a) {
50-
#define _CAN_CASE(N) case N##_AXIS: return AXIS_CAN_CALIBRATE(N);
49+
auto axis_can_calibrate = [](const uint8_t a) -> bool {
50+
#define _CAN_CASE(N) case N##_AXIS: return bool(AXIS_CAN_CALIBRATE(N));
5151
switch (a) {
52-
default: return false;
5352
MAIN_AXIS_MAP(_CAN_CASE)
53+
default: break;
5454
}
55+
return false;
5556
};
5657

5758
LOOP_NUM_AXES(a) {

Marlin/src/inc/Conditionals_post.h

+5-3
Original file line numberDiff line numberDiff line change
@@ -255,12 +255,14 @@
255255
// Calibration codes only for non-core axes
256256
#if EITHER(BACKLASH_GCODE, CALIBRATION_GCODE)
257257
#if ANY(IS_CORE, MARKFORGED_XY, MARKFORGED_YX)
258-
#define CAN_CALIBRATE(A,B) (_AXIS(A) == B)
258+
#define CAN_CALIBRATE(A,B) TERN0(HAS_##A##_AXIS, (_AXIS(A) == B))
259259
#else
260-
#define CAN_CALIBRATE(A,B) true
260+
#define CAN_CALIBRATE(A,B) ENABLED(HAS_##A##_AXIS)
261261
#endif
262+
#define AXIS_CAN_CALIBRATE(A) CAN_CALIBRATE(A,NORMAL_AXIS)
263+
#else
264+
#define AXIS_CAN_CALIBRATE(A) false
262265
#endif
263-
#define AXIS_CAN_CALIBRATE(A) CAN_CALIBRATE(A,NORMAL_AXIS)
264266

265267
/**
266268
* No adjustable bed on non-cartesians

0 commit comments

Comments
 (0)