From d5f5cf3e4bbfe651b4b55ba25d43da552d941dfb Mon Sep 17 00:00:00 2001 From: Stefan <93658221+dbstf@users.noreply.github.com> Date: Wed, 7 May 2025 23:13:42 +0200 Subject: [PATCH 1/2] Update ratos_hybrid_corexy.py Update to make compatible with Klipper refactoring (https://github.com/Klipper3d/klipper/pull/6815), in particular * idex_modes: Internal refactoring of handling dual carriages --- .../klippy/kinematics/ratos_hybrid_corexy.py | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/configuration/klippy/kinematics/ratos_hybrid_corexy.py b/configuration/klippy/kinematics/ratos_hybrid_corexy.py index 89c145301..bdfdf9f26 100644 --- a/configuration/klippy/kinematics/ratos_hybrid_corexy.py +++ b/configuration/klippy/kinematics/ratos_hybrid_corexy.py @@ -3,6 +3,7 @@ # Copyright (C) 2021 Fabrice Gallet # Modified 2023 by Helge Magnus Keck # Modified 2024 by Mikkel Schmidt +# Modified 2025 by Github user 'dbstf' # # This file may be distributed under the terms of the GNU GPLv3 license. import logging @@ -42,7 +43,7 @@ def __init__(self, toolhead, config): self.dc_module = None if config.has_section('dual_carriage'): dc_config = config.getsection('dual_carriage') - # dummy for cartesian config users + # dummy for Cartesian config users dc_config.getchoice('axis', {'x': 'x'}, default='x') # setup second dual carriage rail self.rails.append(stepper.LookupMultiRail(dc_config)) @@ -60,12 +61,10 @@ def __init__(self, toolhead, config): self.rails[3].steppers[1].setup_itersolve('corexy_stepper_alloc', b'+') if len(self.rails[3].steppers)>2: raise self.error("Unexpected stepper configuration") - dc_rail_0 = idex_modes.DualCarriagesRail( - self.rails[0], axis=0, active=True) - dc_rail_1 = idex_modes.DualCarriagesRail( - self.rails[3], axis=0, active=False) self.dc_module = idex_modes.DualCarriages( - dc_config, dc_rail_0, dc_rail_1, axis=0) + self.printer, [self.rails[0]], [self.rails[3]], axes=[0], + safe_dist=dc_config.getfloat( + 'safe_distance', None, minval=0.)) for s in self.get_steppers(): s.set_trapq(toolhead.get_trapq()) toolhead.register_step_generator(s.generate_steps) @@ -103,11 +102,15 @@ def set_position(self, newpos, homing_axes): for i, rail in enumerate(self.rails): rail.set_position(newpos) for axis in homing_axes: - if self.dc_module and axis == self.dc_module.axis: - rail = self.dc_module.get_primary_rail().get_rail() + if self.dc_module and axis == 0: + rail = self.dc_module.get_primary_rail(axis) else: rail = self.rails[axis] self.limits[axis] = rail.get_range() + def clear_homing_state(self, clear_axes): + for axis, axis_name in enumerate("xyz"): + if axis_name in clear_axes: + self.limits[axis] = (1.0, -1.0) def note_z_not_homed(self): # Helper for Safe Z Home self.limits[2] = (1.0, -1.0) @@ -126,7 +129,7 @@ def home_axis(self, homing_state, axis, rail): def home(self, homing_state): for axis in homing_state.get_axes(): if self.dc_module is not None and axis == 0: - self.dc_module.home(homing_state) + self.dc_module.home(homing_state, axis) else: self.home_axis(homing_state, axis, self.rails[axis]) def _motor_off(self, print_time): From 0dadb890c360de57955c1354e4a4c1cd21cefc17 Mon Sep 17 00:00:00 2001 From: Stefan <93658221+dbstf@users.noreply.github.com> Date: Thu, 11 Sep 2025 19:47:39 +0200 Subject: [PATCH 2/2] Update ratos_hybrid_corexy.py Update to make compatible with https://github.com/Klipper3d/klipper/commit/9399e738bc21e70cdd5a60bc9f8e1d51fb20cd75 ,i.e., https://github.com/Klipper3d/klipper/pull/7001 --- configuration/klippy/kinematics/ratos_hybrid_corexy.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configuration/klippy/kinematics/ratos_hybrid_corexy.py b/configuration/klippy/kinematics/ratos_hybrid_corexy.py index bdfdf9f26..90f13f347 100644 --- a/configuration/klippy/kinematics/ratos_hybrid_corexy.py +++ b/configuration/klippy/kinematics/ratos_hybrid_corexy.py @@ -67,7 +67,7 @@ def __init__(self, toolhead, config): 'safe_distance', None, minval=0.)) for s in self.get_steppers(): s.set_trapq(toolhead.get_trapq()) - toolhead.register_step_generator(s.generate_steps) + self.printer.register_event_handler("stepper_enable:motor_off", self._motor_off) # Setup boundary checks