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

如何通过CATIA API获取未加载(断链)子文档的实例名与文件路径

获取CATIA中未加载(断链)部件/产品的实例名与参考路径

我们需要通过CATIA VBA API获取未在CATIA中加载(处于断链状态)的CATIA Part/Product的“Link to Reference”属性(即对应文件路径)以及实例名属性。

断链状态下的CATIA部件属性面板


已加载子对象的实现方法

常规VBA方法

Set cad = catia.ActiveDocument
Set childProds = cad.product.Products
 
Dim childProd As product
Set childProd = childProds.Item(1)
  
Dim instanceName As String
Dim filePath As String
instanceName = childProd.name
filePath = childProd.ReferenceProduct.Parent.fullName

CAIEngine API方法

Dim catEngine As StiEngine
Set catEngine = catia.GetItem("CAIEngine")
    
Dim product As ProductDocument
Set product = GetActiveProductDocument()
    
Dim rootItem As StiDBItem
Set rootItem = catEngine.GetStiDBItemFromAnyObject(product)
    
Dim childs As StiDBChildren
Set childs = rootItem.GetChildren
    
Dim curChild As StiDBItem
Set curChild = childs.Item(1)
                        
Dim filePath As String
filePath = curChild.GetDocumentFullPath()
           
Dim obj As Object
Set obj = curChild.GetDocument()
        
Dim refProd As product
Set refProd = obj.product.ReferenceProduct
    
Dim instanceName As String
    
Set cad = catia.ActiveDocument
Set childProds = cad.product.Products
Dim childProd As product
For i = 1 To childProds.count
    Set childProd = childProds.Item(i)
    If (childProd.ReferenceProduct Is refProd) Then
        instanceName = childProd.name
        Exit For
    End If
Next i

未加载子对象的问题

当子CATIA Part/Product对象未加载时,上述两种方法均无法正常工作:

  • 常规VBA方法中childProd.ReferenceProduct属性无法调用
  • CAIEngine API方法中curChild.GetDocument()方法无法执行

内容的提问来源于stack exchange,提问作者Александр Терентьев

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:06:02