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

已加载子对象的实现方法
常规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,提问作者Александр Терентьев
相关产品推荐
相关产品推荐

