diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2018-01-16 18:58:41 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2018-01-28 12:19:26 -0500 |
commit | 1a679028582d7ae503d80a4bbc8ca233451633be (patch) | |
tree | a86f31c8b0269c762076520a6c04c7f4bc7a1ea6 /klippy/extras | |
parent | 01bb4b291eb48a2556096ce0d56a212f52405985 (diff) | |
download | kutter-1a679028582d7ae503d80a4bbc8ca233451633be.tar.gz kutter-1a679028582d7ae503d80a4bbc8ca233451633be.tar.xz kutter-1a679028582d7ae503d80a4bbc8ca233451633be.zip |
homing_override: Allow moves prior to homing an axis
Add support for disabling homing checks via the homing_override
mechanism. This may be useful to move an axis prior to homing it.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras')
-rw-r--r-- | klippy/extras/homing_override.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/klippy/extras/homing_override.py b/klippy/extras/homing_override.py index 1e23fb80..c773f444 100644 --- a/klippy/extras/homing_override.py +++ b/klippy/extras/homing_override.py @@ -6,16 +6,29 @@ class HomingOverride: def __init__(self, config): - printer = config.get_printer() + self.printer = config.get_printer() + self.start_pos = [config.getfloat('set_position_' + a, None) + for a in 'xyz'] self.script = config.get('gcode') self.in_script = False - self.gcode = printer.lookup_object('gcode') + self.gcode = self.printer.lookup_object('gcode') self.gcode.register_command("G28", self.cmd_G28) def cmd_G28(self, params): if self.in_script: # Was called recursively - invoke the real G28 command self.gcode.cmd_G28(params) return + # Calculate forced position (if configured) + toolhead = self.printer.lookup_object('toolhead') + pos = toolhead.get_position() + homing_axes = [] + for axis, loc in enumerate(self.start_pos): + if loc is not None: + pos[axis] = loc + homing_axes.append(axis) + toolhead.set_position(pos, homing_axes=homing_axes) + self.gcode.reset_last_position() + # Perform homing try: self.in_script = True self.gcode.run_script(self.script) |