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:
AnHardt
2016-03-25 14:05:20 +01:00
parent 122bdd187f
commit 94962ee678
24 changed files with 37 additions and 37 deletions

View File

@@ -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) {