Страница 1 из 1
Как активировать Part в сборке?

Добавлено:
12 янв 2010 01:28
RIMs
вручную кликаю два раза на парте в дереве сборки и он подкрашивается синим - становится активным (рабочим), какой командой это сделать через макрос?
Спасибо.
Re: Как активировать Part в сборке?

Добавлено:
12 янв 2010 01:37
[PTM]
- Код: Выделить всё
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
Re: Как активировать Part в сборке?

Добавлено:
12 янв 2010 02:05
RIMs
нет,
не подхватить (не зацепить) деталь для работы а именно выделить, см. на картинках что выделено синим. Изначально выделена сборка, нужно чтоб была выделена деталь.
Изначально я копирую Body из первого парта во второй. Это работает только при условии что в момент Copy активен первый парт, а в момент Paste второй.
(просто для справки если интересно, я парт цепляю так:
Set product1 = productDocument1.Product
Set partDocument1 = product1.ReferenceProduct.Parent)
Re: Как активировать Part в сборке?

Добавлено:
12 янв 2010 08:19
Artem
- Код: Выделить всё
Public MyDoc As Document
......
MyDoc.Activate
Ну еще если не сработает то select.add
Re: Как активировать Part в сборке?

Добавлено:
12 янв 2010 18:44
RIMs
Что значит если не сработает, вы прежде чем выложить код его не пробуете?
Select - это из другой области.
Спасибо за идею с Документом, но даже при переопределении документа на парт, не работает, похоже катя воспринимает активный документ как активное окно.
Set productDocument1 = CATIA.ActiveDocument
‘product1 выбираю через Selection в кати’
Set partDocument1 = product1.ReferenceProduct.Parent
Set productDocument1 = partDocument1
productDocument1.Activate
partDocument1.NewWindow
Re: Как активировать Part в сборке?

Добавлено:
13 янв 2010 00:28
RIMs
спасибо всем за помощь, как сделать скриптом не нашел, зато откопал встроенную функцию
Tools -> Generate CATPart from Product
Re: Как активировать Part в сборке?

Добавлено:
14 янв 2010 18:25
m-shok
Просто из интереса.
А для чего было нужно активировать парт?
Для copy-pastespecial?
ActiveDocument это действительно активное окно.
Re: Как активировать Part в сборке?

Добавлено:
25 янв 2010 23:59
RIMs
Как писал выше "Это работает только при условии что в момент Copy активен первый парт, а в момент Paste второй."
написал простой код Copy/Paste, но работал он только в режиме отладки, когда перед строчкой Selection1.copy, я лез в катю и выделял парт вручную и так же перед стройчкой Selection1.PasteSpecial "CATPrtResultWithOutLink" вручную выделял другой парт
Re: Как активировать Part в сборке?

Добавлено:
27 янв 2010 09:34
m-shok
- Код: Выделить всё
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)
у меня работает
Re: Как активировать Part в сборке?

Добавлено:
27 янв 2010 17:24
m-shok
И, кстати, во время выполнения должна быть активна корневая сборка