From 54adf6f52d7f7ac4d880de46f5db9ba707d86762 Mon Sep 17 00:00:00 2001 From: nightgryphon Date: Mon, 9 Jul 2018 12:25:52 +0300 Subject: [PATCH] Shorter Z up move between multiple probing attempts For some probes like micro switches the full Z clearance raise between probing attempts is not required while bigger Z clearance between probe points is still needed to avoid clamps. The shorter Z raise within multiprobing same point significantly increase probing speed and the whole auto level process. --- Marlin/Conditionals_LCD.h | 2 +- Marlin/Conditionals_post.h | 20 +++++++++++++------- Marlin/Configuration.h | 1 + Marlin/Marlin_main.cpp | 4 ++-- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/Marlin/Conditionals_LCD.h b/Marlin/Conditionals_LCD.h index 2cd750432..a796e2466 100644 --- a/Marlin/Conditionals_LCD.h +++ b/Marlin/Conditionals_LCD.h @@ -496,7 +496,7 @@ * Set flags for enabled probes */ #define HAS_BED_PROBE (ENABLED(FIX_MOUNTED_PROBE) || ENABLED(Z_PROBE_ALLEN_KEY) || HAS_Z_SERVO_PROBE || ENABLED(Z_PROBE_SLED) || ENABLED(SOLENOID_PROBE)) -#define PROBE_SELECTED (HAS_BED_PROBE || ENABLED(PROBE_MANUALLY)) +#define PROBE_SELECTED (HAS_BED_PROBE || ENABLED(PROBE_MANUALLY) || ENABLED(MESH_BED_LEVELING)) #if !HAS_BED_PROBE // Clear probe pin settings when no probe is selected diff --git a/Marlin/Conditionals_post.h b/Marlin/Conditionals_post.h index 924ac46ba..886071257 100644 --- a/Marlin/Conditionals_post.h +++ b/Marlin/Conditionals_post.h @@ -1233,13 +1233,19 @@ #define Z_HOMING_HEIGHT Z_CLEARANCE_BETWEEN_PROBES #endif #endif -#ifndef Z_CLEARANCE_BETWEEN_PROBES - #define Z_CLEARANCE_BETWEEN_PROBES Z_HOMING_HEIGHT -#endif -#if Z_CLEARANCE_BETWEEN_PROBES > Z_HOMING_HEIGHT - #define MANUAL_PROBE_HEIGHT Z_CLEARANCE_BETWEEN_PROBES -#else - #define MANUAL_PROBE_HEIGHT Z_HOMING_HEIGHT + +#if PROBE_SELECTED + #ifndef Z_CLEARANCE_BETWEEN_PROBES + #define Z_CLEARANCE_BETWEEN_PROBES Z_HOMING_HEIGHT + #endif + #if Z_CLEARANCE_BETWEEN_PROBES > Z_HOMING_HEIGHT + #define MANUAL_PROBE_HEIGHT Z_CLEARANCE_BETWEEN_PROBES + #else + #define MANUAL_PROBE_HEIGHT Z_HOMING_HEIGHT + #endif + #ifndef Z_CLEARANCE_MULTI_PROBE + #define Z_CLEARANCE_MULTI_PROBE Z_CLEARANCE_BETWEEN_PROBES + #endif #endif // Updated G92 behavior shifts the workspace diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 8f8e24743..6cb849cbb 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -779,6 +779,7 @@ */ #define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow #define Z_CLEARANCE_BETWEEN_PROBES 5 // Z Clearance between probe points +#define Z_CLEARANCE_MULTI_PROBE 5 // Z Clearance between multiple probes //#define Z_AFTER_PROBING 5 // Z position after probing is done #define Z_PROBE_LOW_POINT -2 // Farthest distance below the trigger-point to go before stopping diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 023d4964c..645f2a2aa 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -2294,7 +2294,7 @@ void clean_up_after_endstop_or_probe_move() { #endif // move up to make clearance for the probe - do_blocking_move_to_z(current_position[Z_AXIS] + Z_CLEARANCE_BETWEEN_PROBES, MMM_TO_MMS(Z_PROBE_SPEED_FAST)); + do_blocking_move_to_z(current_position[Z_AXIS] + Z_CLEARANCE_MULTI_PROBE, MMM_TO_MMS(Z_PROBE_SPEED_FAST)); #else @@ -2328,7 +2328,7 @@ void clean_up_after_endstop_or_probe_move() { #if MULTIPLE_PROBING > 2 probes_total += current_position[Z_AXIS]; - if (p > 1) do_blocking_move_to_z(current_position[Z_AXIS] + Z_CLEARANCE_BETWEEN_PROBES, MMM_TO_MMS(Z_PROBE_SPEED_FAST)); + if (p > 1) do_blocking_move_to_z(current_position[Z_AXIS] + Z_CLEARANCE_MULTI_PROBE, MMM_TO_MMS(Z_PROBE_SPEED_FAST)); } #endif