aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/toolhead.py
diff options
context:
space:
mode:
Diffstat (limited to 'klippy/toolhead.py')
-rw-r--r--klippy/toolhead.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/klippy/toolhead.py b/klippy/toolhead.py
index a97cc440..d6665bbf 100644
--- a/klippy/toolhead.py
+++ b/klippy/toolhead.py
@@ -244,6 +244,7 @@ class ToolHead:
self.idle_flush_print_time = 0.
self.print_stall = 0
self.drip_completion = None
+ self.drip_need_calc_print_time = False
# Setup iterative solver
ffi_main, ffi_lib = chelper.get_ffi()
self.cmove = ffi_main.gc(ffi_lib.move_alloc(), ffi_lib.free)
@@ -292,6 +293,9 @@ class ToolHead:
return self.print_time
if self.special_queuing_state == "Drip":
# In "Drip" state - wait until ready to send next move
+ if self.drip_need_calc_print_time:
+ self.drip_need_calc_print_time = False
+ self._calc_print_time()
while 1:
if self.drip_completion.test():
raise DripModeEndSignal()
@@ -434,6 +438,7 @@ class ToolHead:
self.reactor.update_timer(self.flush_timer, self.reactor.NEVER)
self.move_queue.set_flush_time(self.reactor.NEVER)
self.drip_completion = self.reactor.completion()
+ self.drip_need_calc_print_time = True
# Split move into many tiny moves and queue them
num_moves = max(1, int(math.ceil(move.min_move_t / DRIP_SEGMENT_TIME)))
inv_num_moves = 1. / float(num_moves)
@@ -445,7 +450,6 @@ class ToolHead:
prev_pos = next_pos
self.move_queue.add_move(Move(self, prev_pos, move.end_pos, speed))
# Transmit moves
- self._calc_print_time()
try:
self.move_queue.flush()
except DripModeEndSignal as e: