diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2025-01-10 11:27:30 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2025-01-21 18:58:23 -0500 |
commit | 4aa550837fc170d0b77a0d461ca4f970b7bee7ae (patch) | |
tree | 7a185d949b9179c5f9b3977539e9cfda5ca7756e /klippy/kinematics | |
parent | c72d73ec450119b5fbe13d98409037a21ae97101 (diff) | |
download | kutter-4aa550837fc170d0b77a0d461ca4f970b7bee7ae.tar.gz kutter-4aa550837fc170d0b77a0d461ca4f970b7bee7ae.tar.xz kutter-4aa550837fc170d0b77a0d461ca4f970b7bee7ae.zip |
toolhead: Pass set_position() homing_axes parameter as a string
Use strings such as "xyz" to specify which axes are to be considered
homing during a set_position() call. This makes the parameter a
little less cryptic.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/kinematics')
-rw-r--r-- | klippy/kinematics/cartesian.py | 3 | ||||
-rw-r--r-- | klippy/kinematics/corexy.py | 2 | ||||
-rw-r--r-- | klippy/kinematics/corexz.py | 2 | ||||
-rw-r--r-- | klippy/kinematics/delta.py | 4 | ||||
-rw-r--r-- | klippy/kinematics/deltesian.py | 7 | ||||
-rw-r--r-- | klippy/kinematics/hybrid_corexy.py | 3 | ||||
-rw-r--r-- | klippy/kinematics/hybrid_corexz.py | 3 | ||||
-rw-r--r-- | klippy/kinematics/polar.py | 4 | ||||
-rw-r--r-- | klippy/kinematics/rotary_delta.py | 4 | ||||
-rw-r--r-- | klippy/kinematics/winch.py | 2 |
10 files changed, 19 insertions, 15 deletions
diff --git a/klippy/kinematics/cartesian.py b/klippy/kinematics/cartesian.py index 1db40f4f..0c22172b 100644 --- a/klippy/kinematics/cartesian.py +++ b/klippy/kinematics/cartesian.py @@ -65,7 +65,8 @@ class CartKinematics: def set_position(self, newpos, homing_axes): for i, rail in enumerate(self.rails): rail.set_position(newpos) - for axis in homing_axes: + for axis_name in homing_axes: + axis = "xyz".index(axis_name) if self.dc_module and axis == self.dc_module.axis: rail = self.dc_module.get_primary_rail().get_rail() else: diff --git a/klippy/kinematics/corexy.py b/klippy/kinematics/corexy.py index 15169e50..891e58e0 100644 --- a/klippy/kinematics/corexy.py +++ b/klippy/kinematics/corexy.py @@ -39,7 +39,7 @@ class CoreXYKinematics: def set_position(self, newpos, homing_axes): for i, rail in enumerate(self.rails): rail.set_position(newpos) - if i in homing_axes: + if "xyz"[i] in homing_axes: self.limits[i] = rail.get_range() def clear_homing_state(self, axes): for i, _ in enumerate(self.limits): diff --git a/klippy/kinematics/corexz.py b/klippy/kinematics/corexz.py index 5298698d..34def72a 100644 --- a/klippy/kinematics/corexz.py +++ b/klippy/kinematics/corexz.py @@ -39,7 +39,7 @@ class CoreXZKinematics: def set_position(self, newpos, homing_axes): for i, rail in enumerate(self.rails): rail.set_position(newpos) - if i in homing_axes: + if "xyz"[i] in homing_axes: self.limits[i] = rail.get_range() def clear_homing_state(self, axes): for i, _ in enumerate(self.limits): diff --git a/klippy/kinematics/delta.py b/klippy/kinematics/delta.py index f10586b7..beb1826f 100644 --- a/klippy/kinematics/delta.py +++ b/klippy/kinematics/delta.py @@ -88,7 +88,7 @@ class DeltaKinematics: math.sqrt(self.very_slow_xy2))) self.axes_min = toolhead.Coord(-max_xy, -max_xy, self.min_z, 0.) self.axes_max = toolhead.Coord(max_xy, max_xy, self.max_z, 0.) - self.set_position([0., 0., 0.], ()) + self.set_position([0., 0., 0.], "") def get_steppers(self): return [s for rail in self.rails for s in rail.get_steppers()] def _actuator_to_cartesian(self, spos): @@ -101,7 +101,7 @@ class DeltaKinematics: for rail in self.rails: rail.set_position(newpos) self.limit_xy2 = -1. - if tuple(homing_axes) == (0, 1, 2): + if homing_axes == "xyz": self.need_home = False def clear_homing_state(self, axes): # Clearing homing state for each axis individually is not implemented diff --git a/klippy/kinematics/deltesian.py b/klippy/kinematics/deltesian.py index d0865475..e0118b34 100644 --- a/klippy/kinematics/deltesian.py +++ b/klippy/kinematics/deltesian.py @@ -87,7 +87,7 @@ class DeltesianKinematics: self.axes_min = toolhead.Coord(*[l[0] for l in self.limits], e=0.) self.axes_max = toolhead.Coord(*[l[1] for l in self.limits], e=0.) self.homed_axis = [False] * 3 - self.set_position([0., 0., 0.], ()) + self.set_position([0., 0., 0.], "") def get_steppers(self): return [s for rail in self.rails for s in rail.get_steppers()] def _actuator_to_cartesian(self, sp): @@ -113,8 +113,9 @@ class DeltesianKinematics: def set_position(self, newpos, homing_axes): for rail in self.rails: rail.set_position(newpos) - for n in homing_axes: - self.homed_axis[n] = True + for axis_name in homing_axes: + axis = "xyz".index(axis_name) + self.homed_axis[axis] = True def clear_homing_state(self, axes): for i, _ in enumerate(self.limits): if i in axes: diff --git a/klippy/kinematics/hybrid_corexy.py b/klippy/kinematics/hybrid_corexy.py index 72b0b85b..6d72a89c 100644 --- a/klippy/kinematics/hybrid_corexy.py +++ b/klippy/kinematics/hybrid_corexy.py @@ -67,7 +67,8 @@ class HybridCoreXYKinematics: def set_position(self, newpos, homing_axes): for i, rail in enumerate(self.rails): rail.set_position(newpos) - for axis in homing_axes: + for axis_name in homing_axes: + axis = "xyz".index(axis_name) if self.dc_module and axis == self.dc_module.axis: rail = self.dc_module.get_primary_rail().get_rail() else: diff --git a/klippy/kinematics/hybrid_corexz.py b/klippy/kinematics/hybrid_corexz.py index 041df8d7..05fe096e 100644 --- a/klippy/kinematics/hybrid_corexz.py +++ b/klippy/kinematics/hybrid_corexz.py @@ -67,7 +67,8 @@ class HybridCoreXZKinematics: def set_position(self, newpos, homing_axes): for i, rail in enumerate(self.rails): rail.set_position(newpos) - for axis in homing_axes: + for axis_name in homing_axes: + axis = "xyz".index(axis_name) if self.dc_module and axis == self.dc_module.axis: rail = self.dc_module.get_primary_rail().get_rail() else: diff --git a/klippy/kinematics/polar.py b/klippy/kinematics/polar.py index 8369d386..548b4bac 100644 --- a/klippy/kinematics/polar.py +++ b/klippy/kinematics/polar.py @@ -45,9 +45,9 @@ class PolarKinematics: def set_position(self, newpos, homing_axes): for s in self.steppers: s.set_position(newpos) - if 2 in homing_axes: + if "z" in homing_axes: self.limit_z = self.rails[1].get_range() - if 0 in homing_axes and 1 in homing_axes: + if "x" in homing_axes and "y" in homing_axes: self.limit_xy2 = self.rails[0].get_range()[1]**2 def clear_homing_state(self, axes): if 0 in axes or 1 in axes: diff --git a/klippy/kinematics/rotary_delta.py b/klippy/kinematics/rotary_delta.py index 89f963d2..6b457ccb 100644 --- a/klippy/kinematics/rotary_delta.py +++ b/klippy/kinematics/rotary_delta.py @@ -74,7 +74,7 @@ class RotaryDeltaKinematics: max_xy = math.sqrt(self.max_xy2) self.axes_min = toolhead.Coord(-max_xy, -max_xy, self.min_z, 0.) self.axes_max = toolhead.Coord(max_xy, max_xy, self.max_z, 0.) - self.set_position([0., 0., 0.], ()) + self.set_position([0., 0., 0.], "") def get_steppers(self): return [s for rail in self.rails for s in rail.get_steppers()] def calc_position(self, stepper_positions): @@ -84,7 +84,7 @@ class RotaryDeltaKinematics: for rail in self.rails: rail.set_position(newpos) self.limit_xy2 = -1. - if tuple(homing_axes) == (0, 1, 2): + if homing_axes == "xyz": self.need_home = False def clear_homing_state(self, axes): # Clearing homing state for each axis individually is not implemented diff --git a/klippy/kinematics/winch.py b/klippy/kinematics/winch.py index c69d1b6d..0003826b 100644 --- a/klippy/kinematics/winch.py +++ b/klippy/kinematics/winch.py @@ -26,7 +26,7 @@ class WinchKinematics: acoords = list(zip(*self.anchors)) self.axes_min = toolhead.Coord(*[min(a) for a in acoords], e=0.) self.axes_max = toolhead.Coord(*[max(a) for a in acoords], e=0.) - self.set_position([0., 0., 0.], ()) + self.set_position([0., 0., 0.], "") def get_steppers(self): return list(self.steppers) def calc_position(self, stepper_positions): |