diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2016-11-04 22:43:50 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2016-11-05 11:06:58 -0400 |
commit | 345fc41482098ef9f42988008a4b7ef4c08b186d (patch) | |
tree | 315ac638f0e70424edfd9a11eb87b8acde3bb736 /klippy/extruder.py | |
parent | 93dd310add46272f02b18ddd7f9b2f553d6e7ee0 (diff) | |
download | kutter-345fc41482098ef9f42988008a4b7ef4c08b186d.tar.gz kutter-345fc41482098ef9f42988008a4b7ef4c08b186d.tar.xz kutter-345fc41482098ef9f42988008a4b7ef4c08b186d.zip |
extruder: Don't do pressure advance on velocity changes due to cornering
Due to the lookahead, small changes in the direction of the toolhead
cause minor changes in toolhead velocity. These "cornering" velocity
changes cause the current extruder code to trigger pressure advance
and its associated pressure retract. This causes the extruder to
rapidly "jerk" the filament.
This code change updates the extruder to detect velocity changes due
solely to cornering and avoid pressure advance.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extruder.py')
-rw-r--r-- | klippy/extruder.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/klippy/extruder.py b/klippy/extruder.py index 4abbb7dd..12f43141 100644 --- a/klippy/extruder.py +++ b/klippy/extruder.py @@ -59,8 +59,15 @@ class PrinterExtruder: prev_pressure_d += extra_accel_d # Update decel and retract parameters when decelerating if decel_t: - npd = move.end_v * move_extrude_r * self.pressure_advance - extra_decel_d = prev_pressure_d - npd + if move.corner_min: + npd = move.corner_max*move_extrude_r * self.pressure_advance + extra_decel_d = prev_pressure_d - npd + if move.end_v > move.corner_min: + extra_decel_d *= ((move.cruise_v - move.end_v) + / (move.cruise_v - move.corner_min)) + else: + npd = move.end_v * move_extrude_r * self.pressure_advance + extra_decel_d = prev_pressure_d - npd if extra_decel_d > 0.: extra_decel_v = extra_decel_d / decel_t decel_v -= extra_decel_v |