Browse Source

Merge pull request #4398 from thinkyhead/rc_z_safe_sanity

Sanity checks for Z_SAFE_HOMING
Scott Lahteine 9 years ago
parent
commit
450fe8134d
2 changed files with 18 additions and 7 deletions
  1. 5
    7
      Marlin/Conditionals.h
  2. 13
    0
      Marlin/SanityCheck.h

+ 5
- 7
Marlin/Conditionals.h View File

388
    */
388
    */
389
   #define HAS_PROBING_PROCEDURE (ENABLED(AUTO_BED_LEVELING_FEATURE) || ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST))
389
   #define HAS_PROBING_PROCEDURE (ENABLED(AUTO_BED_LEVELING_FEATURE) || ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST))
390
 
390
 
391
-  #if HAS_PROBING_PROCEDURE
392
-    // Boundaries for probing based on set limits
393
-    #define MIN_PROBE_X (max(X_MIN_POS, X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER))
394
-    #define MAX_PROBE_X (min(X_MAX_POS, X_MAX_POS + X_PROBE_OFFSET_FROM_EXTRUDER))
395
-    #define MIN_PROBE_Y (max(Y_MIN_POS, Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
396
-    #define MAX_PROBE_Y (min(Y_MAX_POS, Y_MAX_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
397
-  #endif
391
+  // Boundaries for probing based on set limits
392
+  #define MIN_PROBE_X (max(X_MIN_POS, X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER))
393
+  #define MAX_PROBE_X (min(X_MAX_POS, X_MAX_POS + X_PROBE_OFFSET_FROM_EXTRUDER))
394
+  #define MIN_PROBE_Y (max(Y_MIN_POS, Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
395
+  #define MAX_PROBE_Y (min(Y_MAX_POS, Y_MAX_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
398
 
396
 
399
   #define HAS_Z_SERVO_ENDSTOP (defined(Z_ENDSTOP_SERVO_NR) && Z_ENDSTOP_SERVO_NR >= 0)
397
   #define HAS_Z_SERVO_ENDSTOP (defined(Z_ENDSTOP_SERVO_NR) && Z_ENDSTOP_SERVO_NR >= 0)
400
 
398
 

+ 13
- 0
Marlin/SanityCheck.h View File

353
     #error "AUTO_BED_LEVELING_FEATURE requires a probe! Define a Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
353
     #error "AUTO_BED_LEVELING_FEATURE requires a probe! Define a Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
354
   #elif ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
354
   #elif ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
355
     #error "Z_MIN_PROBE_REPEATABILITY_TEST requires a probe! Define a Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
355
     #error "Z_MIN_PROBE_REPEATABILITY_TEST requires a probe! Define a Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
356
+  #elif ENABLED(Z_SAFE_HOMING)
357
+    #error "Z_SAFE_HOMING currently requires a probe."
356
   #endif
358
   #endif
357
 
359
 
358
 #endif
360
 #endif
359
 
361
 
360
 /**
362
 /**
363
+ * Make sure Z_SAFE_HOMING point is reachable
364
+ */
365
+#if ENABLED(Z_SAFE_HOMING)
366
+  #if Z_SAFE_HOMING_X_POINT < MIN_PROBE_X || Z_SAFE_HOMING_X_POINT > MAX_PROBE_X
367
+    #error "The given Z_SAFE_HOMING_X_POINT can't be reached by the Z probe."
368
+  #elif Z_SAFE_HOMING_Y_POINT < MIN_PROBE_Y || Z_SAFE_HOMING_Y_POINT > MAX_PROBE_Y
369
+    #error "The given Z_SAFE_HOMING_Y_POINT can't be reached by the Z probe."
370
+  #endif
371
+#endif // Z_SAFE_HOMING
372
+
373
+/**
361
  * Auto Bed Leveling
374
  * Auto Bed Leveling
362
  */
375
  */
363
 #if ENABLED(AUTO_BED_LEVELING_FEATURE)
376
 #if ENABLED(AUTO_BED_LEVELING_FEATURE)

Loading…
Cancel
Save