From 7083879700800710c624c0bf08220215ba5f4a83 Mon Sep 17 00:00:00 2001 From: Dennis Marttinen <38858901+twelho@users.noreply.github.com> Date: Fri, 10 Jan 2025 15:41:09 +0000 Subject: force_move: Implement CLEAR for SET_KINEMATIC_POSITION (#6262) `CLEAR` clears the homing status (resets the axis limits) without turning off the motors. This is particularly useful when implementing safe Z homing in `[homing_override]` on printers with multiple independent Z steppers (where `FORCE_MOVE` can't be used). Signed-off-by: Dennis Marttinen --- klippy/kinematics/corexz.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'klippy/kinematics/corexz.py') diff --git a/klippy/kinematics/corexz.py b/klippy/kinematics/corexz.py index 72134c32..b1c46146 100644 --- a/klippy/kinematics/corexz.py +++ b/klippy/kinematics/corexz.py @@ -43,9 +43,10 @@ class CoreXZKinematics: rail.set_position(newpos) if i in homing_axes: self.limits[i] = rail.get_range() - def note_z_not_homed(self): - # Helper for Safe Z Home - self.limits[2] = (1.0, -1.0) + def clear_homing_state(self, axes): + for i, _ in enumerate(self.limits): + if i in axes: + self.limits[i] = (1.0, -1.0) def home(self, homing_state): # Each axis is homed independently and in order for axis in homing_state.get_axes(): @@ -63,7 +64,7 @@ class CoreXZKinematics: # Perform homing homing_state.home_rails([rail], forcepos, homepos) def _motor_off(self, print_time): - self.limits = [(1.0, -1.0)] * 3 + self.clear_homing_state((0, 1, 2)) def _check_endstops(self, move): end_pos = move.end_pos for i in (0, 1, 2): -- cgit v1.2.3-70-g09d2