aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/kinematics/idex_modes.py
diff options
context:
space:
mode:
authorDmitry Butyugin <dmbutyugin@google.com>2025-05-17 17:28:58 +0200
committerKevinOConnor <kevin@koconnor.net>2025-05-22 14:44:09 -0400
commitb1011e3fb14df7470d9b74e59042383012b199c6 (patch)
tree94e2bbd83ca206a6279b6b143d66c6deac711246 /klippy/kinematics/idex_modes.py
parent17b8ce4c6be16d77d647b6d12356dc69830ec1e7 (diff)
downloadkutter-b1011e3fb14df7470d9b74e59042383012b199c6.tar.gz
kutter-b1011e3fb14df7470d9b74e59042383012b199c6.tar.xz
kutter-b1011e3fb14df7470d9b74e59042383012b199c6.zip
dual_carriage: Fixed input shaper stepper kinematics initialization
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
Diffstat (limited to 'klippy/kinematics/idex_modes.py')
-rw-r--r--klippy/kinematics/idex_modes.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/klippy/kinematics/idex_modes.py b/klippy/kinematics/idex_modes.py
index ee9ee31d..c7c2305c 100644
--- a/klippy/kinematics/idex_modes.py
+++ b/klippy/kinematics/idex_modes.py
@@ -18,7 +18,7 @@ class DualCarriages:
safe_dist={}):
self.printer = printer
self.axes = axes
- self._init_steppers(primary_rails + dual_rails)
+ steppers = self._init_steppers(primary_rails + dual_rails)
self.primary_rails = [
DualCarriagesRail(c, dual_rails[i], axes[i], active=True)
for i, c in enumerate(primary_rails)]
@@ -28,6 +28,7 @@ class DualCarriages:
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):
@@ -75,6 +76,13 @@ 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):
@@ -213,8 +221,6 @@ class DualCarriages:
dc.activate(mode, toolhead.get_position())
kin.update_limits(axis, self.get_kin_range(toolhead, mode, axis))
def _handle_ready(self):
- # Apply the transform later during Klipper initialization to make sure
- # that input shaping can pick up the correct stepper kinematic flags.
for dc_rail in self.dc_rails.values():
dc_rail.apply_transform()
cmd_SET_DUAL_CARRIAGE_help = "Configure the dual carriages mode"