Add Planner::sync_from_steppers
Use to sync the planner after an interrupted move (when not overriding the logical position).
This commit is contained in:
parent
be11a8a938
commit
6b9bf8e8fe
3 changed files with 15 additions and 3 deletions
|
@ -1996,12 +1996,12 @@ static void clean_up_after_endstop_or_probe_move() {
|
||||||
// Clear endstop flags
|
// Clear endstop flags
|
||||||
endstops.hit_on_purpose();
|
endstops.hit_on_purpose();
|
||||||
|
|
||||||
|
// Tell the planner where we actually are
|
||||||
|
planner.sync_from_steppers();
|
||||||
|
|
||||||
// Get Z where the steppers were interrupted
|
// Get Z where the steppers were interrupted
|
||||||
set_current_from_steppers_for_axis(Z_AXIS);
|
set_current_from_steppers_for_axis(Z_AXIS);
|
||||||
|
|
||||||
// Tell the planner where we actually are
|
|
||||||
SYNC_PLAN_POSITION_KINEMATIC();
|
|
||||||
|
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
||||||
if (DEBUGGING(LEVELING)) DEBUG_POS("<<< do_probe_move", current_position);
|
if (DEBUGGING(LEVELING)) DEBUG_POS("<<< do_probe_move", current_position);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1210,6 +1210,13 @@ void Planner::set_position_mm(ARG_X, ARG_Y, ARG_Z, const float &e) {
|
||||||
LOOP_XYZE(i) previous_speed[i] = 0.0;
|
LOOP_XYZE(i) previous_speed[i] = 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sync from the stepper positions. (e.g., after an interrupted move)
|
||||||
|
*/
|
||||||
|
void Planner::sync_from_steppers() {
|
||||||
|
LOOP_XYZE(i) position[i] = stepper.position((AxisEnum)i);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Directly set the planner E position (hence the stepper E position).
|
* Directly set the planner E position (hence the stepper E position).
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -242,6 +242,11 @@ class Planner {
|
||||||
*/
|
*/
|
||||||
static void set_position_mm(ARG_X, ARG_Y, ARG_Z, const float& e);
|
static void set_position_mm(ARG_X, ARG_Y, ARG_Z, const float& e);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sync from the stepper positions. (e.g., after an interrupted move)
|
||||||
|
*/
|
||||||
|
static void sync_from_steppers();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the E position (mm) of the planner (and the E stepper)
|
* Set the E position (mm) of the planner (and the E stepper)
|
||||||
*/
|
*/
|
||||||
|
|
Reference in a new issue