diff --git a/klippy/kinematics/extruder.py b/klippy/kinematics/extruder.py index a5bef0db..611e99ad 100644 --- a/klippy/kinematics/extruder.py +++ b/klippy/kinematics/extruder.py @@ -135,8 +135,6 @@ class PrinterExtruder: if diff_r: return (self.instant_corner_v / abs(diff_r))**2 return move.max_cruise_v2 - def lookahead(self, moves, flush_count, lazy): - return flush_count def move(self, print_time, move): axis_r = move.axes_r[3] accel = move.accel * axis_r @@ -183,8 +181,6 @@ class DummyExtruder: move.end_pos, "Extrude when no extruder present") def calc_junction(self, prev_move, move): return move.max_cruise_v2 - def lookahead(self, moves, flush_count, lazy): - return flush_count def get_heater(self): raise homing.CommandError("Extruder not configured") diff --git a/klippy/toolhead.py b/klippy/toolhead.py index 45a96557..f542f17f 100644 --- a/klippy/toolhead.py +++ b/klippy/toolhead.py @@ -105,18 +105,13 @@ LOOKAHEAD_FLUSH_TIME = 0.250 class MoveQueue: def __init__(self, toolhead): self.toolhead = toolhead - self.extruder_lookahead = None self.queue = [] - self.leftover = 0 self.junction_flush = LOOKAHEAD_FLUSH_TIME def reset(self): del self.queue[:] - self.leftover = 0 self.junction_flush = LOOKAHEAD_FLUSH_TIME def set_flush_time(self, flush_time): self.junction_flush = flush_time - def set_extruder(self, extruder): - self.extruder_lookahead = extruder.lookahead def flush(self, lazy=False): self.junction_flush = LOOKAHEAD_FLUSH_TIME update_flush_count = lazy @@ -127,7 +122,7 @@ class MoveQueue: # after the last move. delayed = [] next_end_v2 = next_smoothed_v2 = peak_cruise_v2 = 0. - for i in range(flush_count-1, self.leftover-1, -1): + for i in range(flush_count-1, -1, -1): move = queue[i] reachable_start_v2 = next_end_v2 + move.delta_v2 start_v2 = min(move.max_start_v2, reachable_start_v2) @@ -163,17 +158,12 @@ class MoveQueue: delayed.append((move, start_v2, next_end_v2)) next_end_v2 = start_v2 next_smoothed_v2 = smoothed_v2 - if update_flush_count: - return - # Allow extruder to do its lookahead - move_count = self.extruder_lookahead(queue, flush_count, lazy) - self.leftover = flush_count - move_count - if not move_count: + if update_flush_count or not flush_count: return # Generate step times for all moves ready to be flushed - self.toolhead._process_moves(queue[:move_count]) + self.toolhead._process_moves(queue[:flush_count]) # Remove processed moves from the queue - del queue[:move_count] + del queue[:flush_count] def add_move(self, move): self.queue.append(move) if len(self.queue) == 1: @@ -250,7 +240,6 @@ class ToolHead: self.step_generators = [] # Create kinematics class self.extruder = kinematics.extruder.DummyExtruder() - self.move_queue.set_extruder(self.extruder) kin_name = config.get('kinematics') try: mod = importlib.import_module('kinematics.' + kin_name) @@ -427,7 +416,6 @@ class ToolHead: eventtime = self.reactor.pause(eventtime + 0.100) def set_extruder(self, extruder, extrude_pos): self.extruder = extruder - self.move_queue.set_extruder(extruder) self.commanded_pos[3] = extrude_pos def get_extruder(self): return self.extruder