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

CATIA电气线束缺陷分支名称获取宏开发问题

获取CATIA电气装配中存在缺陷的线束分支名称

你的问题出在两个核心点:

  • selection1.Name返回的是选择集本身的名称,并非选中的线束分支名称,所以会得到selection0()
  • selection1.Item(1).Value返回的是Product对象,它的Name属性对应零件号,而非电气分支的专有名称

要正确获取电气分支名称,需要从选中的Product对象中提取对应的电气技术对象,再读取其名称属性。修改后的代码如下:

Sub CATMain()
    Dim productDocument1 As ProductDocument
    Set productDocument1 = CATIA.ActiveDocument

    Dim selection1 As Selection
    Set selection1 = productDocument1.Selection

    ' 搜索存在缺陷的可分支对象
    selection1.Search "CATElectricalSearch.Branchable.IsResultOK=FALSE,all"

    If selection1.Count > 0 Then
        Dim branchTechObj As Object
        Dim branchName As String
        
        ' 遍历所有选中的缺陷分支
        For i = 1 To selection1.Count
            ' 获取选中元素对应的电气分支技术对象
            Set branchTechObj = selection1.Item(i).Value.GetTechnologicalObject("CATElectricalBranch")
            
            ' 读取电气分支的名称
            branchName = branchTechObj.Name
            
            ' 弹出显示分支名称,也可改为批量输出到文件/列表
            MsgBox "缺陷分支名称:" & branchName, vbInformation, "第" & i & "个缺陷分支"
        Next i
    Else
        MsgBox "未找到存在缺陷的线束分支", vbInformation
    End If
End Sub

关键说明:

  • selection1.Count:先判断是否搜索到结果,避免空选择集触发报错
  • GetTechnologicalObject("CATElectricalBranch"):从Product对象中提取对应的电气分支技术对象,这是获取电气专有属性的核心步骤
  • 循环遍历逻辑:支持批量处理多个缺陷分支,而非仅显示第一个结果

内容的提问来源于stack exchange,提问作者Megha P

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 09:24:57