Получение базового профиля Pad

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

Получение базового профиля Pad

Сообщение Vyacheslav » 27 мар 2013 16:08

Добрый день,

Для здания базового профиля Pad (или любого элемента твердотельного моделирования - Pad, Pocket и т.д.), используется команда SetProfileElement. Показанный ниже код задает базовый профиль Pad.
dim Ref1 as Reference
dim Pad1 as Pad
Set Pad1 = ...
Set Ref1 = ...
Pad1.SetProfileElement Ref1

При необходимости извлечения базового профиля, используемого в Pad, применяется команда "set ... = Pad1.Sketch". Но данная команда работает только в том случае, если в качестве базового профиля используется скетч (Sketch). Если же в качестве базового профиля используется геометрия построенная в Generative Shape Design (например Circle или Join), то получить данный элемент не получается. В VBA Help написано: "Sub SetProfileElement( Reference iProfileElement) - Returns or sets a profile element.". Т.е. с помощю SetProfileElement вроде как можно и задать и получить базовый элемент. Но если задать можно без проблем, то вот получить как раз пока не получается. Может ли кто либо помочь с данной проблемой?

Заранее спасибо.
Vyacheslav
Новичок
Новичок
 
Сообщения: 3
Зарегистрирован: 04 апр 2012 16:22

Re: Получение базового профиля Pad

Сообщение VladimirVladimirovich » 29 мар 2013 16:42

Вот это очень хороший вопрос! Я сам ищу способ узнать профиль Pad или Pocket, к сожалению SetProfileElement не передает в Reference объект профиля...Есть мысль: а возможно ли каким-либо образом через VBA узнать информацию о родителе как в окне Parents/Children? Может как-нибудь так можно узначть что является профилем для этих элементов (а также для Pattern'ов и всего остального)...
Всё, что не делается - всё к лучшему!!
VladimirVladimirovich
Новичок
Новичок
 
Сообщения: 16
Зарегистрирован: 21 сен 2012 00:12
Откуда: г. Жуковский

Re: Получение базового профиля Pad

Сообщение Artem » 01 апр 2013 08:56

Код: Выделить всё
Sub CATMain()
    Dim partDocument1 As PartDocument
    Set partDocument1 = CATIA.ActiveDocument
    Dim selection1 As Selection
    Set selection1 = partDocument1.Selection
    selection1.Clear
    selection1.Add partDocument1.Part.FindObjectByName("Pad.1")
    selection1.Search "Type=*,sel"
    MsgBox selection1.Item(2).Value.Name
End Sub

Parent\Children - это не к com/ole, на рейде не помню - но тоже вроде как были проблемы....остается winapi...наверное))))
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: Получение базового профиля Pad

Сообщение VladimirVladimirovich » 01 апр 2013 14:29

Artem, спасибо за пример. Покрайней мере, мне, на превое время, пригодится. Еще раз, спасибо.
Всё, что не делается - всё к лучшему!!
VladimirVladimirovich
Новичок
Новичок
 
Сообщения: 16
Зарегистрирован: 21 сен 2012 00:12
Откуда: г. Жуковский


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

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

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