You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过VBA从CATIA V5的Geometrical Set中提取数据

CATIA V5 VBA提取几何集子项名称解决方案

问题分析

原代码无法获取HybridBodies子项名称的核心问题:

  • 未正确从选中的产品实例关联到对应Part文档
  • 复用外层循环变量i遍历HybridBodies子项,导致索引错误
  • 未对HybridBodies集合做完整遍历

修正后的代码

Sub GetGeoData()
    '--------------------Define CATIA------------------------------------------
    Dim CATIA As Object
    Dim MyDocument As Object
    Dim MyProduct As Object
    Dim oSel As Object
    Dim oSelItem As Object
    Dim oPart As Object
    Dim oHybridBodies As Object
    Dim oHybridBody As Object
    Dim i As Integer
    Dim k As Integer
    
    '获取CATIA实例
    On Error Resume Next
    Set CATIA = GetObject(, "CATIA.Application")
    If CATIA Is Nothing Then
        Set CATIA = CreateObject("CATIA.Application")
        CATIA.Visible = True
    End If
    On Error GoTo 0

    Set MyDocument = CATIA.ActiveDocument
    Set MyProduct = MyDocument.Product
    Set oSel = MyDocument.Selection
    
    '搜索名称以"Protection Set"开头的几何集(需确保选中的是产品结构中包含几何集的部件实例)
    oSel.Search "Name=Protection Set*,all"
    
    If oSel.Count = 0 Then
        MsgBox "未找到符合条件的几何集", vbInformation
        Exit Sub
    End If
    
    For i = 1 To oSel.Count
        Set oSelItem = oSel.Item(i)
        '获取选中对象对应的Part文档
        Set oPart = oSelItem.LeafProduct.ReferenceProduct.Parent
        
        '检查当前对象是否为Part文档
        If oPart.Type = "Part" Then
            Debug.Print "部件编号: " & oSelItem.LeafProduct.PartNumber
            Set oHybridBodies = oPart.HybridBodies
            
            '遍历当前Part下的所有几何集
            For k = 1 To oHybridBodies.Count
                Set oHybridBody = oHybridBodies.Item(k)
                Debug.Print "几何集名称: " & oHybridBody.Name
            Next k
        Else
            Debug.Print "选中对象不是Part文档,跳过"
        End If
    Next i
    
    oSel.Clear
End Sub

关键修改说明

  • 关联Part文档:通过LeafProduct.ReferenceProduct.Parent获取选中产品实例对应的Part文档,确保能正常访问HybridBodies集合
  • 独立循环遍历:使用单独变量k遍历HybridBodies子项,避免与外层循环索引冲突
  • 类型校验:增加Part文档类型判断,避免非Part对象引发的运行错误
  • 空结果提示:添加搜索无结果时的提示,优化操作体验

内容的提问来源于stack exchange,提问作者Sidamallappa LIMBIKAI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 05:25:02