From 4b2131f50106942dda4f54aaa0a87ff5a10885de Mon Sep 17 00:00:00 2001 From: schmidtw Date: Sun, 12 Oct 2025 14:49:28 -0700 Subject: [PATCH] Fix: Prevent attempting to access non-existent nodes This is defensive code that protects against attempting to dereference nodes that are not present, preventing the python code from throwing an AttributeError. --- src/Mod/Assembly/CommandInsertLink.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Mod/Assembly/CommandInsertLink.py b/src/Mod/Assembly/CommandInsertLink.py index dd614a5a8e..bf24c26b36 100644 --- a/src/Mod/Assembly/CommandInsertLink.py +++ b/src/Mod/Assembly/CommandInsertLink.py @@ -141,6 +141,15 @@ class TaskAssemblyInsertLink(QtCore.QObject): for insertionItem in self.insertionStack: object = insertionItem["addedObject"] translation = insertionItem["translation"] + + # Check if object.Name & object.LinkedObject.Name exists + if ( + not hasattr(object, "Name") + or not hasattr(object, "LinkedObject") + or not hasattr(object.LinkedObject, "Name") + ): + continue + commands = commands + ( f'item = assembly.newObject("App::Link", "{object.Name}")\n' f'item.LinkedObject = App.ActiveDocument.getObject("{object.LinkedObject.Name}")\n' @@ -149,7 +158,7 @@ class TaskAssemblyInsertLink(QtCore.QObject): if translation != App.Vector(): commands = commands + ( - f"item.Placement.base = App.Vector({translation.x}." + f"item.Placement.base = App.Vector({translation.x}," f"{translation.y}," f"{translation.z})\n" )