From 56051b83bc71aeca1bc52263dd7ac6abd8af7a80 Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Wed, 13 Mar 2024 14:48:59 +0100 Subject: [PATCH] Assembly: Remove bad joints : joints between a part and itself. Fixes #12752 --- src/Mod/Assembly/App/AssemblyObject.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Mod/Assembly/App/AssemblyObject.cpp b/src/Mod/Assembly/App/AssemblyObject.cpp index a88c1c8ce3..3ca1b7e60a 100644 --- a/src/Mod/Assembly/App/AssemblyObject.cpp +++ b/src/Mod/Assembly/App/AssemblyObject.cpp @@ -419,8 +419,11 @@ std::vector AssemblyObject::getJoints(bool updateJCS, bool continue; } - if (!getLinkObjFromProp(joint, "Part1") || !getLinkObjFromProp(joint, "Part2")) { + auto* part1 = getLinkObjFromProp(joint, "Part1"); + auto* part2 = getLinkObjFromProp(joint, "Part2"); + if (!part1 || !part2 || part1->getFullName() == part2->getFullName()) { // Remove incomplete joints. Left-over when the user delets a part. + // Remove incoherent joints (self-pointing joints) if (delBadJoints) { getDocument()->removeObject(joint->getNameInDocument()); }