Skip legacy tools in job templates and emit error msg

This commit is contained in:
Markus Lampert
2022-10-11 21:42:54 -07:00
parent 19473a9391
commit c74a0ad3e5
3 changed files with 25 additions and 11 deletions

View File

@@ -604,7 +604,11 @@ class ObjectJob:
if attrs.get(JobTemplate.ToolController):
for tc in attrs.get(JobTemplate.ToolController):
tcs.append(PathToolController.FromTemplate(tc))
ctrl = PathToolController.FromTemplate(tc)
if ctrl:
tcs.append(ctrl)
else:
Path.Log.debug(f"skipping TC {tc['name']}")
if attrs.get(JobTemplate.Stock):
obj.Stock = PathStock.CreateFromTemplate(
obj, attrs.get(JobTemplate.Stock)
@@ -622,7 +626,8 @@ class ObjectJob:
obj.SplitOutput = attrs.get(JobTemplate.SplitOutput)
Path.Log.debug("setting tool controllers (%d)" % len(tcs))
obj.Tools.Group = tcs
if tcs:
obj.Tools.Group = tcs
else:
Path.Log.error(
"Unsupported PathJob template version {}".format(

View File

@@ -187,13 +187,20 @@ class ToolController:
template.get(ToolControllerTemplate.ToolNumber)
)
if template.get(ToolControllerTemplate.Tool):
self.ensureToolBit(obj)
toolVersion = template.get(ToolControllerTemplate.Tool).get(
ToolControllerTemplate.Version
)
self.ensureToolBit(obj)
obj.Tool = PathToolBit.Factory.CreateFromAttrs(
template.get(ToolControllerTemplate.Tool)
)
if toolVersion == 2:
obj.Tool = PathToolBit.Factory.CreateFromAttrs(
template.get(ToolControllerTemplate.Tool)
)
else:
obj.Tool = None
if toolVersion == 1:
Path.Log.error(f"{obj.Name} - legacy Tools no longer supported - ignoring")
else:
Path.Log.error(f"{obj.Name} - unknown Tool version {toolVersion} - ignoring")
if (
obj.Tool
and obj.Tool.ViewObject
@@ -246,7 +253,7 @@ class ToolController:
return attrs
def execute(self, obj):
Path.Log.track()
Path.Log.track(obj.Name)
args = {
"toolnumber": obj.ToolNumber,
@@ -304,7 +311,7 @@ def Create(
assignTool=True,
):
Path.Log.track(tool, toolNumber)
Path.Log.track(name, tool, toolNumber, assignViewProvider, assignTool)
obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython", name)
obj.Label = name
@@ -333,8 +340,10 @@ def FromTemplate(template, assignViewProvider=True):
name = template.get(ToolControllerTemplate.Name, ToolControllerTemplate.Label)
obj = Create(name, assignViewProvider=True, assignTool=False)
obj.Proxy.setFromTemplate(obj, template)
return obj
if obj.Tool:
return obj
FreeCAD.ActiveDocument.removeObject(obj.Name)
return None
if FreeCAD.GuiUp:

View File

@@ -119,7 +119,7 @@ class ViewProvider:
def claimChildren(self):
obj = self.vobj.Object
if obj and obj.Proxy:
if obj and obj.Proxy and obj.Tool:
return [obj.Tool]
return []