Страница 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
И, кстати, во время выполнения должна быть активна корневая сборка