如何只获得根级机构

How to get only root level bodies

你有什么建议如何 select 只有可见的和零件根部的物体吗?例如,我希望得到 selected only Lens - Outer Headlamp - LH - Clear and Lens - Outer Headlamp - LH - Black 来自这个结构:

我试过了

Dim objPart As part
Dim objBodies As Bodies
Set objPart = CATIA.ActiveDocument.part
Set objBodies = objPart.Bodies

objBodies.Count 的值是 113,所以我直接在 Catia 中通过搜索命令尝试了它,但我无法只获得那两个实体。你有什么想法吗?

终于得到答案:

Dim objPart As part
Dim objBodies As Bodies
dim rootBodiesCount as Integer
Set objPart = CATIA.ActiveDocument.part
Set objBodies = objPart.Bodies
rootBodiesCount = getRootBodiesCount(objBodies)

Function getRootBodiesCount(allBodies as Bodies) As Integer
  getRootBodiesCount = 0
  For i = 1 To allBodies.Count
    Dim inBool As Boolean: inBool = allBodies.Item(i).InVooleanOperation
    Dim visibility As Boolean: visibility = allBodies.Item(i).Visible
    If inBool = False Then
      If visibility Then getRootBodiesCount = getRootBodiesCount + 1
    End If
  Next
End Function