Fix broken fwretract recovery extruder feedrate
When both lowering and recovery are performed using the same "prepare_move_to_destination()" the extruder recovery feedrate ends up being ignored and, instead, is only capped by either the maximum e-speed or the time it takes to perform the z-lowering. Performing the two moves separately from each other ensures a correct recovery feedrate.
This commit is contained in:
parent
58210c3a19
commit
15268770f5
@ -3062,6 +3062,8 @@ static void homeaxis(const AxisEnum axis) {
|
|||||||
// Pretend current position is higher. Z will lower on the next move
|
// Pretend current position is higher. Z will lower on the next move
|
||||||
current_position[Z_AXIS] += retract_zlift;
|
current_position[Z_AXIS] += retract_zlift;
|
||||||
SYNC_PLAN_POSITION_KINEMATIC();
|
SYNC_PLAN_POSITION_KINEMATIC();
|
||||||
|
// Lower Z
|
||||||
|
prepare_move_to_destination();
|
||||||
}
|
}
|
||||||
|
|
||||||
feedrate_mm_s = retract_recover_feedrate_mm_s;
|
feedrate_mm_s = retract_recover_feedrate_mm_s;
|
||||||
@ -3069,7 +3071,7 @@ static void homeaxis(const AxisEnum axis) {
|
|||||||
current_position[E_AXIS] -= move_e / volumetric_multiplier[active_extruder];
|
current_position[E_AXIS] -= move_e / volumetric_multiplier[active_extruder];
|
||||||
sync_plan_position_e();
|
sync_plan_position_e();
|
||||||
|
|
||||||
// Lower Z and recover E
|
// Recover E
|
||||||
prepare_move_to_destination();
|
prepare_move_to_destination();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user