aboutsummaryrefslogtreecommitdiffstats
path: root/klippy
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2019-11-19 12:27:33 -0500
committerKevin O'Connor <kevin@koconnor.net>2020-01-06 11:49:41 -0500
commite43ad4c9539b5d5d69a2627187400a3c6f9ff787 (patch)
treef41d25d5a9cf7272ff5f45b9757400b78bb3d732 /klippy
parent97d976fc53f897ad57db963078bcbf5018d34968 (diff)
downloadkutter-e43ad4c9539b5d5d69a2627187400a3c6f9ff787.tar.gz
kutter-e43ad4c9539b5d5d69a2627187400a3c6f9ff787.tar.xz
kutter-e43ad4c9539b5d5d69a2627187400a3c6f9ff787.zip
itersolve: Export itersolve_calc_position_from_coord()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy')
-rw-r--r--klippy/chelper/__init__.py2
-rw-r--r--klippy/chelper/itersolve.c2
-rw-r--r--klippy/chelper/itersolve.h2
-rw-r--r--klippy/stepper.py11
4 files changed, 13 insertions, 4 deletions
diff --git a/klippy/chelper/__init__.py b/klippy/chelper/__init__.py
index 91114216..b76a795a 100644
--- a/klippy/chelper/__init__.py
+++ b/klippy/chelper/__init__.py
@@ -51,6 +51,8 @@ defs_itersolve = """
void itersolve_set_trapq(struct stepper_kinematics *sk, struct trapq *tq);
void itersolve_set_stepcompress(struct stepper_kinematics *sk
, struct stepcompress *sc, double step_dist);
+ double itersolve_calc_position_from_coord(struct stepper_kinematics *sk
+ , double x, double y, double z);
void itersolve_set_position(struct stepper_kinematics *sk
, double x, double y, double z);
double itersolve_get_commanded_pos(struct stepper_kinematics *sk);
diff --git a/klippy/chelper/itersolve.c b/klippy/chelper/itersolve.c
index ee0571ee..1f30bcae 100644
--- a/klippy/chelper/itersolve.c
+++ b/klippy/chelper/itersolve.c
@@ -226,7 +226,7 @@ itersolve_set_stepcompress(struct stepper_kinematics *sk
sk->step_dist = step_dist;
}
-static double
+double __visible
itersolve_calc_position_from_coord(struct stepper_kinematics *sk
, double x, double y, double z)
{
diff --git a/klippy/chelper/itersolve.h b/klippy/chelper/itersolve.h
index c4061396..87dad7a9 100644
--- a/klippy/chelper/itersolve.h
+++ b/klippy/chelper/itersolve.h
@@ -31,6 +31,8 @@ double itersolve_check_active(struct stepper_kinematics *sk, double flush_time);
void itersolve_set_trapq(struct stepper_kinematics *sk, struct trapq *tq);
void itersolve_set_stepcompress(struct stepper_kinematics *sk
, struct stepcompress *sc, double step_dist);
+double itersolve_calc_position_from_coord(struct stepper_kinematics *sk
+ , double x, double y, double z);
void itersolve_set_position(struct stepper_kinematics *sk
, double x, double y, double z);
double itersolve_get_commanded_pos(struct stepper_kinematics *sk);
diff --git a/klippy/stepper.py b/klippy/stepper.py
index 1f7a58f7..cf7effd7 100644
--- a/klippy/stepper.py
+++ b/klippy/stepper.py
@@ -95,6 +95,9 @@ class MCU_stepper:
return self._step_dist
def is_dir_inverted(self):
return self._invert_dir
+ 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, coord):
opos = self.get_commanded_position()
sk = self._stepper_kinematics
@@ -199,9 +202,11 @@ class PrinterRail:
self.steppers = []
self.endstops = []
self.add_extra_stepper(config)
- self.get_commanded_position = self.steppers[0].get_commanded_position
- self.get_tag_position = self.steppers[0].get_tag_position
- self.set_tag_position = self.steppers[0].set_tag_position
+ mcu_stepper = self.steppers[0]
+ self.get_commanded_position = mcu_stepper.get_commanded_position
+ self.get_tag_position = mcu_stepper.get_tag_position
+ self.set_tag_position = mcu_stepper.set_tag_position
+ self.calc_position_from_coord = mcu_stepper.calc_position_from_coord
# Primary endstop position
mcu_endstop = self.endstops[0][0]
if hasattr(mcu_endstop, "get_position_endstop"):