如何获取树中所选零件的“实例名称”

时间:2019-07-08 22:25:13

标签: vba catia

我正在编写宏,该宏将从装配中的选定零件中创建BOM表。

我可以得到装配中零件的“零件号”,而我不能得到所选零件的“实例名称”。

这里的代码调用“选择”选项卡,然后尝试获取名称。

.concat()

我做错了什么?

1 个答案:

答案 0 :(得分:2)

如果要实例化,则需要选择“产品”。 所以...

InputObjectType(0) = "Product"
...
sInstanceName = ItemSelection.Item(i).Value.Name

当某人选择部件/子部件时会发生什么?没什么不同,因为子装配体也有实例名称。

但是,如果您只想包含实际的CATPart,则必须过滤值选择后的值,例如...

Dim oInstProd as product
set oInstProd = ItemSelection.Item(i).Value
if TypeName(oInstProd.ReferenceProduct.Parent) = "PartDocument" Then
.... do stuff with only parts...
end If

如果您使用缓存模式,则ReferenceProduct属性会给您带来麻烦(它将引发错误)。但是,如果需要的话,这是一种解决方法。