aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2019-11-06 08:41:50 -0500
committerKevin O'Connor <kevin@koconnor.net>2019-11-06 15:51:51 -0500
commit86121ff79ef730a0a7a4d2d35f40cc01f7e1b9e7 (patch)
tree0bd56060e88f145b419b48b4aeeaf8ca5e6c1151 /klippy/extras
parent257058981eff9b0944029c101de5f18af2fbf914 (diff)
downloadkutter-86121ff79ef730a0a7a4d2d35f40cc01f7e1b9e7.tar.gz
kutter-86121ff79ef730a0a7a4d2d35f40cc01f7e1b9e7.tar.xz
kutter-86121ff79ef730a0a7a4d2d35f40cc01f7e1b9e7.zip
toolhead: Calculate and store axes_r in move class
Calculate the ratio of axis distance to total move distance (axis_d / move_d) and store in a new member variable axes_r. This avoids needing to recalculate the value in other code. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras')
-rw-r--r--klippy/extras/force_move.py13
-rw-r--r--klippy/extras/manual_stepper.py4
2 files changed, 10 insertions, 7 deletions
diff --git a/klippy/extras/force_move.py b/klippy/extras/force_move.py
index fe3b3a60..2f748c0a 100644
--- a/klippy/extras/force_move.py
+++ b/klippy/extras/force_move.py
@@ -11,16 +11,19 @@ STALL_TIME = 0.100
# Calculate a move's accel_t, cruise_t, and cruise_v
def calc_move_time(dist, speed, accel):
- dist = abs(dist)
+ axis_r = 1.
+ if dist < 0.:
+ axis_r = -1.
+ dist = -dist
if not accel or not dist:
- return 0., dist / speed, speed
+ return axis_r, 0., dist / speed, speed
max_cruise_v2 = dist * accel
if max_cruise_v2 < speed**2:
speed = math.sqrt(max_cruise_v2)
accel_t = speed / accel
accel_decel_d = accel_t * speed
cruise_t = (dist - accel_decel_d) / speed
- return accel_t, cruise_t, speed
+ return axis_r, accel_t, cruise_t, speed
class ForceMove:
def __init__(self, config):
@@ -67,9 +70,9 @@ class ForceMove:
print_time = toolhead.get_last_move_time()
prev_sk = stepper.set_stepper_kinematics(self.stepper_kinematics)
stepper.set_position((0., 0., 0.))
- accel_t, cruise_t, cruise_v = calc_move_time(dist, speed, accel)
+ axis_r, accel_t, cruise_t, cruise_v = calc_move_time(dist, speed, accel)
self.trapq_append(self.trapq, print_time, accel_t, cruise_t, accel_t,
- 0., 0., 0., dist, 0., 0., 0., cruise_v, accel)
+ 0., 0., 0., axis_r, 0., 0., 0., cruise_v, accel)
print_time += accel_t + cruise_t + accel_t
stepper.generate_steps(print_time)
self.trapq_free_moves(self.trapq, print_time)
diff --git a/klippy/extras/manual_stepper.py b/klippy/extras/manual_stepper.py
index 9b985007..73766622 100644
--- a/klippy/extras/manual_stepper.py
+++ b/klippy/extras/manual_stepper.py
@@ -54,11 +54,11 @@ class ManualStepper:
self.sync_print_time()
cp = self.stepper.get_commanded_position()
dist = movepos - cp
- accel_t, cruise_t, cruise_v = force_move.calc_move_time(
+ axis_r, accel_t, cruise_t, cruise_v = force_move.calc_move_time(
dist, speed, accel)
self.trapq_append(self.trapq, self.next_cmd_time,
accel_t, cruise_t, accel_t,
- cp, 0., 0., dist, 0., 0.,
+ cp, 0., 0., axis_r, 0., 0.,
0., cruise_v, accel)
self.next_cmd_time += accel_t + cruise_t + accel_t
self.stepper.generate_steps(self.next_cmd_time)