Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jipe b patch 2 #1830

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions bCNC/CNC.py
Original file line number Diff line number Diff line change
Expand Up @@ -746,6 +746,8 @@ class CNC:
"stepover": 40.0,
"PRB": None,
"TLO": 0.0,
"Zsensor": 0.0
"sensor": ""
"version": "",
"controller": "",
"running": False,
Expand Down
81 changes: 37 additions & 44 deletions bCNC/ProbePage.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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("<Return>", self.tloSet)
self.tlo.bind("<KP_Enter>", self.tloSet)
ProbeCommonFrame.probeSensor, _("Set sensor height offset for probing"))
self.addWidget(ProbeCommonFrame.probeSensor)
self.tlo.bind("<Return>", self.sensorSet)
self.tlo.bind("<KP_Enter>", 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)

Expand All @@ -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()
Expand All @@ -399,20 +397,21 @@ 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
except Exception:
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

Expand All @@ -421,15 +420,15 @@ 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])

# -----------------------------------------------------------------------
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:
Expand Down Expand Up @@ -887,6 +886,7 @@ def updateProbe(self):
if self.probeautogotonext:
self.probeautogotonext = False
self.goto2Probe()
self.gotoAfterProbe()

# -----------------------------------------------------------------------
def warnMessage(self):
Expand Down Expand Up @@ -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(
Expand Down Expand Up @@ -2218,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("<<StateTool>>")

# -----------------------------------------------------------------------
def calibrate(self, event=None):
Expand All @@ -2234,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")
Expand Down