Merge pull request #24179 from tarman3/oldsim

CAM: Old simulator - Fix z for G2,G3
This commit is contained in:
sliptonic
2025-10-06 10:45:42 -05:00
committed by GitHub

View File

@@ -252,19 +252,19 @@ class PathSimulation:
cmd = self.opCommands[self.icmd]
pathSolid = None
if cmd.Name in ["G0"]:
if cmd.Name in ("G0", "G00"):
self.firstDrill = True
self.curpos = self.RapidMove(cmd, self.curpos)
if cmd.Name in ["G1", "G2", "G3"]:
if cmd.Name in ("G1", "G01", "G2", "G02", "G3", "G03"):
self.firstDrill = True
if self.skipStep:
self.curpos = self.RapidMove(cmd, self.curpos)
else:
(pathSolid, self.curpos) = self.GetPathSolid(self.tool, cmd, self.curpos)
if cmd.Name in ["G80"]:
if cmd.Name == "G80":
self.firstDrill = True
if cmd.Name in ["G73", "G81", "G82", "G83"]:
if cmd.Name in ("G73", "G81", "G82", "G83"):
if self.firstDrill:
extendcommand = Path.Command("G0", {"Z": cmd.r})
self.curpos = self.RapidMove(extendcommand, self.curpos)
@@ -313,15 +313,24 @@ class PathSimulation:
cmd = self.opCommands[self.icmd]
# for cmd in job.Path.Commands:
if cmd.Name in ["G0", "G1", "G2", "G3"]:
if cmd.Name in ("G0", "G00", "G1", "G01", "G2", "G02", "G3", "G03"):
index = self.icmd
if cmd.Name in ("G2", "G02", "G3", "G03"):
while cmd.z is None:
index -= 1
if index < 0:
cmd.z = 0
break
cmd.z = self.opCommands[index].z
self.firstDrill = True
if cmd.Name in ["G2", "G3"] and (cmd.k or 0) == 0:
if cmd.Name in ("G2", "G02", "G3", "G03") and (cmd.k or 0) == 0:
cx = self.curpos.Base.x + (cmd.i or 0)
cy = self.curpos.Base.y + (cmd.j or 0)
a0 = math.atan2(self.curpos.Base.y - cy, self.curpos.Base.x - cx)
a1 = math.atan2(cmd.y - cy, cmd.x - cx)
da = a1 - a0
if cmd.Name == "G3":
if cmd.Name in ("G3", "G03"):
da = da % (2 * math.pi)
else:
da = -((-da) % (2 * math.pi))
@@ -344,9 +353,9 @@ class PathSimulation:
self.cutMaterial.Mesh,
self.cutMaterialIn.Mesh,
) = self.voxSim.GetResultMesh()
if cmd.Name in ["G80"]:
if cmd.Name == "G80":
self.firstDrill = True
if cmd.Name in ["G73", "G81", "G82", "G83"]:
if cmd.Name in ("G73", "G81", "G82", "G83"):
extendcommands = []
if self.firstDrill:
extendcommands.append(Path.Command("G0", {"Z": cmd.r}))