diff --git a/src/Mod/Assembly/CommandCreateJoint.py b/src/Mod/Assembly/CommandCreateJoint.py index e741513772..92462016d5 100644 --- a/src/Mod/Assembly/CommandCreateJoint.py +++ b/src/Mod/Assembly/CommandCreateJoint.py @@ -83,7 +83,7 @@ class CommandCreateJointFixed: } def IsActive(self): - if UtilsAssembly.activePart: + if UtilsAssembly.activePart() is not None: return UtilsAssembly.assembly_has_at_least_n_parts(2) return UtilsAssembly.isAssemblyGrounded() and UtilsAssembly.assembly_has_at_least_n_parts(2) diff --git a/src/Mod/Assembly/UtilsAssembly.py b/src/Mod/Assembly/UtilsAssembly.py index 9a8a39570a..4ddd3e0a1b 100644 --- a/src/Mod/Assembly/UtilsAssembly.py +++ b/src/Mod/Assembly/UtilsAssembly.py @@ -38,29 +38,27 @@ __author__ = "Ondsel" __url__ = "https://www.freecad.org" -def activeAssembly(): +def activePartOrAssembly(): doc = Gui.ActiveDocument if doc is None or doc.ActiveView is None: return None - active_assembly = doc.ActiveView.getActiveObject("part") + return doc.ActiveView.getActiveObject("part") - if active_assembly is not None and active_assembly.Type == "Assembly": + +def activeAssembly(): + active_assembly = activePartOrAssembly() + if active_assembly is not None and active_assembly.isDerivedFrom("Assembly::AssemblyObject"): return active_assembly return None def activePart(): - doc = Gui.ActiveDocument + active_part = activePartOrAssembly() - if doc is None or doc.ActiveView is None: - return None - - active_part = doc.ActiveView.getActiveObject("part") - - if active_part is not None and active_part.Type != "Assembly": + if active_part is not None and not active_part.isDerivedFrom("Assembly::AssemblyObject"): return active_part return None