aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/kinematics/idex_modes.py
diff options
context:
space:
mode:
Diffstat (limited to 'klippy/kinematics/idex_modes.py')
-rw-r--r--klippy/kinematics/idex_modes.py20
1 files changed, 8 insertions, 12 deletions
diff --git a/klippy/kinematics/idex_modes.py b/klippy/kinematics/idex_modes.py
index c7c2305c..19d5a655 100644
--- a/klippy/kinematics/idex_modes.py
+++ b/klippy/kinematics/idex_modes.py
@@ -18,17 +18,18 @@ class DualCarriages:
safe_dist={}):
self.printer = printer
self.axes = axes
- steppers = self._init_steppers(primary_rails + dual_rails)
+ self._init_steppers(primary_rails + dual_rails)
self.primary_rails = [
- DualCarriagesRail(c, dual_rails[i], axes[i], active=True)
+ DualCarriagesRail(printer, c, dual_rails[i],
+ axes[i], active=True)
for i, c in enumerate(primary_rails)]
self.dual_rails = [
- DualCarriagesRail(c, primary_rails[i], axes[i], active=False)
+ DualCarriagesRail(printer, c, primary_rails[i],
+ axes[i], active=False)
for i, c in enumerate(dual_rails)]
self.dc_rails = collections.OrderedDict(
[(c.rail.get_name(short=True), c)
for c in self.primary_rails + self.dual_rails])
- self._init_shapers(steppers)
self.saved_states = {}
self.safe_dist = {}
for i, dc in enumerate(dual_rails):
@@ -76,13 +77,6 @@ class DualCarriages:
self.dc_stepper_kinematics.append(sk)
self.orig_stepper_kinematics.append(orig_sk)
s.set_stepper_kinematics(sk)
- return steppers
- def _init_shapers(self, steppers):
- input_shaper = self.printer.lookup_object("input_shaper", None)
- if input_shaper is not None:
- # Make sure to initialize input shaper stepper kinematics
- # before modifying IDEX stepper kinematics.
- input_shaper.init_for_steppers(steppers)
def get_axes(self):
return self.axes
def get_primary_rail(self, axis):
@@ -324,7 +318,8 @@ class DualCarriages:
class DualCarriagesRail:
ENC_AXES = [b'x', b'y']
- def __init__(self, rail, dual_rail, axis, active):
+ def __init__(self, printer, rail, dual_rail, axis, active):
+ self.printer = printer
self.rail = rail
self.dual_rail = dual_rail
self.sks = [s.get_stepper_kinematics() for s in rail.get_steppers()]
@@ -343,6 +338,7 @@ class DualCarriagesRail:
for sk in self.sks:
ffi_lib.dual_carriage_set_transform(
sk, self.ENC_AXES[self.axis], self.scale, self.offset)
+ self.printer.send_event('dual_carriage:update_kinematics')
def activate(self, mode, position, old_position=None):
old_axis_position = self.get_axis_position(old_position or position)
self.scale = -1. if mode == MIRROR else 1.