选择零件或产品

我有一个像这样的程序集

RootProduct:

  • 带零件的子产品
  • 第1部分
  • 第N部分

我正在编写代码,以检查用户选择了哪种类型的项目,并将具有我自己的参数的新零件添加到所选产品。 而且我在检查选择了哪个用户时遇到了问题。 如果使用以下代码:

InputType(0) = "Product"
Set ItemSelection = actDoc.Selection
ItemSelection.Clear 
SelStatus = ItemSelection.SelectElement2(InputType,"Choose Product",True)
If SelStatus = "Cancel" Then
    Exit Sub
End If
If ItemSelection.Item(1).Type = "Product" Then
    ' add new Part

    ElseIf ItemSelection.Item(1).Type = "Part" Then
        MsgBox "It's Part. Script closed."
        Exit Sub
End If

但是问题是在CATIA树中,“零件”和“产品”具有相同的类型-产品。

Like this

可能存在另一种方法,该方法如何检查用户选择的数据类型? 谢谢。

anhuihaidong 回答:选择零件或产品

Dim bIsProd as Boolean
Dim oSelectedProd as Product
Set oSelectedProd = ItemSelection.Item(1).Value
bIsProd = typename(oSelectedProd.ReferenceProduct.Parent) = "ProductDocument"

如果您的程序集使用“可视化模式”,则稍微复杂一些。在这种情况下,属性ReferenceProduct将失败。但是,如果装配是新打开的,并且在“可视化模式”下,您可能会认为任何失败的ReferenceProduct属性都是零件。产品将起作用。

如果您的文档尚未保存,它也可能无法工作(我不记得了)。

本文链接:https://www.f2er.com/2382964.html

大家都在问