Fix dipping on DELTA robots during G29

- Addressing #3689, et. al.
This commit is contained in:
Scott Lahteine 2016-05-08 18:28:46 -07:00
parent d32d9a3c5c
commit 96b71e62c0

View File

@ -343,6 +343,7 @@ static uint8_t target_extruder;
#if ENABLED(AUTO_BED_LEVELING_FEATURE) #if ENABLED(AUTO_BED_LEVELING_FEATURE)
int xy_travel_speed = XY_TRAVEL_SPEED; int xy_travel_speed = XY_TRAVEL_SPEED;
float zprobe_zoffset = Z_PROBE_OFFSET_FROM_EXTRUDER; float zprobe_zoffset = Z_PROBE_OFFSET_FROM_EXTRUDER;
bool bed_leveling_in_progress = false;
#endif #endif
#if ENABLED(Z_DUAL_ENDSTOPS) && DISABLED(DELTA) #if ENABLED(Z_DUAL_ENDSTOPS) && DISABLED(DELTA)
@ -1632,7 +1633,12 @@ static void setup_for_endstop_move() {
destination[X_AXIS] = x; destination[X_AXIS] = x;
destination[Y_AXIS] = y; destination[Y_AXIS] = y;
destination[Z_AXIS] = z; destination[Z_AXIS] = z;
prepare_move_raw(); // this will also set_current_to_destination
if (x == current_position[X_AXIS] && y == current_position[Y_AXIS])
prepare_move_raw(); // this will also set_current_to_destination
else
prepare_move(); // this will also set_current_to_destination
stepper.synchronize(); stepper.synchronize();
#else #else
@ -3238,6 +3244,8 @@ inline void gcode_G28() {
feedrate = homing_feedrate[Z_AXIS]; feedrate = homing_feedrate[Z_AXIS];
bed_leveling_in_progress = true;
#if ENABLED(AUTO_BED_LEVELING_GRID) #if ENABLED(AUTO_BED_LEVELING_GRID)
// probe at the points of a lattice grid // probe at the points of a lattice grid
@ -3585,15 +3593,17 @@ inline void gcode_G28() {
stepper.synchronize(); stepper.synchronize();
#endif #endif
KEEPALIVE_STATE(IN_HANDLER);
#if ENABLED(DEBUG_LEVELING_FEATURE) #if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) { if (DEBUGGING(LEVELING)) {
SERIAL_ECHOLNPGM("<<< gcode_G29"); SERIAL_ECHOLNPGM("<<< gcode_G29");
} }
#endif #endif
bed_leveling_in_progress = false;
report_current_position(); report_current_position();
KEEPALIVE_STATE(IN_HANDLER);
} }
#if DISABLED(Z_PROBE_SLED) // could be avoided #if DISABLED(Z_PROBE_SLED) // could be avoided
@ -7305,7 +7315,7 @@ void mesh_buffer_line(float x, float y, float z, const float e, float feed_rate,
calculate_delta(target); calculate_delta(target);
#if ENABLED(AUTO_BED_LEVELING_FEATURE) #if ENABLED(AUTO_BED_LEVELING_FEATURE)
adjust_delta(target); if (!bed_leveling_in_progress) adjust_delta(target);
#endif #endif
//DEBUG_POS("prepare_move_delta", target); //DEBUG_POS("prepare_move_delta", target);