diff --git a/src/Mod/Path/PathScripts/PathToolBit.py b/src/Mod/Path/PathScripts/PathToolBit.py index a92ad85f64..573376fb7d 100644 --- a/src/Mod/Path/PathScripts/PathToolBit.py +++ b/src/Mod/Path/PathScripts/PathToolBit.py @@ -54,11 +54,9 @@ PathLog.setLevel(PathLog.Level.INFO, PathLog.thisModule()) def translate(context, text, disambig=None): return PySide.QtCore.QCoreApplication.translate(context, text, disambig) -def _findToolFile(name, containerFile, typ, dbg=_DebugFindTool): +def _findToolFile(name, containerFile, typ): PathLog.track(name) if os.path.exists(name): # absolute reference - if dbg: - PathLog.debug("Found {} at {}".format(typ, name)) return name if containerFile: @@ -88,22 +86,24 @@ def _findToolFile(name, containerFile, typ, dbg=_DebugFindTool): return None -def _findShape(name, path=None): - '''_findShape(name, path) ... search for name, full and partially starting with path in known shape directories''' +def findToolShape(name, path=None): + '''findToolShape(name, path) ... search for name, if relative path look in path''' return _findToolFile(name, path, 'Shape') -def findBit(name, path=None): +def findToolBit(name, path=None): + '''findToolBit(name, path) ... search for name, if relative path look in path''' PathLog.track(name) if name.endswith('.fctb'): return _findToolFile(name, path, 'Bit') return _findToolFile("{}.fctb".format(name), path, 'Bit') -def findLibrary(name, path=None, dbg=False): +def findToolLibrary(name, path=None): + '''findToolLibrary(name, path) ... search for name, if relative path look in path''' if name.endswith('.fctl'): - return _findToolFile(name, path, 'Library', dbg) - return _findToolFile("{}.fctl".format(name), path, 'Library', dbg) + return _findToolFile(name, path, 'Library') + return _findToolFile("{}.fctl".format(name), path, 'Library') def _findRelativePath(path, typ): @@ -222,7 +222,7 @@ class ToolBit(object): doc = FreeCAD.getDocument(d) break if doc is None: - p = _findShape(p) + p = findToolShape(p, path if path else obj.File) if not path and p != obj.BitShape: obj.BitShape = p PathLog.debug("ToolBit {} using shape file: {}".format(obj.Label, p)) @@ -330,7 +330,7 @@ class ToolBit(object): def getBitThumbnail(self, obj): if obj.BitShape: - path = _findShape(obj.BitShape) + path = findToolShape(obj.BitShape) if path: with open(path, 'rb') as fd: try: diff --git a/src/Mod/Path/PathScripts/PathToolBitLibraryGui.py b/src/Mod/Path/PathScripts/PathToolBitLibraryGui.py index 7d853e136b..c4fd89a8a4 100644 --- a/src/Mod/Path/PathScripts/PathToolBitLibraryGui.py +++ b/src/Mod/Path/PathScripts/PathToolBitLibraryGui.py @@ -143,7 +143,7 @@ class ModelFactory(object): for toolBit in library['tools']: try: nr = toolBit['nr'] - bit = PathToolBit.findBit(toolBit['path']) + bit = PathToolBit.findToolBit(toolBit['path'], path) if bit: PathLog.track(bit) tool = PathToolBit.Declaration(bit) diff --git a/src/Mod/Path/PathTests/TestPathToolBit.py b/src/Mod/Path/PathTests/TestPathToolBit.py index 6d3b1022b4..9d1e05e5c1 100644 --- a/src/Mod/Path/PathTests/TestPathToolBit.py +++ b/src/Mod/Path/PathTests/TestPathToolBit.py @@ -44,66 +44,66 @@ class TestPathToolBit(PathTestUtils.PathTestBase): def test00(self): '''Find a tool shape from file name''' - path = PathToolBit._findShape('endmill.fcstd') + path = PathToolBit.findToolShape('endmill.fcstd') self.assertIsNot(path, None) self.assertNotEqual(path, 'endmill.fcstd') def test01(self): '''Not find a relative path shape if not stored in default location''' - path = PathToolBit._findShape(TestToolShapeName) + path = PathToolBit.findToolShape(TestToolShapeName) self.assertIsNone(path) def test02(self): '''Find a relative path shape if it's local to a bit path''' - path = PathToolBit._findShape(TestToolShapeName, testToolBit()) + path = PathToolBit.findToolShape(TestToolShapeName, testToolBit()) self.assertIsNot(path, None) self.assertEqual(path, testToolShape()) def test03(self): '''Not find a tool shape from an invalid absolute path.''' - path = PathToolBit._findShape(testToolShape(TestInvalidDir)) + path = PathToolBit.findToolShape(testToolShape(TestInvalidDir)) self.assertIsNone(path) def test04(self): '''Find a tool shape from a valid absolute path.''' - path = PathToolBit._findShape(testToolShape()) + path = PathToolBit.findToolShape(testToolShape()) self.assertIsNot(path, None) self.assertEqual(path, testToolShape()) def test10(self): '''Find a tool bit from file name''' - path = PathToolBit.findBit('5mm_Endmill.fctb') + path = PathToolBit.findToolBit('5mm_Endmill.fctb') self.assertIsNot(path, None) self.assertNotEqual(path, '5mm_Endmill.fctb') def test11(self): '''Not find a relative path bit if not stored in default location''' - path = PathToolBit.findBit(TestToolBitName) + path = PathToolBit.findToolBit(TestToolBitName) self.assertIsNone(path) def test12(self): '''Find a relative path bit if it's local to a library path''' - path = PathToolBit.findBit(TestToolBitName, testToolLibrary()) + path = PathToolBit.findToolBit(TestToolBitName, testToolLibrary()) self.assertIsNot(path, None) self.assertEqual(path, testToolBit()) def test13(self): '''Not find a tool bit from an invalid absolute path.''' - path = PathToolBit.findBit(testToolBit(TestInvalidDir)) + path = PathToolBit.findToolBit(testToolBit(TestInvalidDir)) self.assertIsNone(path) def test14(self): '''Find a tool bit from a valid absolute path.''' - path = PathToolBit.findBit(testToolBit()) + path = PathToolBit.findToolBit(testToolBit()) self.assertIsNot(path, None) self.assertEqual(path, testToolBit()) @@ -111,14 +111,14 @@ class TestPathToolBit(PathTestUtils.PathTestBase): def test20(self): '''Find a tool library from file name''' - path = PathToolBit.findBit('5mm_Endmill.fctb') + path = PathToolBit.findToolLibrary('Default.fctl') self.assertIsNot(path, None) - self.assertNotEqual(path, '5mm_Endmill.fctb') + self.assertNotEqual(path, 'Default.fctl') def test21(self): '''Not find a relative path library if not stored in default location''' - path = PathToolBit.findBit(TestToolBitName) + path = PathToolBit.findToolLibrary(TestToolLibraryName) self.assertIsNone(path) @@ -130,13 +130,13 @@ class TestPathToolBit(PathTestUtils.PathTestBase): def test23(self): '''Not find a tool library from an invalid absolute path.''' - path = PathToolBit.findBit(testToolBit(TestInvalidDir)) + path = PathToolBit.findToolLibrary(testToolLibrary(TestInvalidDir)) self.assertIsNone(path) def test24(self): '''Find a tool library from a valid absolute path.''' - path = PathToolBit.findBit(testToolBit()) + path = PathToolBit.findToolBit(testToolBit()) self.assertIsNot(path, None) self.assertEqual(path, testToolBit())