From 640c70614261aabc8a3cfe52ff4ccd3c8eafa8bb Mon Sep 17 00:00:00 2001 From: zkk <1007518571@qq.com> Date: Thu, 5 Jun 2025 16:21:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8E=A2=E9=92=88=E5=81=8F?= =?UTF-8?q?=E7=A7=BB=E6=A0=A1=E5=87=86=E9=A1=B5=E9=9D=A2=20=E4=BD=BF?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E7=9A=84=E5=80=BC=E5=92=8C=E6=96=B0=E7=9A=84?= =?UTF-8?q?=E5=80=BC=E4=BF=9D=E6=8C=81=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- panels/zcalibrate.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/panels/zcalibrate.py b/panels/zcalibrate.py index 97c6f75a..ba79c392 100644 --- a/panels/zcalibrate.py +++ b/panels/zcalibrate.py @@ -19,6 +19,7 @@ class Panel(ScreenPanel): self.mesh_radius = None self.mesh_origin = [0, 0] self.zero_ref = [] + self.probe_z_offset = None self.z_hop_speed = 15.0 self.z_hop = 5.0 self.probe = self._printer.get_probe() @@ -249,6 +250,8 @@ class Panel(ScreenPanel): def activate(self): if self._printer.get_stat("manual_probe", "is_active"): self.buttons_calibrating() + self.probe_z_offset = None + self.widgets['zoffset'].set_text("?") else: self.buttons_not_calibrating() @@ -261,7 +264,10 @@ class Panel(ScreenPanel): if "manual_probe" in data: if data["manual_probe"]["is_active"]: self.buttons_calibrating() + if self._printer.get_stat('manual_probe', 'z_position_upper') is None: + self.probe_z_offset = self._printer.data['gcode_move']['gcode_position'][2] - 5 else: + self.probe_z_offset = None self.buttons_not_calibrating() elif action == "notify_gcode_response": if "out of range" in data.lower(): @@ -274,7 +280,10 @@ class Panel(ScreenPanel): def update_position(self, position): self.widgets['zposition'].set_text(f"Z: {position[2]:.3f}") - self.widgets['zoffset'].set_text(f"{abs(position[2] - self.z_offset):.3f}") + if self.probe_z_offset is not None: + self.widgets['zoffset'].set_text(f"{(self.probe_z_offset - position[2]):.3f}") + else: + self.widgets['zoffset'].set_text("?") def change_distance(self, widget, distance): logging.info(f"### Distance {distance}")