From fb3a8186880edfb029a32f766a2bedf53f75a775 Mon Sep 17 00:00:00 2001 From: Daniel Wood Date: Sun, 1 Mar 2020 20:00:03 +0000 Subject: [PATCH] Don't change z height without a tool set. This commit omits the height change for the initial WCS. For all subsequent WCS changes we set the height as we know what tool we have in the machine. --- src/Mod/Path/PathScripts/PathPost.py | 49 +++++++++++++++------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/src/Mod/Path/PathScripts/PathPost.py b/src/Mod/Path/PathScripts/PathPost.py index 4a7cf1da5e..ad754bfc7b 100644 --- a/src/Mod/Path/PathScripts/PathPost.py +++ b/src/Mod/Path/PathScripts/PathPost.py @@ -287,12 +287,14 @@ class CommandPathPost: # fixture before moving to the next. currTool = None - for f in wcslist: + for index, f in enumerate(wcslist): # create an object to serve as the fixture path fobj = _TempObject() c1 = Path.Command(f) - c2 = Path.Command("G0 Z" + str(job.Stock.Shape.BoundBox.ZMax + job.SetupSheet.ClearanceHeightOffset.Value)) - fobj.Path = Path.Path([c1, c2]) + fobj.Path = Path.Path([c1]) + if index != 0: + c2 = Path.Command("G0 Z" + str(job.Stock.Shape.BoundBox.ZMax + job.SetupSheet.ClearanceHeightOffset.Value)) + fobj.Path.addCommands(c2) fobj.InList.append(job) sublist = [fobj] @@ -356,29 +358,30 @@ class CommandPathPost: # Order by operation means ops are done in each fixture in # sequence. currTool = None - fixturelist = [] - for f in wcslist: - # create an object to serve as the fixture path - fobj = _TempObject() - c1 = Path.Command(f) - c2 = Path.Command("G0 Z" + str(job.Stock.Shape.BoundBox.ZMax + job.SetupSheet.ClearanceHeightOffset.Value)) - fobj.Path = Path.Path([c1, c2]) - fobj.InList.append(job) - fixturelist.append(fobj) + firstFixture = True # Now generate the gcode for obj in job.Operations.Group: - sublist = [] - PathLog.debug("obj: {}".format(obj.Name)) - for fixture in fixturelist: - sublist.append(fixture) - tc = PathUtil.toolControllerForOp(obj) - if tc is not None and obj.Active: - if tc.ToolNumber != currTool: - sublist.append(tc) - currTool = tc.ToolNumber - sublist.append(obj) - postlist.append(sublist) + if obj.Active: + sublist = [] + PathLog.debug("obj: {}".format(obj.Name)) + for f in wcslist: + fobj = _TempObject() + c1 = Path.Command(f) + fobj.Path = Path.Path([c1]) + if not firstFixture: + c2 = Path.Command("G0 Z" + str(job.Stock.Shape.BoundBox.ZMax + job.SetupSheet.ClearanceHeightOffset.Value)) + fobj.Path.addCommands(c2) + fobj.InList.append(job) + sublist.append(fobj) + firstFixture = False + tc = PathUtil.toolControllerForOp(obj) + if tc is not None: + if tc.ToolNumber != currTool: + sublist.append(tc) + currTool = tc.ToolNumber + sublist.append(obj) + postlist.append(sublist) fail = True rc = '' # pylint: disable=unused-variable