Как активировать Part в сборке?

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

Как активировать Part в сборке?

Сообщение RIMs » 12 янв 2010 01:28

вручную кликаю два раза на парте в дереве сборки и он подкрашивается синим - становится активным (рабочим), какой командой это сделать через макрос?

Спасибо.
RIMs
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 20 мар 2009 22:27

Re: Как активировать Part в сборке?

Сообщение [PTM] » 12 янв 2010 01:37

Код: Выделить всё
Dim documents1 As Documents
Set documents1 = CATIA.Documents

Dim partDocument1 As Document
Set partDocument1 = documents1.Item("ДЕТАЛЮШКА.CATPart")

Dim part1 As Part
Set part1 = partDocument1.Part
Аватара пользователя
[PTM]
Moderator
 
Сообщения: 2159
Images: 43
Зарегистрирован: 13 сен 2007 13:03
Откуда: Rzn
Blog: View Blog (15)

Re: Как активировать Part в сборке?

Сообщение RIMs » 12 янв 2010 02:05

нет,
не подхватить (не зацепить) деталь для работы а именно выделить, см. на картинках что выделено синим. Изначально выделена сборка, нужно чтоб была выделена деталь.

Изначально я копирую Body из первого парта во второй. Это работает только при условии что в момент Copy активен первый парт, а в момент Paste второй.

(просто для справки если интересно, я парт цепляю так:
Set product1 = productDocument1.Product
Set partDocument1 = product1.ReferenceProduct.Parent)
Вложения
2.JPG
так хочу чтоб было
2.JPG (7.51 КБ) Просмотров: 9248
1.JPG
так есть
1.JPG (7.27 КБ) Просмотров: 9248
RIMs
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 20 мар 2009 22:27

Re: Как активировать Part в сборке?

Сообщение Artem » 12 янв 2010 08:19

Код: Выделить всё
Public MyDoc As Document
......
MyDoc.Activate

Ну еще если не сработает то select.add
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: Как активировать Part в сборке?

Сообщение RIMs » 12 янв 2010 18:44

Что значит если не сработает, вы прежде чем выложить код его не пробуете?
Select - это из другой области.
Спасибо за идею с Документом, но даже при переопределении документа на парт, не работает, похоже катя воспринимает активный документ как активное окно.
Set productDocument1 = CATIA.ActiveDocument
‘product1 выбираю через Selection в кати’
Set partDocument1 = product1.ReferenceProduct.Parent
Set productDocument1 = partDocument1
productDocument1.Activate
partDocument1.NewWindow
RIMs
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 20 мар 2009 22:27

Re: Как активировать Part в сборке?

Сообщение RIMs » 13 янв 2010 00:28

спасибо всем за помощь, как сделать скриптом не нашел, зато откопал встроенную функцию
Tools -> Generate CATPart from Product
RIMs
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 20 мар 2009 22:27

Re: Как активировать Part в сборке?

Сообщение m-shok » 14 янв 2010 18:25

Просто из интереса.
А для чего было нужно активировать парт?
Для copy-pastespecial?
ActiveDocument это действительно активное окно.
m-shok
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 20 авг 2008 16:08
Откуда: Москва

Re: Как активировать Part в сборке?

Сообщение RIMs » 25 янв 2010 23:59

Как писал выше "Это работает только при условии что в момент Copy активен первый парт, а в момент Paste второй."
написал простой код Copy/Paste, но работал он только в режиме отладки, когда перед строчкой Selection1.copy, я лез в катю и выделял парт вручную и так же перед стройчкой Selection1.PasteSpecial "CATPrtResultWithOutLink" вручную выделял другой парт
RIMs
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 20 мар 2009 22:27

Re: Как активировать Part в сборке?

Сообщение m-shok » 27 янв 2010 09:34

Код: Выделить всё

        sel = CATIA.ActiveDocument.Selection
     '--------------------------------------------------------------------
        sel.Add(SelSurf)
        sel.Copy()
        sel.Clear()
    '--------------------------------------------------------------------         
        Dim hb As HybridBody
        hb = CurPrt.HybridBodies.Add
        hb.Name = "ID"
    '--------------------------------------------------------------------
        sel.Add(hb)
        sel.PasteSpecial(CATPrtResult)
       

у меня работает
m-shok
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 20 авг 2008 16:08
Откуда: Москва

Re: Как активировать Part в сборке?

Сообщение m-shok » 27 янв 2010 17:24

И, кстати, во время выполнения должна быть активна корневая сборка
m-shok
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 20 авг 2008 16:08
Откуда: Москва


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

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

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