Проверьте, была ли выбрана деталь или продукт - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть сборка типа:

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 "Деталь" и "Продукт" имеют один и тот же тип - Продукт.

Как это

Может быть, существует другой способ, как проверить, какой тип данных выбран пользователем? Спасибо.

1 Ответ

0 голосов
/ 24 апреля 2020
Dim bIsProd as Boolean
Dim oSelectedProd as Product
Set oSelectedProd = ItemSelection.Item(1).Value
bIsProd = typename(oSelectedProd.ReferenceProduct.Parent) = "ProductDocument"

Это немного сложнее, если вы используете «Режим визуализации» для вашей сборки. В этом случае свойство ReferenceProduct не будет работать. Однако, если ваша сборка только что открылась и в «Режиме визуализации» вы можете принять любые свойства ReferenceProduct, которые не являются Частями. Продукты будут работать.

Это также может не работать (я не помню), если ваши документы еще не сохранены.

...