From 6982350edf072004180a25a745bd143e0adb22f1 Mon Sep 17 00:00:00 2001 From: Nils Hesse Date: Fri, 25 Apr 2025 13:13:42 +0200 Subject: [PATCH] Add possibility to use custom macro for setting the offset --- z_calibration.py | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/z_calibration.py b/z_calibration.py index eb48b85..200c11d 100644 --- a/z_calibration.py +++ b/z_calibration.py @@ -53,6 +53,7 @@ def __init__(self, config): 'before_switch_gcode', '') self.end_gcode = gcode_macro.load_template(config, 'end_gcode', '') + self.set_offset_macro = config.get('offset_macro', None) self.query_endstops = self.printer.load_object(config, 'query_endstops') self.printer.register_event_handler("klippy:connect", @@ -456,16 +457,20 @@ def _add_probe_offset(self, site): probe_site[1] -= probe_offsets[1] return probe_site def _set_new_gcode_offset(self, offset): - # reset gcode z offset to 0 - gcmd_offset = self.gcode.create_gcode_command("SET_GCODE_OFFSET", - "SET_GCODE_OFFSET", - {'Z': 0.0}) - self.gcode_move.cmd_SET_GCODE_OFFSET(gcmd_offset) - # set new gcode z offset - gcmd_offset = self.gcode.create_gcode_command("SET_GCODE_OFFSET", - "SET_GCODE_OFFSET", - {'Z_ADJUST': offset}) - self.gcode_move.cmd_SET_GCODE_OFFSET(gcmd_offset) + if self.helper.set_offset_macro is not None: + self.gcmd.respond_info("%s: Using offset macro %s" % (self.gcmd.get_command(), self.helper.set_offset_macro)) + self.gcode.run_script_from_command("{} Z={}".format(self.helper.set_offset_macro, offset)) + else: + # reset gcode z offset to 0 + gcmd_offset = self.gcode.create_gcode_command("SET_GCODE_OFFSET", + "SET_GCODE_OFFSET", + {'Z': 0.0}) + self.gcode_move.cmd_SET_GCODE_OFFSET(gcmd_offset) + # set new gcode z offset + gcmd_offset = self.gcode.create_gcode_command("SET_GCODE_OFFSET", + "SET_GCODE_OFFSET", + {'Z_ADJUST': offset}) + self.gcode_move.cmd_SET_GCODE_OFFSET(gcmd_offset) def calibrate_z(self, switch_offset, nozzle_site, switch_site, bed_site): # execute start gcode self.helper.start_gcode.run_gcode_from_command()