From 7ee58943604446c83cde324c2793597f657de59c Mon Sep 17 00:00:00 2001
From: Scott Lahteine <github@thinkyhead.com>
Date: Sat, 17 Nov 2018 07:36:39 -0600
Subject: [PATCH] Allow float XY probe offsets
Responding to #12383
XY probe offsets should be integers because adding decimal points makes the code larger. But if decimals are very much wanted, this commit removes the old restriction.
---
Marlin/src/core/utility.cpp | 20 +++++++++++---------
Marlin/src/inc/SanityCheck.h | 3 ---
2 files changed, 11 insertions(+), 12 deletions(-)
diff --git a/Marlin/src/core/utility.cpp b/Marlin/src/core/utility.cpp
index e10d8f6a58..2de763b570 100644
--- a/Marlin/src/core/utility.cpp
+++ b/Marlin/src/core/utility.cpp
@@ -296,30 +296,32 @@ void safe_delay(millis_t ms) {
#if HAS_BED_PROBE
SERIAL_ECHOPGM("Probe Offset X:" STRINGIFY(X_PROBE_OFFSET_FROM_EXTRUDER) " Y:" STRINGIFY(Y_PROBE_OFFSET_FROM_EXTRUDER));
SERIAL_ECHOPAIR(" Z:", zprobe_zoffset);
- #if X_PROBE_OFFSET_FROM_EXTRUDER > 0
+ if ((X_PROBE_OFFSET_FROM_EXTRUDER) > 0)
SERIAL_ECHOPGM(" (Right");
- #elif X_PROBE_OFFSET_FROM_EXTRUDER < 0
+ else if ((X_PROBE_OFFSET_FROM_EXTRUDER) < 0)
SERIAL_ECHOPGM(" (Left");
- #elif Y_PROBE_OFFSET_FROM_EXTRUDER != 0
+ else if ((Y_PROBE_OFFSET_FROM_EXTRUDER) != 0)
SERIAL_ECHOPGM(" (Middle");
- #else
+ else
SERIAL_ECHOPGM(" (Aligned With");
- #endif
- #if Y_PROBE_OFFSET_FROM_EXTRUDER > 0
+
+ if ((Y_PROBE_OFFSET_FROM_EXTRUDER) > 0) {
#if IS_SCARA
SERIAL_ECHOPGM("-Distal");
#else
SERIAL_ECHOPGM("-Back");
#endif
- #elif Y_PROBE_OFFSET_FROM_EXTRUDER < 0
+ }
+ else if ((Y_PROBE_OFFSET_FROM_EXTRUDER) < 0) {
#if IS_SCARA
SERIAL_ECHOPGM("-Proximal");
#else
SERIAL_ECHOPGM("-Front");
#endif
- #elif X_PROBE_OFFSET_FROM_EXTRUDER != 0
+ }
+ else if ((X_PROBE_OFFSET_FROM_EXTRUDER) != 0)
SERIAL_ECHOPGM("-Center");
- #endif
+
if (zprobe_zoffset < 0)
SERIAL_ECHOPGM(" & Below");
else if (zprobe_zoffset > 0)
diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h
index 6396398680..9892303012 100644
--- a/Marlin/src/inc/SanityCheck.h
+++ b/Marlin/src/inc/SanityCheck.h
@@ -1009,9 +1009,6 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
#error "Z_PROBE_LOW_POINT must be less than or equal to 0."
#endif
- static_assert(int(X_PROBE_OFFSET_FROM_EXTRUDER) == (X_PROBE_OFFSET_FROM_EXTRUDER), "X_PROBE_OFFSET_FROM_EXTRUDER must be an integer value.");
- static_assert(int(Y_PROBE_OFFSET_FROM_EXTRUDER) == (Y_PROBE_OFFSET_FROM_EXTRUDER), "Y_PROBE_OFFSET_FROM_EXTRUDER must be an integer value.");
-
#else
/**
--
GitLab