aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/kinematics/hybrid_corexz.py
diff options
context:
space:
mode:
authorFrans-Willem Hardijzer <fw@hardijzer.nl>2023-05-25 17:55:07 +0200
committerGitHub <noreply@github.com>2023-05-25 11:55:07 -0400
commitec61f10f0f103bad9c754e4b97c57196581ed369 (patch)
treecf69ecf62863a3d12a873afa2c4b49d30bb61779 /klippy/kinematics/hybrid_corexz.py
parent37315bf3365484c3ba6adef2b7da2b4464980e8a (diff)
downloadkutter-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.py6
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):