Как выбрать элемент из выдления&?

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

Как выбрать элемент из выдления&?

Сообщение MisterX » 17 сен 2008 01:09

Доброго времени суток всем.

Пишу на VB.

Есть такая задача:

Дано: в дереве Кати выбрано несколько элементов - в том числе точки, линии, и поверхность (одна)

Нужно: присвоить переменной как раз эту единственную поверхность, находящуюся в выделении

На ум приходит использовать следующую конструкцию:


Dim Pdoc As Document
Set Pdoc = CATIA.ActiveDocument

Dim Sel As Selection
Set Sel = Pdoc.Selection

Dim Surf1 As HybridShape
Set Surf1 = Sel.FindObject("CATIAHybridShape")


Код: Выделить всё
   
Dim Pdoc As Document
Set Pdoc = CATIA.ActiveDocument
   
Dim Sel As Selection
Set Sel = Pdoc.Selection

Dim Surf1 As HybridShape
Set Surf1 = Sel.FindObject("CATIAHybridShape")




Вот только линии и точки также являются объектами HybridShape...

В Хэлпе объектов типа "только surface" не нашел... Не подскажете ли, как можно все-таки зацепить поверхность из выделения, не снимая выделение с остальных элементов (FindObject выделение снимает, ну и фиг с ним - объект уже захапали)? С ними еще работать )))
Учи матчасть.
Аватара пользователя
MisterX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 02 окт 2007 23:56

Re: Как выбрать элемент из выдления&?

Сообщение Artem » 17 сен 2008 07:10

Код: Выделить всё
Sub CATMain()
    Dim partDocument1 As PartDocument
    Set partDocument1 = CATIA.ActiveDocument
    Dim selection1 As Selection
    Set selection1 = partDocument1.Selection
    ReDim elem(selection1.Count) As Variant
    For i = 1 To selection1.Count
    Set elem(i) = selection1.Item(i).Value
    Next
    selection1.Search "(((CATStFreeStyleSearch.Surface + CATPrtSearch.Surface) + CATGmoSearch.Surface) + CATSpdSearch.Surface),sel"
    Dim Surf1 As HybridShape
    If selection1.Count > 0 Then Set Surf1 = selection1.Item(1).Value
    selection1.Clear
    MsgBox Surf1.Name
    For i = 1 To UBound(elem)
    selection1.Add (elem(i))
    Next
End Sub
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: Как выбрать элемент из выдления&?

Сообщение MisterX » 17 сен 2008 17:51

Спаcибо, Artem.

Не могли бы Вы пояснить следующую конструкцию из Вашего ответа:

selection1.Search "(((CATStFreeStyleSearch.Surface + CATPrtSearch.Surface) + CATGmoSearch.Surface) + CATSpdSearch.Surface),sel"

особенно то, что в кавычках стоит... потому что в V5 Automation пояснений нет совсем...
Последний раз редактировалось MisterX 17 сен 2008 18:40, всего редактировалось 1 раз.
Учи матчасть.
Аватара пользователя
MisterX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 02 окт 2007 23:56

Re: Как выбрать элемент из выдления&?

Сообщение booSter » 17 сен 2008 18:01

MisterX писал(а):то, что в кавычках стоит...


это "Query" - запрос идентичный тому, который нужно было бы задать в команде Search (меню:[Edit]\[Search...]) чтобы найти все поверхности среди выделенных элементов.
Сделаешь доброе дело за деньги - скажут спасибо,
Сделаешь бесплатно - сядут на шею...
©пёрто
Аватара пользователя
booSter
Moderator
 
Сообщения: 227
Images: 15
Зарегистрирован: 09 фев 2008 16:48
Откуда: Minsk

Re: Как выбрать элемент из выдления&?

Сообщение MisterX » 17 сен 2008 18:44

А где об этом можно прочитать подробнее? Синтаксис, почему об этих элементах запроса не говорится в V5Automation?
Учи матчасть.
Аватара пользователя
MisterX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 02 окт 2007 23:56

Re: Как выбрать элемент из выдления&?

Сообщение Artem » 18 сен 2008 08:10

Search с параметрами прекрасно записывается в макрос.....
Настройки Type:From Element
Look:From current selection...
Чего нет в V5Automation.chm(соответственно и в помощи по F1),ищи на coe и в простой катькиной помощи.
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: Как выбрать элемент из выдления&?

Сообщение MisterX » 18 сен 2008 22:08

Artem писал(а): ...ищи на coe...


Эт чаво такое?
Учи матчасть.
Аватара пользователя
MisterX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 02 окт 2007 23:56

Re: Как выбрать элемент из выдления&?

Сообщение MisterX » 18 сен 2008 23:20

Кстати, а эта конструкция:
MisterX писал(а): selection1.Search "(((CATStFreeStyleSearch.Surface + CATPrtSearch.Surface) + CATGmoSearch.Surface) + CATSpdSearch.Surface),sel"
будет работать в отдельно скомпилированном *.exe файле? ну то есть если это не скрипт, написанный в Кате?
Учи матчасть.
Аватара пользователя
MisterX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 02 окт 2007 23:56

Re: Как выбрать элемент из выдления&?

Сообщение ExtraRight » 18 сен 2008 23:46

MisterX писал(а):
Artem писал(а): ...ищи на coe...


Эт чаво такое?


coe.org - сайт сообщества юзеров Dassault Solutions, там есть и форум - http://www.coe.org/Default.aspx?tabid=210
Аватара пользователя
ExtraRight
Forum Manager
 
Сообщения: 1575
Зарегистрирован: 11 сен 2007 18:50
Откуда: Нижний Новгород
Blog: View Blog (8)

Re: Как выбрать элемент из выдления&?

Сообщение MisterX » 19 сен 2008 06:49

Спасибо.
Учи матчасть.
Аватара пользователя
MisterX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 02 окт 2007 23:56


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

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

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

cron