Определение типа выбранного объекта

Программирование для CATIA.

Определение типа выбранного объекта

Сообщение moryak-89 » 21 апр 2016 16:28

Привет, всем! Помогите пожалуйста, скажите как определить тип выбранного объекта перед выполнением макроса?

Пример

Sub CATMain()
Dim USel as Selection
Set USel = CATIA.ActiveDocument.Selection
If USel.Count > 0 Then
For I = 0 to USel.Count
MsgBox (USel.Item(I).Value.Name),,"VBScript"
Next
End If
End Sub

Прога выводит по очереди в зависимости от количества выделенных элементов перед запуском имена этих элементов, причём так как имена имеют любые объекты то не важно что мы навыделяли. Мне же нужно знать что в том или ином выделенном элементе, т.е. тип объекта и далее работать с ним, не могу найти как именно проверить тип?
moryak-89
Новичок
Новичок
 
Сообщения: 2
Зарегистрирован: 20 апр 2016 10:17

Re: Определение типа выбранного объекта

Сообщение VladimirK » 22 апр 2016 01:04

Здравствуйте!
Узнать тип выделенного объекта SelectedElement можно с помощью его свойства Type.
Оно возвращает имя типа в виде строки. Например, для выделенных на чертеже объектов текста, точки, линии это будут соответственно DrawingText, Point2D, Line2D.
Ниже привёл пример на основе Вашего кода.
Если Вы недавно начали программировать для CATIA, то очень полезной будет справка по Automation API.
Она расположена в папке с установленной CATIA, например, C:\Program Files\Dassault Systemes\CATIA\B19\intel_a\code\bin\V5Automation.chm.
Там хорошо видна иерархия объектов CATIA, перечислены методы, свойства.
В разделе "Содержание/Getting Started with CAA V5 Visual Basic" есть "Use Cases" - примеры использования для разных модулей.
Код: Выделить всё
Sub CATMain()
    Dim sel As Selection
    Dim i As Long
    Set sel = CATIA.ActiveDocument.Selection
    If sel.Count > 0 Then
        For i = 1 To sel.Count
            MsgBox "Name: " + sel.Item(i).Value.Name + vbNewLine + "Type: " + sel.Item(i).Type
        Next
    End If
End Sub
VladimirK
Новичок
Новичок
 
Сообщения: 63
Зарегистрирован: 15 ноя 2011 21:44

Re: Определение типа выбранного объекта

Сообщение moryak-89 » 22 апр 2016 16:25

Спасибо огромное, да вы правы я не давно начал, знаю про справку и примеры, видать плохо искал. Я пробовал писать USel.Item(I).Value.Type а просто без Value не попробовал.
moryak-89
Новичок
Новичок
 
Сообщения: 2
Зарегистрирован: 20 апр 2016 10:17


Вернуться в CAA-RADE

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5