aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/delta.py
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2018-06-22 13:03:07 -0400
committerKevin O'Connor <kevin@koconnor.net>2018-06-22 14:09:01 -0400
commit890298d34d76923e895ff7905b9dbe374035e694 (patch)
treecdc5590ef88c62b76f5fb0543c12d2cbe267edf2 /klippy/delta.py
parent0216201cb6b9b486a75e446ca1cb2bbd18f329d7 (diff)
downloadkutter-890298d34d76923e895ff7905b9dbe374035e694.tar.gz
kutter-890298d34d76923e895ff7905b9dbe374035e694.tar.xz
kutter-890298d34d76923e895ff7905b9dbe374035e694.zip
itersolve: Support setting the stepper position via a cartesian coordinate
Add support for an itersolve_set_position() function that sets a stepper position from a cartesian coordinate. This eliminates the need for both the python and C code to be able to translate from a cartesian coordinate to a stepper position. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/delta.py')
-rw-r--r--klippy/delta.py9
1 files changed, 2 insertions, 7 deletions
diff --git a/klippy/delta.py b/klippy/delta.py
index efcfe7a5..d80959b5 100644
--- a/klippy/delta.py
+++ b/klippy/delta.py
@@ -87,19 +87,14 @@ class DeltaKinematics:
self.set_position([0., 0., 0.], ())
def get_rails(self, flags=""):
return list(self.rails)
- def _cartesian_to_actuator(self, coord):
- return [math.sqrt(self.arm2[i] - (self.towers[i][0] - coord[0])**2
- - (self.towers[i][1] - coord[1])**2) + coord[2]
- for i in StepList]
def _actuator_to_cartesian(self, pos):
return actuator_to_cartesian(self.towers, self.arm2, pos)
def calc_position(self):
spos = [rail.get_commanded_position() for rail in self.rails]
return self._actuator_to_cartesian(spos)
def set_position(self, newpos, homing_axes):
- pos = self._cartesian_to_actuator(newpos)
- for i in StepList:
- self.rails[i].set_position(pos[i])
+ for rail in self.rails:
+ rail.set_position(newpos)
self.limit_xy2 = -1.
if tuple(homing_axes) == StepList:
self.need_home = False