From 522734eb3ca8420514331652ff8a0d46f864e842 Mon Sep 17 00:00:00 2001 From: Markus Lampert Date: Mon, 15 Feb 2021 11:52:02 -0800 Subject: [PATCH 1/2] Removed obsolete preference api --- src/Mod/Path/InitGui.py | 2 +- src/Mod/Path/PathScripts/PathPreferences.py | 4 ---- src/Mod/Path/PathScripts/PathToolController.py | 2 +- src/Mod/Path/PathScripts/PathToolLibraryEditor.py | 2 +- src/Mod/Path/PathTests/TestPathToolController.py | 4 ++-- 5 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/Mod/Path/InitGui.py b/src/Mod/Path/InitGui.py index 9fa7ce6e61..9933dac5e8 100644 --- a/src/Mod/Path/InitGui.py +++ b/src/Mod/Path/InitGui.py @@ -102,7 +102,7 @@ class PathWorkbench (Workbench): specialcmdlist = [] - if PathPreferences.toolsReallyUseLegacyTools(): + if PathPreferences.toolsUseLegacyTools(): toolcmdlist.append("Path_ToolLibraryEdit") toolbitcmdlist = [] else: diff --git a/src/Mod/Path/PathScripts/PathPreferences.py b/src/Mod/Path/PathScripts/PathPreferences.py index a880219641..ff07fc1cbb 100644 --- a/src/Mod/Path/PathScripts/PathPreferences.py +++ b/src/Mod/Path/PathScripts/PathPreferences.py @@ -162,10 +162,6 @@ def toolsUseLegacyTools(): return preferences().GetBool(UseLegacyTools, False) -def toolsReallyUseLegacyTools(): - return toolsUseLegacyTools() - - def toolsStoreAbsolutePaths(): return preferences().GetBool(UseAbsoluteToolPaths, False) diff --git a/src/Mod/Path/PathScripts/PathToolController.py b/src/Mod/Path/PathScripts/PathToolController.py index 3f8405ccd3..9dbf185a54 100644 --- a/src/Mod/Path/PathScripts/PathToolController.py +++ b/src/Mod/Path/PathScripts/PathToolController.py @@ -226,7 +226,7 @@ class ToolController: def Create(name='TC: Default Tool', tool=None, toolNumber=1, assignViewProvider=True): - legacyTool = PathPreferences.toolsReallyUseLegacyTools() if tool is None else isinstance(tool, Path.Tool) + legacyTool = PathPreferences.toolsUseLegacyTools() if tool is None else isinstance(tool, Path.Tool) PathLog.track(tool, toolNumber, legacyTool) diff --git a/src/Mod/Path/PathScripts/PathToolLibraryEditor.py b/src/Mod/Path/PathScripts/PathToolLibraryEditor.py index dd37954687..da2bae994e 100644 --- a/src/Mod/Path/PathScripts/PathToolLibraryEditor.py +++ b/src/Mod/Path/PathScripts/PathToolLibraryEditor.py @@ -439,7 +439,7 @@ class CommandToolLibraryEdit(): pass def edit(self, job=None, cb=None): - if PathPreferences.toolsReallyUseLegacyTools(): + if PathPreferences.toolsUseLegacyTools(): editor = EditorPanel(job, cb) editor.setupUi() editor.form.exec_() diff --git a/src/Mod/Path/PathTests/TestPathToolController.py b/src/Mod/Path/PathTests/TestPathToolController.py index 5f8bff716c..67d2507ec6 100644 --- a/src/Mod/Path/PathTests/TestPathToolController.py +++ b/src/Mod/Path/PathTests/TestPathToolController.py @@ -37,7 +37,7 @@ class TestPathToolController(PathTestBase): FreeCAD.closeDocument(self.doc.Name) def createTool(self, name='t1', diameter=1.75): - if PathPreferences.toolsReallyUseLegacyTools(): + if PathPreferences.toolsUseLegacyTools(): return Path.Tool(name=name, diameter=diameter) attrs = {'shape': None, 'name': name, 'parameter': {'Diameter': diameter}, 'attribute': []} return PathToolBit.Factory.CreateFromAttrs(attrs, name) @@ -68,7 +68,7 @@ class TestPathToolController(PathTestBase): self.assertEqual(attrs['hrapid'], '28.0 mm/s') self.assertEqual(attrs['dir'], 'Reverse') self.assertEqual(attrs['speed'], 12000) - if PathPreferences.toolsReallyUseLegacyTools(): + if PathPreferences.toolsUseLegacyTools(): self.assertEqual(attrs['tool'], t.templateAttrs()) else: self.assertEqual(attrs['tool'], t.Proxy.templateAttrs(t)) From 35c1a005f1bf45e8438ad21066dbbc63564db842 Mon Sep 17 00:00:00 2001 From: Markus Lampert Date: Mon, 15 Feb 2021 12:18:49 -0800 Subject: [PATCH 2/2] Fixed TC creation from templates if legacy tools are enabled. --- .../Path/PathScripts/PathToolController.py | 69 ++++++++----------- 1 file changed, 28 insertions(+), 41 deletions(-) diff --git a/src/Mod/Path/PathScripts/PathToolController.py b/src/Mod/Path/PathScripts/PathToolController.py index 9dbf185a54..0a7633208d 100644 --- a/src/Mod/Path/PathScripts/PathToolController.py +++ b/src/Mod/Path/PathScripts/PathToolController.py @@ -60,35 +60,23 @@ class ToolControllerTemplate: class ToolController: - def __init__(self, obj, cTool=False): - PathLog.track('tool: {}'.format(cTool)) + def __init__(self, obj, legacyTool=False, createTool=True): + PathLog.track('tool: {}'.format(legacyTool)) - obj.addProperty("App::PropertyIntegerConstraint", "ToolNumber", - "Tool", QtCore.QT_TRANSLATE_NOOP("PathToolController", - "The active tool")) + obj.addProperty("App::PropertyIntegerConstraint", "ToolNumber", "Tool", QtCore.QT_TRANSLATE_NOOP("PathToolController", "The active tool")) obj.ToolNumber = (0, 0, 10000, 1) - self.ensureUseLegacyTool(obj, cTool) - obj.addProperty("App::PropertyFloat", "SpindleSpeed", "Tool", - QtCore.QT_TRANSLATE_NOOP("PathToolController", - "The speed of the cutting spindle in RPM")) - obj.addProperty("App::PropertyEnumeration", "SpindleDir", "Tool", - QtCore.QT_TRANSLATE_NOOP("PathToolController", - "Direction of spindle rotation")) + obj.addProperty("App::PropertyFloat", "SpindleSpeed", "Tool", QtCore.QT_TRANSLATE_NOOP("PathToolController", "The speed of the cutting spindle in RPM")) + obj.addProperty("App::PropertyEnumeration", "SpindleDir", "Tool", QtCore.QT_TRANSLATE_NOOP("PathToolController", "Direction of spindle rotation")) obj.SpindleDir = ['Forward', 'Reverse'] - obj.addProperty("App::PropertySpeed", "VertFeed", "Feed", - QtCore.QT_TRANSLATE_NOOP("PathToolController", - "Feed rate for vertical moves in Z")) - obj.addProperty("App::PropertySpeed", "HorizFeed", "Feed", - QtCore.QT_TRANSLATE_NOOP("PathToolController", - "Feed rate for horizontal moves")) - obj.addProperty("App::PropertySpeed", "VertRapid", "Rapid", - QtCore.QT_TRANSLATE_NOOP("PathToolController", - "Rapid rate for vertical moves in Z")) - obj.addProperty("App::PropertySpeed", "HorizRapid", "Rapid", - QtCore.QT_TRANSLATE_NOOP("PathToolController", - "Rapid rate for horizontal moves")) + obj.addProperty("App::PropertySpeed", "VertFeed", "Feed", QtCore.QT_TRANSLATE_NOOP("PathToolController", "Feed rate for vertical moves in Z")) + obj.addProperty("App::PropertySpeed", "HorizFeed", "Feed", QtCore.QT_TRANSLATE_NOOP("PathToolController", "Feed rate for horizontal moves")) + obj.addProperty("App::PropertySpeed", "VertRapid", "Rapid", QtCore.QT_TRANSLATE_NOOP("PathToolController", "Rapid rate for vertical moves in Z")) + obj.addProperty("App::PropertySpeed", "HorizRapid", "Rapid", QtCore.QT_TRANSLATE_NOOP("PathToolController", "Rapid rate for horizontal moves")) obj.setEditorMode('Placement', 2) + if createTool: + self.ensureUseLegacyTool(obj, legacyTool) + def onDocumentRestored(self, obj): obj.setEditorMode('Placement', 2) @@ -225,32 +213,31 @@ class ToolController: obj.addProperty("App::PropertyLink", "Tool", "Base", QtCore.QT_TRANSLATE_NOOP("PathToolController", "The tool used by this controller")) -def Create(name='TC: Default Tool', tool=None, toolNumber=1, assignViewProvider=True): +def Create(name='TC: Default Tool', tool=None, toolNumber=1, assignViewProvider=True, assignTool=True): legacyTool = PathPreferences.toolsUseLegacyTools() if tool is None else isinstance(tool, Path.Tool) PathLog.track(tool, toolNumber, legacyTool) obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython", name) obj.Label = name - obj.Proxy = ToolController(obj, legacyTool) + obj.Proxy = ToolController(obj, legacyTool, assignTool) if FreeCAD.GuiUp and assignViewProvider: ViewProvider(obj.ViewObject) - if tool is None: - if legacyTool: - tool = Path.Tool() - tool.Diameter = 5.0 - tool.Name = "Default Tool" - tool.CuttingEdgeHeight = 15.0 - tool.ToolType = "EndMill" - tool.Material = "HighSpeedSteel" - else: - tool = PathToolBit.Factory.Create() - if tool.ViewObject: - tool.ViewObject.Visibility = False - - if tool: + if assignTool: + if not tool: + if legacyTool: + tool = Path.Tool() + tool.Diameter = 5.0 + tool.Name = "Default Tool" + tool.CuttingEdgeHeight = 15.0 + tool.ToolType = "EndMill" + tool.Material = "HighSpeedSteel" + else: + tool = PathToolBit.Factory.Create() + if tool.ViewObject: + tool.ViewObject.Visibility = False obj.Tool = tool obj.ToolNumber = toolNumber return obj @@ -261,7 +248,7 @@ def FromTemplate(template, assignViewProvider=True): PathLog.track() name = template.get(ToolControllerTemplate.Name, ToolControllerTemplate.Label) - obj = Create(name, tool=False, assignViewProvider=True) + obj = Create(name, assignViewProvider=True, assignTool=False) obj.Proxy.setFromTemplate(obj, template) return obj