set_current_position_from_planner() after stepper.quick_stop()
This commit is contained in:
parent
381bc6f0b0
commit
6277395e1e
@ -225,6 +225,7 @@ void ok_to_send();
|
|||||||
|
|
||||||
void reset_bed_level();
|
void reset_bed_level();
|
||||||
void prepare_move();
|
void prepare_move();
|
||||||
|
void set_current_position_from_planner();
|
||||||
void kill(const char*);
|
void kill(const char*);
|
||||||
|
|
||||||
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
|
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
|
||||||
|
@ -5889,13 +5889,31 @@ inline void gcode_M400() { stepper.synchronize(); }
|
|||||||
|
|
||||||
#endif // FILAMENT_WIDTH_SENSOR
|
#endif // FILAMENT_WIDTH_SENSOR
|
||||||
|
|
||||||
|
void set_current_position_from_planner() {
|
||||||
|
stepper.synchronize();
|
||||||
|
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
||||||
|
vector_3 pos = planner.adjusted_position(); // values directly from steppers...
|
||||||
|
current_position[X_AXIS] = pos.x;
|
||||||
|
current_position[Y_AXIS] = pos.y;
|
||||||
|
current_position[Z_AXIS] = pos.z;
|
||||||
|
#else
|
||||||
|
current_position[X_AXIS] = stepper.get_axis_position_mm(X_AXIS);
|
||||||
|
current_position[Y_AXIS] = stepper.get_axis_position_mm(Y_AXIS);
|
||||||
|
current_position[Z_AXIS] = stepper.get_axis_position_mm(Z_AXIS);
|
||||||
|
#endif
|
||||||
|
sync_plan_position(); // ...re-apply to planner position
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* M410: Quickstop - Abort all planned moves
|
* M410: Quickstop - Abort all planned moves
|
||||||
*
|
*
|
||||||
* This will stop the carriages mid-move, so most likely they
|
* This will stop the carriages mid-move, so most likely they
|
||||||
* will be out of sync with the stepper position after this.
|
* will be out of sync with the stepper position after this.
|
||||||
*/
|
*/
|
||||||
inline void gcode_M410() { stepper.quick_stop(); }
|
inline void gcode_M410() {
|
||||||
|
stepper.quick_stop();
|
||||||
|
set_current_position_from_planner();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#if ENABLED(MESH_BED_LEVELING)
|
#if ENABLED(MESH_BED_LEVELING)
|
||||||
|
@ -187,6 +187,7 @@ void Endstops::report_state() {
|
|||||||
card.sdprinting = false;
|
card.sdprinting = false;
|
||||||
card.closefile();
|
card.closefile();
|
||||||
stepper.quick_stop();
|
stepper.quick_stop();
|
||||||
|
set_current_position_from_planner();
|
||||||
thermalManager.disable_all_heaters(); // switch off all heaters.
|
thermalManager.disable_all_heaters(); // switch off all heaters.
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -482,6 +482,7 @@ inline void line_to_current(AxisEnum axis) {
|
|||||||
|
|
||||||
static void lcd_sdcard_stop() {
|
static void lcd_sdcard_stop() {
|
||||||
stepper.quick_stop();
|
stepper.quick_stop();
|
||||||
|
set_current_position_from_planner();
|
||||||
card.sdprinting = false;
|
card.sdprinting = false;
|
||||||
card.closefile();
|
card.closefile();
|
||||||
print_job_timer.stop();
|
print_job_timer.stop();
|
||||||
|
Loading…
Reference in New Issue
Block a user