Skip legacy tools in job templates and emit error msg
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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 []
|
||||
|
||||
|
||||
Reference in New Issue
Block a user