检查零件或产品被选中
Check Part or Product was selected
我的程序集如下:
根产品:
- 带部件的子产品
- 第 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 树中 "Part" 和 "Product" 具有相同的类型 - Product.
Like this
可能存在另一种方法如何检查用户选择的数据类型?
谢谢。
Dim bIsProd as Boolean
Dim oSelectedProd as Product
Set oSelectedProd = ItemSelection.Item(1).Value
bIsProd = typename(oSelectedProd.ReferenceProduct.Parent) = "ProductDocument"
如果您在程序集中使用 "Visualization Mode",情况会稍微复杂一些。在这种情况下,属性 ReferenceProduct 将失败。但是,如果您的程序集是新打开的并且在 "Visualization Mode" 中,您可以假设任何失败的 ReferenceProduct 属性都是零件。产品会起作用。
如果您的文档尚未保存,它也可能无法工作(我不记得了)。
我的程序集如下:
根产品:
- 带部件的子产品
- 第 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 树中 "Part" 和 "Product" 具有相同的类型 - Product.
Like this
可能存在另一种方法如何检查用户选择的数据类型? 谢谢。
Dim bIsProd as Boolean
Dim oSelectedProd as Product
Set oSelectedProd = ItemSelection.Item(1).Value
bIsProd = typename(oSelectedProd.ReferenceProduct.Parent) = "ProductDocument"
如果您在程序集中使用 "Visualization Mode",情况会稍微复杂一些。在这种情况下,属性 ReferenceProduct 将失败。但是,如果您的程序集是新打开的并且在 "Visualization Mode" 中,您可以假设任何失败的 ReferenceProduct 属性都是零件。产品会起作用。
如果您的文档尚未保存,它也可能无法工作(我不记得了)。