Add NOZZLE_AS_PROBE (no probe offsets) (#15929)
This commit is contained in:
committed by
Scott Lahteine
parent
9c021158e5
commit
1c9ccce520
@ -855,6 +855,12 @@
|
||||
*/
|
||||
//#define FIX_MOUNTED_PROBE
|
||||
|
||||
/**
|
||||
* Use the nozzle as the probe, as with a conductive
|
||||
* nozzle system or a piezo-electric smart effector.
|
||||
*/
|
||||
//#define NOZZLE_AS_PROBE
|
||||
|
||||
/**
|
||||
* Z Servo Probe, such as an endstop switch on a rotating arm.
|
||||
*/
|
||||
|
@ -59,6 +59,8 @@ void safe_delay(millis_t ms) {
|
||||
SERIAL_ECHOLNPGM("Probe: "
|
||||
#if ENABLED(PROBE_MANUALLY)
|
||||
"PROBE_MANUALLY"
|
||||
#elif ENABLED(NOZZLE_AS_PROBE)
|
||||
"NOZZLE_AS_PROBE"
|
||||
#elif ENABLED(FIX_MOUNTED_PROBE)
|
||||
"FIX_MOUNTED_PROBE"
|
||||
#elif ENABLED(BLTOUCH)
|
||||
|
@ -403,13 +403,14 @@ G29_TYPE GcodeSuite::G29() {
|
||||
}
|
||||
else {
|
||||
probe_position_lf.set(
|
||||
parser.seenval('L') ? (int)RAW_X_POSITION(parser.value_linear_units()) : _MAX(X_CENTER - (X_BED_SIZE) / 2, x_min),
|
||||
parser.seenval('F') ? (int)RAW_Y_POSITION(parser.value_linear_units()) : _MAX(Y_CENTER - (Y_BED_SIZE) / 2, y_min)
|
||||
parser.seenval('L') ? (int)RAW_X_POSITION(parser.value_linear_units()) : (_MAX(x_min, X_CENTER - (X_BED_SIZE) / 2) + MIN_PROBE_EDGE_LEFT),
|
||||
parser.seenval('F') ? (int)RAW_Y_POSITION(parser.value_linear_units()) : (_MAX(y_min, Y_CENTER - (Y_BED_SIZE) / 2) + MIN_PROBE_EDGE_FRONT)
|
||||
);
|
||||
probe_position_rb.set(
|
||||
parser.seenval('R') ? (int)RAW_X_POSITION(parser.value_linear_units()) : _MIN(probe_position_lf.x + X_BED_SIZE, x_max),
|
||||
parser.seenval('B') ? (int)RAW_Y_POSITION(parser.value_linear_units()) : _MIN(probe_position_lf.y + Y_BED_SIZE, y_max)
|
||||
parser.seenval('R') ? (int)RAW_X_POSITION(parser.value_linear_units()) : (_MIN(x_max, probe_position_lf.x + X_BED_SIZE) - MIN_PROBE_EDGE_RIGHT),
|
||||
parser.seenval('B') ? (int)RAW_Y_POSITION(parser.value_linear_units()) : (_MIN(y_max, probe_position_lf.y + Y_BED_SIZE) - MIN_PROBE_EDGE_BACK)
|
||||
);
|
||||
SERIAL_ECHOLN("Set Trail 1");
|
||||
}
|
||||
|
||||
if (
|
||||
|
@ -496,7 +496,7 @@
|
||||
/**
|
||||
* Set flags for enabled probes
|
||||
*/
|
||||
#define HAS_BED_PROBE (HAS_Z_SERVO_PROBE || ANY(FIX_MOUNTED_PROBE, TOUCH_MI_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, SOLENOID_PROBE, SENSORLESS_PROBING, RACK_AND_PINION_PROBE))
|
||||
#define HAS_BED_PROBE (HAS_Z_SERVO_PROBE || ANY(FIX_MOUNTED_PROBE, NOZZLE_AS_PROBE, TOUCH_MI_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, SOLENOID_PROBE, SENSORLESS_PROBING, RACK_AND_PINION_PROBE))
|
||||
#define PROBE_SELECTED (HAS_BED_PROBE || EITHER(PROBE_MANUALLY, MESH_BED_LEVELING))
|
||||
|
||||
#if HAS_BED_PROBE
|
||||
|
@ -1483,6 +1483,10 @@
|
||||
#undef MIN_PROBE_EDGE_RIGHT
|
||||
#undef MIN_PROBE_EDGE_FRONT
|
||||
#undef MIN_PROBE_EDGE_BACK
|
||||
#define MIN_PROBE_EDGE_LEFT 0
|
||||
#define MIN_PROBE_EDGE_RIGHT 0
|
||||
#define MIN_PROBE_EDGE_FRONT 0
|
||||
#define MIN_PROBE_EDGE_BACK 0
|
||||
#else
|
||||
#ifndef MIN_PROBE_EDGE_LEFT
|
||||
#define MIN_PROBE_EDGE_LEFT MIN_PROBE_EDGE
|
||||
|
@ -1082,6 +1082,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#if 1 < 0 \
|
||||
+ ENABLED(PROBE_MANUALLY) \
|
||||
+ ENABLED(FIX_MOUNTED_PROBE) \
|
||||
+ ENABLED(NOZZLE_AS_PROBE) \
|
||||
+ (HAS_Z_SERVO_PROBE && DISABLED(BLTOUCH)) \
|
||||
+ ENABLED(BLTOUCH) \
|
||||
+ ENABLED(TOUCH_MI_PROBE) \
|
||||
@ -1090,7 +1091,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
+ ENABLED(Z_PROBE_SLED) \
|
||||
+ ENABLED(RACK_AND_PINION_PROBE) \
|
||||
+ ENABLED(SENSORLESS_PROBING)
|
||||
#error "Please enable only one probe option: PROBE_MANUALLY, SENSORLESS_PROBING, BLTOUCH, FIX_MOUNTED_PROBE, TOUCH_MI_PROBE, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
|
||||
#error "Please enable only one probe option: PROBE_MANUALLY, SENSORLESS_PROBING, BLTOUCH, FIX_MOUNTED_PROBE, NOZZLE_AS_PROBE, TOUCH_MI_PROBE, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
|
||||
#endif
|
||||
|
||||
#if HAS_BED_PROBE
|
||||
@ -1221,11 +1222,11 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
* Require some kind of probe for bed leveling and probe testing
|
||||
*/
|
||||
#if HAS_ABL_NOT_UBL && !PROBE_SELECTED
|
||||
#error "Auto Bed Leveling requires one of these: PROBE_MANUALLY, FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or a Z Servo."
|
||||
#error "Auto Bed Leveling requires one of these: PROBE_MANUALLY, FIX_MOUNTED_PROBE, NOZZLE_AS_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or a Z Servo."
|
||||
#endif
|
||||
|
||||
#if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
|
||||
#error "Z_MIN_PROBE_REPEATABILITY_TEST requires a probe: FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
|
||||
#error "Z_MIN_PROBE_REPEATABILITY_TEST requires a probe: FIX_MOUNTED_PROBE, NOZZLE_AS_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -358,7 +358,7 @@ bool set_probe_deployed(const bool deploy) {
|
||||
// Make room for probe to deploy (or stow)
|
||||
// Fix-mounted probe should only raise for deploy
|
||||
// unless PAUSE_BEFORE_DEPLOY_STOW is enabled
|
||||
#if ENABLED(FIX_MOUNTED_PROBE) && DISABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
#if EITHER(FIX_MOUNTED_PROBE, NOZZLE_AS_PROBE) && DISABLED(PAUSE_BEFORE_DEPLOY_STOW)
|
||||
const bool deploy_stow_condition = deploy;
|
||||
#else
|
||||
constexpr bool deploy_stow_condition = true;
|
||||
|
@ -85,6 +85,8 @@
|
||||
return (
|
||||
#if IS_KINEMATIC
|
||||
(X_CENTER) - probe_radius()
|
||||
#elif ENABLED(NOZZLE_AS_PROBE)
|
||||
_MAX(MIN_PROBE_EDGE_LEFT, X_MIN_POS)
|
||||
#else
|
||||
_MAX((X_MIN_BED) + (MIN_PROBE_EDGE_LEFT), (X_MIN_POS) + probe_offset.x)
|
||||
#endif
|
||||
@ -94,6 +96,8 @@
|
||||
return (
|
||||
#if IS_KINEMATIC
|
||||
(X_CENTER) + probe_radius()
|
||||
#elif ENABLED(NOZZLE_AS_PROBE)
|
||||
_MAX(MIN_PROBE_EDGE_RIGHT, X_MAX_POS)
|
||||
#else
|
||||
_MIN((X_MAX_BED) - (MIN_PROBE_EDGE_RIGHT), (X_MAX_POS) + probe_offset.x)
|
||||
#endif
|
||||
@ -103,6 +107,8 @@
|
||||
return (
|
||||
#if IS_KINEMATIC
|
||||
(Y_CENTER) - probe_radius()
|
||||
#elif ENABLED(NOZZLE_AS_PROBE)
|
||||
_MIN(MIN_PROBE_EDGE_FRONT, Y_MIN_POS)
|
||||
#else
|
||||
_MAX((Y_MIN_BED) + (MIN_PROBE_EDGE_FRONT), (Y_MIN_POS) + probe_offset.y)
|
||||
#endif
|
||||
@ -112,6 +118,8 @@
|
||||
return (
|
||||
#if IS_KINEMATIC
|
||||
(Y_CENTER) + probe_radius()
|
||||
#elif ENABLED(NOZZLE_AS_PROBE)
|
||||
_MAX(MIN_PROBE_EDGE_BACK, Y_MAX_POS)
|
||||
#else
|
||||
_MIN((Y_MAX_BED) - (MIN_PROBE_EDGE_BACK), (Y_MAX_POS) + probe_offset.y)
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user