From 40e4eb8770b6bde249ce2493fb750bf7de4ce2bf Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Tue, 18 Nov 2025 11:23:03 +0100 Subject: [PATCH] Assembly: BOM: fix subassembly --- src/Mod/Assembly/App/BomObject.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Mod/Assembly/App/BomObject.cpp b/src/Mod/Assembly/App/BomObject.cpp index e1c5790c4f..83761e0f5c 100644 --- a/src/Mod/Assembly/App/BomObject.cpp +++ b/src/Mod/Assembly/App/BomObject.cpp @@ -45,6 +45,7 @@ #include "AssemblyObject.h" +#include "AssemblyLink.h" #include "BomObject.h" #include "BomObjectPy.h" @@ -185,7 +186,13 @@ void BomObject::addObjectChildrenToBom( if (!child) { continue; } - if (child->isDerivedFrom()) { + if (auto* asmLink = freecad_cast(child)) { + child = asmLink->getLinkedAssembly(); + if (!child) { + continue; + } + } + else if (child->isDerivedFrom()) { child = static_cast(child)->getLinkedObject(); if (!child) { continue; @@ -224,7 +231,8 @@ void BomObject::addObjectChildrenToBom( ++row; if ((child->isDerivedFrom() && detailSubAssemblies.getValue()) - || (child->isDerivedFrom() && detailParts.getValue())) { + || (!child->isDerivedFrom() && child->isDerivedFrom() + && detailParts.getValue())) { addObjectChildrenToBom(child->getOutList(), row, sub_index); } }