Merge branch 'master' into bugfix/toolbit-properties-alignment

This commit is contained in:
mlampert
2021-02-15 16:03:28 -08:00
committed by GitHub
5 changed files with 33 additions and 50 deletions

View File

@@ -102,7 +102,7 @@ class PathWorkbench (Workbench):
specialcmdlist = []
if PathPreferences.toolsReallyUseLegacyTools():
if PathPreferences.toolsUseLegacyTools():
toolcmdlist.append("Path_ToolLibraryEdit")
toolbitcmdlist = []
else:

View File

@@ -162,10 +162,6 @@ def toolsUseLegacyTools():
return preferences().GetBool(UseLegacyTools, False)
def toolsReallyUseLegacyTools():
return toolsUseLegacyTools()
def toolsStoreAbsolutePaths():
return preferences().GetBool(UseAbsoluteToolPaths, False)

View File

@@ -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):
legacyTool = PathPreferences.toolsReallyUseLegacyTools() if tool is None else isinstance(tool, Path.Tool)
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

View File

@@ -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_()

View File

@@ -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))