diff options
author | Michael Rose <elementation@gmail.com> | 2021-06-02 09:11:19 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-02 11:11:19 -0400 |
commit | 27f8cf025ef348eb3fd16cc32a0d738e2effa9af (patch) | |
tree | fa75e4b3e1fd4f0711d1fbef8bdaad8d2e5827db /klippy/extras/z_tilt.py | |
parent | c148f17ea3391e3720961270a12eb0645f688e12 (diff) | |
download | kutter-27f8cf025ef348eb3fd16cc32a0d738e2effa9af.tar.gz kutter-27f8cf025ef348eb3fd16cc32a0d738e2effa9af.tar.xz kutter-27f8cf025ef348eb3fd16cc32a0d738e2effa9af.zip |
z_tilt: expose an 'applied' status to allow macros to skip QGL/Z_TILT_ADJUST (#4313)
This is useful for macros that'd like to skip QGL if already leveled,
e.g.:
```
{% if not printer.quad_gantry_level.applied %}
QUAD_GANTRY_LEVEL
{% endif %}
```
Signed-off-by: Michael Rose <elementation@gmail.com>
Diffstat (limited to 'klippy/extras/z_tilt.py')
-rw-r--r-- | klippy/extras/z_tilt.py | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/klippy/extras/z_tilt.py b/klippy/extras/z_tilt.py index c4c58c9e..f8a8c718 100644 --- a/klippy/extras/z_tilt.py +++ b/klippy/extras/z_tilt.py @@ -66,6 +66,22 @@ class ZAdjustHelper: curpos[2] += first_stepper_offset toolhead.set_position(curpos) +class ZAdjustStatus: + def __init__(self, printer): + self.applied = False + printer.register_event_handler("stepper_enable:motor_off", + self._motor_off) + def check_retry_result(self, retry_result): + if retry_result == "done": + self.applied = True + return retry_result + def reset(self): + self.applied = False + def get_status(self, eventtime): + return {'applied': self.applied} + def _motor_off(self, print_time): + self.reset() + class RetryHelper: def __init__(self, config, error_msg_extra = ""): self.gcode = config.get_printer().lookup_object('gcode') @@ -123,6 +139,7 @@ class ZTilt: self.retry_helper = RetryHelper(config) self.probe_helper = probe.ProbePointsHelper(config, self.probe_finalize) self.probe_helper.minimum_points(2) + self.z_status = ZAdjustStatus(self.printer) self.z_helper = ZAdjustHelper(config, len(self.z_positions)) # Register Z_TILT_ADJUST command gcode = self.printer.lookup_object('gcode') @@ -130,6 +147,7 @@ class ZTilt: desc=self.cmd_Z_TILT_ADJUST_help) cmd_Z_TILT_ADJUST_help = "Adjust the Z tilt" def cmd_Z_TILT_ADJUST(self, gcmd): + self.z_status.reset() self.retry_helper.start(gcmd) self.probe_helper.start_probe(gcmd) def probe_finalize(self, offsets, positions): @@ -159,7 +177,10 @@ class ZTilt: adjustments = [x*x_adjust + y*y_adjust + z_adjust for x, y in self.z_positions] self.z_helper.adjust_steppers(adjustments, speed) - return self.retry_helper.check_retry([p[2] for p in positions]) + return self.z_status.check_retry_result( + self.retry_helper.check_retry([p[2] for p in positions])) + def get_status(self, eventtime): + return self.z_status.get_status(eventtime) def load_config(config): return ZTilt(config) |