aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/mcu.py
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2018-07-18 11:51:28 -0400
committerKevin O'Connor <kevin@koconnor.net>2018-07-18 11:51:28 -0400
commitcb29143939c3dbe7e3c7782e274c1a7ca3631f6d (patch)
tree2c3a5713bb94a56f098845dbab4aa45907127253 /klippy/mcu.py
parente2b4b1616fe7b2f3b5027ba1721f295075c73741 (diff)
downloadkutter-cb29143939c3dbe7e3c7782e274c1a7ca3631f6d.tar.gz
kutter-cb29143939c3dbe7e3c7782e274c1a7ca3631f6d.tar.xz
kutter-cb29143939c3dbe7e3c7782e274c1a7ca3631f6d.zip
itersolve: Support calculating a stepper position from a cartesian coordinate
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/mcu.py')
-rw-r--r--klippy/mcu.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/klippy/mcu.py b/klippy/mcu.py
index 7c2789c6..a25fc3f7 100644
--- a/klippy/mcu.py
+++ b/klippy/mcu.py
@@ -69,11 +69,13 @@ class MCU_stepper:
return self._oid
def get_step_dist(self):
return self._step_dist
+ def calc_position_from_coord(self, coord):
+ return self._ffi_lib.itersolve_calc_position_from_coord(
+ self._stepper_kinematics, coord[0], coord[1], coord[2])
def set_position(self, newpos):
- orig_cmd_pos = self.get_commanded_position()
- self._ffi_lib.itersolve_set_position(
- self._stepper_kinematics, newpos[0], newpos[1], newpos[2])
- self._mcu_position_offset += orig_cmd_pos - self.get_commanded_position()
+ spos = self.calc_position_from_coord(newpos)
+ self._mcu_position_offset += self.get_commanded_position() - spos
+ self._ffi_lib.itersolve_set_commanded_pos(self._stepper_kinematics, spos)
def get_commanded_position(self):
return self._ffi_lib.itersolve_get_commanded_pos(
self._stepper_kinematics)