aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--klippy/extras/probe.py5
-rw-r--r--klippy/extras/z_tilt.py9
-rw-r--r--klippy/gcode.py5
-rw-r--r--klippy/kinematics/cartesian.py6
-rw-r--r--klippy/kinematics/corexy.py6
-rw-r--r--klippy/kinematics/delta.py4
6 files changed, 14 insertions, 21 deletions
diff --git a/klippy/extras/probe.py b/klippy/extras/probe.py
index 1facfba8..47ea7d73 100644
--- a/klippy/extras/probe.py
+++ b/klippy/extras/probe.py
@@ -44,9 +44,8 @@ class PrinterProbe:
'QUERY_PROBE', self.cmd_QUERY_PROBE, desc=self.cmd_QUERY_PROBE_help)
def build_config(self):
kin = self.printer.lookup_object('toolhead').get_kinematics()
- for rail in kin.get_rails("Z"):
- for stepper in rail.get_steppers():
- stepper.add_to_endstop(self.mcu_probe)
+ for stepper in kin.get_steppers('Z'):
+ stepper.add_to_endstop(self.mcu_probe)
def setup_pin(self, pin_params):
if (pin_params['pin'] != 'z_virtual_endstop'
or pin_params['type'] != 'endstop'):
diff --git a/klippy/extras/z_tilt.py b/klippy/extras/z_tilt.py
index 98a1807b..b7e36aa9 100644
--- a/klippy/extras/z_tilt.py
+++ b/klippy/extras/z_tilt.py
@@ -18,6 +18,8 @@ class ZTilt:
except:
raise config.error("Unable to parse z_positions in %s" % (
config.get_name()))
+ if len(z_positions) < 2:
+ raise config.error("z_tilt requires at least two z_positions")
self.probe_helper = probe.ProbePointsHelper(config, self)
self.z_steppers = []
# Register Z_TILT_ADJUST command
@@ -30,12 +32,7 @@ class ZTilt:
self.handle_connect()
def handle_connect(self):
kin = self.printer.lookup_object('toolhead').get_kinematics()
- try:
- z_steppers = kin.get_rails('Z')[0].get_steppers()
- except:
- logging.exception("z_tilt stepper lookup")
- raise self.printer.config_error(
- "z_tilt requires multiple Z steppers")
+ z_steppers = kin.get_steppers('Z')
if len(z_steppers) != len(self.z_positions):
raise self.printer.config_error(
"z_tilt z_positions needs exactly %d items" % (len(z_steppers),))
diff --git a/klippy/gcode.py b/klippy/gcode.py
index 47a8b2d0..8fa6813c 100644
--- a/klippy/gcode.py
+++ b/klippy/gcode.py
@@ -602,10 +602,7 @@ class GCodeParser:
self.cmd_default(params)
return
kin = self.toolhead.get_kinematics()
- steppers = []
- rails = kin.get_rails()
- for rail in rails:
- steppers += rail.get_steppers()
+ steppers = kin.get_steppers()
mcu_pos = " ".join(["%s:%d" % (s.get_name(), s.get_mcu_position())
for s in steppers])
stepper_pos = " ".join(
diff --git a/klippy/kinematics/cartesian.py b/klippy/kinematics/cartesian.py
index 42c2ae21..4bcfdff3 100644
--- a/klippy/kinematics/cartesian.py
+++ b/klippy/kinematics/cartesian.py
@@ -43,10 +43,10 @@ class CartKinematics:
self.printer.lookup_object('gcode').register_command(
'SET_DUAL_CARRIAGE', self.cmd_SET_DUAL_CARRIAGE,
desc=self.cmd_SET_DUAL_CARRIAGE_help)
- def get_rails(self, flags=""):
+ def get_steppers(self, flags=""):
if flags == "Z":
- return [self.rails[2]]
- return list(self.rails)
+ return self.rails[2].get_steppers()
+ return [s for rail in self.rails for s in rail.get_steppers()]
def calc_position(self):
return [rail.get_commanded_position() for rail in self.rails]
def set_position(self, newpos, homing_axes):
diff --git a/klippy/kinematics/corexy.py b/klippy/kinematics/corexy.py
index 46d8def3..47bc3e92 100644
--- a/klippy/kinematics/corexy.py
+++ b/klippy/kinematics/corexy.py
@@ -32,10 +32,10 @@ class CoreXYKinematics:
self.rails[1].set_max_jerk(max_xy_halt_velocity, max_accel)
self.rails[2].set_max_jerk(
min(max_halt_velocity, self.max_z_velocity), self.max_z_accel)
- def get_rails(self, flags=""):
+ def get_steppers(self, flags=""):
if flags == "Z":
- return [self.rails[2]]
- return list(self.rails)
+ return self.rails[2].get_steppers()
+ return [s for rail in self.rails for s in rail.get_steppers()]
def calc_position(self):
pos = [rail.get_commanded_position() for rail in self.rails]
return [0.5 * (pos[0] + pos[1]), 0.5 * (pos[0] - pos[1]), pos[2]]
diff --git a/klippy/kinematics/delta.py b/klippy/kinematics/delta.py
index 4cf2408d..e51f5c94 100644
--- a/klippy/kinematics/delta.py
+++ b/klippy/kinematics/delta.py
@@ -80,8 +80,8 @@ class DeltaKinematics:
% (math.sqrt(self.max_xy2), math.sqrt(self.slow_xy2),
math.sqrt(self.very_slow_xy2)))
self.set_position([0., 0., 0.], ())
- def get_rails(self, flags=""):
- return list(self.rails)
+ def get_steppers(self, flags=""):
+ return [s for rail in self.rails for s in rail.get_steppers()]
def _actuator_to_cartesian(self, spos):
sphere_coords = [(t[0], t[1], sp) for t, sp in zip(self.towers, spos)]
return mathutil.trilateration(sphere_coords, self.arm2)