diff --git a/Marlin/src/gcode/bedlevel/abl/G29.cpp b/Marlin/src/gcode/bedlevel/abl/G29.cpp index 5fd9745d9..4d6206c6a 100644 --- a/Marlin/src/gcode/bedlevel/abl/G29.cpp +++ b/Marlin/src/gcode/bedlevel/abl/G29.cpp @@ -360,8 +360,17 @@ void GcodeSuite::G29() { front_probe_bed_position = parser.seenval('F') ? (int)RAW_Y_POSITION(parser.value_linear_units()) : FRONT_PROBE_BED_POSITION; back_probe_bed_position = parser.seenval('B') ? (int)RAW_Y_POSITION(parser.value_linear_units()) : BACK_PROBE_BED_POSITION; - if ( !position_is_reachable_by_probe(left_probe_bed_position, front_probe_bed_position) - || !position_is_reachable_by_probe(right_probe_bed_position, back_probe_bed_position)) { + if ( + #if IS_SCARA || ENABLED(DELTA) + !position_is_reachable_by_probe(left_probe_bed_position, 0) + || !position_is_reachable_by_probe(right_probe_bed_position, 0) + || !position_is_reachable_by_probe(0, front_probe_bed_position) + || !position_is_reachable_by_probe(0, back_probe_bed_position) + #else + !position_is_reachable_by_probe(left_probe_bed_position, front_probe_bed_position) + || !position_is_reachable_by_probe(right_probe_bed_position, back_probe_bed_position) + #endif + ) { SERIAL_PROTOCOLLNPGM("? (L,R,F,B) out of bounds."); return; }