From 39186b4836f4ae8f6a42b6315366bc57f29269e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jip=C3=A9?= <91841136+JipeB@users.noreply.github.com> Date: Tue, 28 Mar 2023 18:38:53 +0200 Subject: [PATCH 1/3] Update CNC.py Add Sensor variables --- bCNC/CNC.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bCNC/CNC.py b/bCNC/CNC.py index 855886968..1ad51ca80 100644 --- a/bCNC/CNC.py +++ b/bCNC/CNC.py @@ -746,6 +746,8 @@ class CNC: "stepover": 40.0, "PRB": None, "TLO": 0.0, + "Zsensor": 0.0 + "sensor": "" "version": "", "controller": "", "running": False, From b66711a0494c88b8168e0c5eb5a8dbdae68a8cf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jip=C3=A9?= <91841136+JipeB@users.noreply.github.com> Date: Thu, 30 Mar 2023 15:41:39 +0200 Subject: [PATCH 2/3] Update ProbePage.py --- bCNC/ProbePage.py | 49 ++++++++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/bCNC/ProbePage.py b/bCNC/ProbePage.py index 6ae5df8b6..279536bad 100644 --- a/bCNC/ProbePage.py +++ b/bCNC/ProbePage.py @@ -292,7 +292,7 @@ def __init__(self, master, app): CNCRibbon.PageFrame.__init__(self, master, "ProbeCommon", app) lframe = tkExtra.ExLabelFrame( - self, text=_("Common"), foreground="DarkBlue") + self, text=_("Z-Sensor"), foreground="DarkBlue") lframe.pack(side=TOP, fill=X) frame = lframe.frame @@ -341,23 +341,23 @@ def __init__(self, master, app): self.addWidget(ProbeCommonFrame.probeFeed) # ---- - # Tool offset + # Probe sensor row += 1 col = 0 - Label(frame, text=_("TLO")).grid(row=row, column=col, sticky=E) + Label(frame, text=_("Sensor Height")).grid(row=row, column=col, sticky=E) col += 1 - ProbeCommonFrame.tlo = tkExtra.FloatEntry( + ProbeCommonFrame.probeSensor = tkExtra.FloatEntry( frame, background=tkExtra.GLOBAL_CONTROL_BACKGROUND ) - ProbeCommonFrame.tlo.grid(row=row, column=col, sticky=EW) + ProbeCommonFrame.probeSensor.grid(row=row, column=col, sticky=EW) tkExtra.Balloon.set( - ProbeCommonFrame.tlo, _("Set tool offset for probing")) - self.addWidget(ProbeCommonFrame.tlo) - self.tlo.bind("", self.tloSet) - self.tlo.bind("", self.tloSet) + ProbeCommonFrame.probeSensor, _("Set sensor height offset for probing")) + self.addWidget(ProbeCommonFrame.probeSensor) + self.tlo.bind("", self.sensorSet) + self.tlo.bind("", self.sensorSet) col += 1 - b = Button(frame, text=_("set"), command=self.tloSet, padx=2, pady=1) + b = Button(frame, text=_("set"), command=self.sensorSet, padx=2, pady=1) b.grid(row=row, column=col, sticky=EW) self.addWidget(b) @@ -383,11 +383,9 @@ def __init__(self, master, app): self.loadConfig() # ------------------------------------------------------------------------ - def tloSet(self, event=None): + def sensorSet(self, event=None): try: - CNC.vars["TLO"] = float(ProbeCommonFrame.tlo.get()) - cmd = f"G43.1Z{ProbeCommonFrame.tlo.get()}" - self.sendGCode(cmd) + CNC.vars["Zsensor"] = float(ProbeCommonFrame.probeSensor.get()) except Exception: pass self.app.mcontrol.viewParameters() @@ -399,6 +397,7 @@ def probeUpdate(): CNC.vars["fastprbfeed"] = float( ProbeCommonFrame.fastProbeFeed.get()) CNC.vars["prbfeed"] = float(ProbeCommonFrame.probeFeed.get()) + CNC.vars["Zsensor"] = float(ProbeCommonFrame.probeSensor.get()) CNC.vars["prbcmd"] = str( ProbeCommonFrame.probeCmd.get().split()[0]) return False @@ -406,13 +405,13 @@ def probeUpdate(): return True # ------------------------------------------------------------------------ - def updateTlo(self): + def updateSensor(self): try: - if self.focus_get() is not ProbeCommonFrame.tlo: - state = ProbeCommonFrame.tlo.cget("state") - state = ProbeCommonFrame.tlo["state"] = NORMAL - ProbeCommonFrame.tlo.set(str(CNC.vars.get("TLO", ""))) - state = ProbeCommonFrame.tlo["state"] = state + if self.focus_get() is not ProbeCommonFrame.probeSensor: + state = ProbeCommonFrame.probeSensor.cget("state") + state = ProbeCommonFrame.probeSensor["state"] = NORMAL + ProbeCommonFrame.probeSensor.set(str(CNC.vars.get("Zsensor", ""))) + state = ProbeCommonFrame.probeSensor["state"] = state except Exception: pass @@ -421,7 +420,7 @@ def saveConfig(self): Utils.setFloat("Probe", "fastfeed", ProbeCommonFrame.fastProbeFeed.get()) Utils.setFloat("Probe", "feed", ProbeCommonFrame.probeFeed.get()) - Utils.setFloat("Probe", "tlo", ProbeCommonFrame.tlo.get()) + Utils.setFloat("Probe", "sensor", ProbeCommonFrame.probeSensor.get()) Utils.setFloat("Probe", "cmd", ProbeCommonFrame.probeCmd.get().split()[0]) @@ -429,7 +428,7 @@ def saveConfig(self): def loadConfig(self): ProbeCommonFrame.fastProbeFeed.set(Utils.getFloat("Probe", "fastfeed")) ProbeCommonFrame.probeFeed.set(Utils.getFloat("Probe", "feed")) - ProbeCommonFrame.tlo.set(Utils.getFloat("Probe", "tlo")) + ProbeCommonFrame.probeSensor.set(Utils.getFloat("Probe", "sensor")) cmd = Utils.getStr("Probe", "cmd") for p in PROBE_CMD: if p.split()[0] == cmd: @@ -887,6 +886,7 @@ def updateProbe(self): if self.probeautogotonext: self.probeautogotonext = False self.goto2Probe() + self.gotoAfterProbe() # ----------------------------------------------------------------------- def warnMessage(self): @@ -942,6 +942,11 @@ def probe(self, event=None): cmd += f"F{v}" if ok: + self.sendGCode(cmd) # search sensor switch + p = WCS.index(CNC.vars["WCS"]) + 1 # Actual Work Space + cmd = "G10 L20 P%d Z%s"%((p), ProbeCommonFrame.probeSensor.get()) # Sensor height compensation + self.sendGCode(cmd) + cmd = "G4 P1" # Wait 1s self.sendGCode(cmd) else: messagebox.showerror( From d68be29d151f3726e8f11c8907af7d7d24fa441a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jip=C3=A9?= <91841136+JipeB@users.noreply.github.com> Date: Sun, 2 Apr 2023 16:35:08 +0200 Subject: [PATCH 3/3] Update ProbePage.py --- bCNC/ProbePage.py | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/bCNC/ProbePage.py b/bCNC/ProbePage.py index 279536bad..915eb1735 100644 --- a/bCNC/ProbePage.py +++ b/bCNC/ProbePage.py @@ -2223,11 +2223,12 @@ def getProbe(self): self.setProbeParams() # ----------------------------------------------------------------------- - def updateTool(self): + def updateToolHeight(self): state = self.toolHeight.cget("state") self.toolHeight.config(state=NORMAL) self.toolHeight.set(CNC.vars["toolheight"]) self.toolHeight.config(state=state) + self.event_generate("<>") # ----------------------------------------------------------------------- def calibrate(self, event=None): @@ -2239,31 +2240,18 @@ def calibrate(self, event=None): lines.append("g53 g0 x[toolchangex] y[toolchangey]") lines.append("g53 g0 x[toolprobex] y[toolprobey]") lines.append("g53 g0 z[toolprobez]") - if CNC.vars["fastprbfeed"]: - prb_reverse = {"2": "4", "3": "5", "4": "2", "5": "3"} - CNC.vars["prbcmdreverse"] = ( - CNC.vars["prbcmd"][:-1] + prb_reverse[CNC.vars["prbcmd"][-1]] - ) - currentFeedrate = CNC.vars["fastprbfeed"] - while currentFeedrate > CNC.vars["prbfeed"]: - lines.append("%wait") - lines.append( - f"g91 [prbcmd] {CNC.fmt('f', currentFeedrate)} " - + "z[toolprobez-mz-tooldistance]" - ) - lines.append("%wait") - lines.append( - f"[prbcmdreverse] {CNC.fmt('f', currentFeedrate)} " - + "z[toolprobez-mz]" - ) - currentFeedrate /= 10 - lines.append("%wait") - lines.append("g91 [prbcmd] f[prbfeed] z[toolprobez-mz-tooldistance]") - lines.append("g4 p1") # wait a sec + lines.append("g91") + lines.append("[prbcmd] z-[tooldistance] f[fastprbfeed]") # switch search + lines.append("g0 z[1]") # Switch clearence + lines.append("[prbcmd] z[-2] f[prbfeed]") # Measure + lines.append("g90") # restore initial state + lines.append("g4 p1") # wait a sec lines.append("%wait") lines.append("%global toolheight; toolheight=wz") lines.append("%global toolmz; toolmz=prbz") + lines.append("%global Zsensor; Zsensor=wz") # sensor height update lines.append("%update toolheight") + lines.append("%update Zsensor") lines.append("g53 g0 z[toolchangez]") lines.append("g53 g0 x[toolchangex] y[toolchangey]") lines.append("g90")