From b010300852db124626cfa50cd4ffa84040c58d66 Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Mon, 17 Nov 2025 17:50:32 +0100 Subject: [PATCH] Assembly: Fix joint on Body-LCS not working --- src/Mod/Assembly/App/AssemblyUtils.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Mod/Assembly/App/AssemblyUtils.cpp b/src/Mod/Assembly/App/AssemblyUtils.cpp index 46c0b67466..2848dcc7b6 100644 --- a/src/Mod/Assembly/App/AssemblyUtils.cpp +++ b/src/Mod/Assembly/App/AssemblyUtils.cpp @@ -544,10 +544,22 @@ App::DocumentObject* getObjFromRef(const App::DocumentObject* obj, const std::st const auto handlePartDesignBody = [&](App::DocumentObject* obj, std::vector::const_iterator it) -> App::DocumentObject* { - const auto nextIt = std::next(it); + auto nextIt = std::next(it); if (nextIt != names.end()) { for (auto* obji : obj->getOutList()) { if (*nextIt == obji->getNameInDocument() && isBodySubObject(obji)) { + // if obji is a LCS then perhaps we need to resolve one more level + if (auto* lcs = freecad_cast(obji)) { + nextIt = std::next(nextIt); + if (nextIt != names.end()) { + for (auto* objj : lcs->baseObjects()) { + if (*nextIt == objj->getNameInDocument() + && objj->isDerivedFrom()) { + return objj; + } + } + } + } return obji; } }