Merge pull request #6021 from Bob-the-Kuhn/BUG-FIX--Switching-extruder-tool-change-Z-height
Bug Fix: Switching extruder tool change leaves Z in wrong position
This commit is contained in:
commit
0b22069e82
@ -7385,7 +7385,7 @@ inline void gcode_M503() {
|
|||||||
if (nozzle_timed_out)
|
if (nozzle_timed_out)
|
||||||
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_CLICK_TO_HEAT_NOZZLE);
|
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_CLICK_TO_HEAT_NOZZLE);
|
||||||
|
|
||||||
#if HAS_BUZZER
|
#if HAS_BUZZER
|
||||||
filament_change_beep();
|
filament_change_beep();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -7445,7 +7445,7 @@ inline void gcode_M503() {
|
|||||||
stepper.synchronize();
|
stepper.synchronize();
|
||||||
|
|
||||||
#if defined(FILAMENT_CHANGE_EXTRUDE_LENGTH) && FILAMENT_CHANGE_EXTRUDE_LENGTH > 0
|
#if defined(FILAMENT_CHANGE_EXTRUDE_LENGTH) && FILAMENT_CHANGE_EXTRUDE_LENGTH > 0
|
||||||
|
|
||||||
do {
|
do {
|
||||||
// "Wait for filament extrude"
|
// "Wait for filament extrude"
|
||||||
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_EXTRUDE);
|
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_EXTRUDE);
|
||||||
@ -8033,6 +8033,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
|
|||||||
z_raise = 0.3 + (z_diff > 0.0 ? z_diff : 0.0);
|
z_raise = 0.3 + (z_diff > 0.0 ? z_diff : 0.0);
|
||||||
|
|
||||||
// Always raise by some amount (destination copied from current_position earlier)
|
// Always raise by some amount (destination copied from current_position earlier)
|
||||||
|
float save_Z = destination[Z_AXIS]; // save Z for later on
|
||||||
destination[Z_AXIS] += z_raise;
|
destination[Z_AXIS] += z_raise;
|
||||||
planner.buffer_line_kinematic(destination, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
|
planner.buffer_line_kinematic(destination, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
|
||||||
stepper.synchronize();
|
stepper.synchronize();
|
||||||
@ -8046,6 +8047,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
|
|||||||
planner.buffer_line_kinematic(destination, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
|
planner.buffer_line_kinematic(destination, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
|
||||||
stepper.synchronize();
|
stepper.synchronize();
|
||||||
}
|
}
|
||||||
|
destination[Z_AXIS] = save_Z; // restore original Z position so the 'Move to the "old position"' is correct
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10306,7 +10308,7 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) {
|
|||||||
#else
|
#else
|
||||||
#define M600_TEST true
|
#define M600_TEST true
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (M600_TEST && stepper_inactive_time && ELAPSED(ms, previous_cmd_ms + stepper_inactive_time)
|
if (M600_TEST && stepper_inactive_time && ELAPSED(ms, previous_cmd_ms + stepper_inactive_time)
|
||||||
&& !ignore_stepper_queue && !planner.blocks_queued()) {
|
&& !ignore_stepper_queue && !planner.blocks_queued()) {
|
||||||
#if ENABLED(DISABLE_INACTIVE_X)
|
#if ENABLED(DISABLE_INACTIVE_X)
|
||||||
|
Loading…
Reference in New Issue
Block a user