diff options
author | Frans-Willem Hardijzer <fw@hardijzer.nl> | 2023-05-25 17:55:07 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-25 11:55:07 -0400 |
commit | ec61f10f0f103bad9c754e4b97c57196581ed369 (patch) | |
tree | cf69ecf62863a3d12a873afa2c4b49d30bb61779 /klippy/kinematics/hybrid_corexz.py | |
parent | 37315bf3365484c3ba6adef2b7da2b4464980e8a (diff) | |
download | kutter-ec61f10f0f103bad9c754e4b97c57196581ed369.tar.gz kutter-ec61f10f0f103bad9c754e4b97c57196581ed369.tar.xz kutter-ec61f10f0f103bad9c754e4b97c57196581ed369.zip |
hybrid_corexy: Fix changing dual-carriage carriage will inadvertently set axis to homed, even if it wasn't. (#6183)
In hybrid_corexy and hybrid_corexz, the update_limits function is (only) called by the DualCarriage implementation, whenever the carriage changes.
Unfortunately, these limits also keep track of homing status, when they're unhomed they are set to 1 to -1 (invalid range).
As a fix, if the limit was set to "unhomed", we keep it that way, and only update it with the new rail limits if it was already properly homed before.
Signed-off-by: Frans-willem Hardijzer <fw@hardijzer.nl>
Diffstat (limited to 'klippy/kinematics/hybrid_corexz.py')
-rw-r--r-- | klippy/kinematics/hybrid_corexz.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/klippy/kinematics/hybrid_corexz.py b/klippy/kinematics/hybrid_corexz.py index 11f77234..a92a2194 100644 --- a/klippy/kinematics/hybrid_corexz.py +++ b/klippy/kinematics/hybrid_corexz.py @@ -66,7 +66,11 @@ class HybridCoreXZKinematics: else: return [pos[0] + pos[2], pos[1], pos[2]] def update_limits(self, i, range): - self.limits[i] = range + l, h = self.limits[i] + # Only update limits if this axis was already homed, + # otherwise leave in un-homed state. + if l <= h: + self.limits[i] = range def override_rail(self, i, rail): self.rails[i] = rail def set_position(self, newpos, homing_axes): |