axis_known_position -> axis_homed
In all these cases we want the axis to be homed. If we could have lost some steps is secondary. Reenables homing seperate axis with DISABLE_X / DISABLE_Y true.
This commit is contained in:
@@ -1848,7 +1848,7 @@ static void setup_for_endstop_move() {
|
||||
float zpos = current_position[Z_AXIS], z_dest = Z_RAISE_BEFORE_PROBING;
|
||||
// The zprobe_zoffset is negative any switch below the nozzle, so
|
||||
// multiply by Z_HOME_DIR (-1) to move enough away from bed for the probe
|
||||
z_dest += axis_known_position[Z_AXIS] ? zprobe_zoffset * Z_HOME_DIR : zpos;
|
||||
z_dest += axis_homed[Z_AXIS] ? zprobe_zoffset * Z_HOME_DIR : zpos;
|
||||
if (zpos < z_dest) do_blocking_move_to_z(z_dest); // also updates current_position
|
||||
}
|
||||
|
||||
@@ -1856,10 +1856,10 @@ static void setup_for_endstop_move() {
|
||||
|
||||
#endif // AUTO_BED_LEVELING_FEATURE
|
||||
|
||||
static void unknown_position_error() {
|
||||
LCD_MESSAGEPGM(MSG_POSITION_UNKNOWN);
|
||||
static void axis_unhomed_error() {
|
||||
LCD_MESSAGEPGM(MSG_YX_UNHOMED);
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_ECHOLNPGM(MSG_POSITION_UNKNOWN);
|
||||
SERIAL_ECHOLNPGM(MSG_YX_UNHOMED);
|
||||
}
|
||||
|
||||
#if ENABLED(Z_PROBE_SLED)
|
||||
@@ -1884,8 +1884,8 @@ static void unknown_position_error() {
|
||||
|
||||
if (z_probe_is_active == dock) return;
|
||||
|
||||
if (!axis_known_position[X_AXIS] || !axis_known_position[Y_AXIS]) {
|
||||
unknown_position_error();
|
||||
if (!axis_homed[X_AXIS] || !axis_homed[Y_AXIS]) {
|
||||
axis_unhomed_error();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2616,7 +2616,7 @@ inline void gcode_G28() {
|
||||
else if (homeZ) { // Don't need to Home Z twice
|
||||
|
||||
// Let's see if X and Y are homed
|
||||
if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS]) {
|
||||
if (axis_homed[X_AXIS] && axis_homed[Y_AXIS]) {
|
||||
|
||||
// Make sure the Z probe is within the physical limits
|
||||
// NOTE: This doesn't necessarily ensure the Z probe is also within the bed!
|
||||
@@ -2636,7 +2636,7 @@ inline void gcode_G28() {
|
||||
}
|
||||
}
|
||||
else {
|
||||
unknown_position_error();
|
||||
axis_unhomed_error();
|
||||
}
|
||||
|
||||
} // !home_all_axes && homeZ
|
||||
@@ -2908,8 +2908,8 @@ inline void gcode_G28() {
|
||||
#endif
|
||||
|
||||
// Don't allow auto-leveling without homing first
|
||||
if (!axis_known_position[X_AXIS] || !axis_known_position[Y_AXIS]) {
|
||||
unknown_position_error();
|
||||
if (!axis_homed[X_AXIS] || !axis_homed[Y_AXIS]) {
|
||||
axis_unhomed_error();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -3711,8 +3711,8 @@ inline void gcode_M42() {
|
||||
*/
|
||||
inline void gcode_M48() {
|
||||
|
||||
if (!axis_known_position[X_AXIS] || !axis_known_position[Y_AXIS] || !axis_known_position[Z_AXIS]) {
|
||||
unknown_position_error();
|
||||
if (!axis_homed[X_AXIS] || !axis_homed[Y_AXIS] || !axis_homed[Z_AXIS]) {
|
||||
axis_unhomed_error();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -5431,7 +5431,7 @@ inline void gcode_M428() {
|
||||
memcpy(new_pos, current_position, sizeof(new_pos));
|
||||
memcpy(new_offs, home_offset, sizeof(new_offs));
|
||||
for (int8_t i = X_AXIS; i <= Z_AXIS; i++) {
|
||||
if (axis_known_position[i]) {
|
||||
if (axis_homed[i]) {
|
||||
float base = (new_pos[i] > (min_pos[i] + max_pos[i]) / 2) ? base_home_pos(i) : 0,
|
||||
diff = new_pos[i] - base;
|
||||
if (diff > -20 && diff < 20) {
|
||||
|
Reference in New Issue
Block a user