diff --git a/src/Mod/Path/PathScripts/PathToolBit.py b/src/Mod/Path/PathScripts/PathToolBit.py index f468eacb0e..5b1b696594 100644 --- a/src/Mod/Path/PathScripts/PathToolBit.py +++ b/src/Mod/Path/PathScripts/PathToolBit.py @@ -367,6 +367,7 @@ class ToolBit(object): def Declaration(path): + PathLog.track(path) with open(path, 'r') as fp: return json.load(fp) diff --git a/src/Mod/Path/PathScripts/PathToolBitLibraryGui.py b/src/Mod/Path/PathScripts/PathToolBitLibraryGui.py index c0b4375c1d..72786f1a3f 100644 --- a/src/Mod/Path/PathScripts/PathToolBitLibraryGui.py +++ b/src/Mod/Path/PathScripts/PathToolBitLibraryGui.py @@ -140,14 +140,19 @@ class ModelFactory(object): library = json.load(fp) for toolBit in library['tools']: - nr = toolBit['nr'] - bit = PathToolBit.findBit(toolBit['path']) - if bit: - PathLog.track(bit) - tool = PathToolBit.Declaration(bit) - datamodel.appendRow(self._toolAdd(nr, tool, bit)) - else: - PathLog.error("Could not find tool #{}: {}".format(nr, toolBit['path'])) + try: + nr = toolBit['nr'] + bit = PathToolBit.findBit(toolBit['path']) + if bit: + PathLog.track(bit) + tool = PathToolBit.Declaration(bit) + datamodel.appendRow(self._toolAdd(nr, tool, bit)) + else: + PathLog.error("Could not find tool #{}: {}".format(nr, toolBit['path'])) + except Exception as e: + msg = "Error loading tool: {} : {}".format(toolBit['path'], e) + FreeCAD.Console.PrintError(msg) + def _toolAdd(self, nr, tool, path):