Страница 1 из 1

'Center graph' и 'Reframe On'

СообщениеДобавлено: 08 авг 2012 13:09
file
Добрый день.

Подскажите, есть ли стандартная (или нестандартная) возможность оперировать командами 'Center graph' и 'Reframe On' применительно к выделенному объекту?

По всей видимости нужно копать в сторону Viewer и Camera. Но непонятно как выполнить прицел на выделенный элемент...

Re: 'Center graph' и 'Reframe On'

СообщениеДобавлено: 08 авг 2012 14:51
Wireless_Fidelity
Reframe On можно выполнить, зная координаты объекта. В этом случае следует воспользоваться методами PutOrigin, FocusDistance и Zoom у Viewpoint2d/3d.
С Center graph сложнее, дерево двигать мы можем, но вот работать без WinApi с ним тяжко.

Я бы использовал вызовы стандартных команд, не вижу в этом ничего плохого.

Re: 'Center graph' и 'Reframe On'

СообщениеДобавлено: 08 авг 2012 15:07
file
Спасибо :)
Я бы использовал вызовы стандартных команд, не вижу в этом ничего плохого.
Имеются ввиду PutOrigin, FocusDistance и Zoom у Viewpoint2d/3d?

Re: 'Center graph' и 'Reframe On'

СообщениеДобавлено: 08 авг 2012 15:10
Wireless_Fidelity
Да.

Re: 'Center graph' и 'Reframe On'

СообщениеДобавлено: 08 авг 2012 15:55
file
А как узнать координаты объекта, и относительно чего? И как они соотносятся со значениями свойств Viewpoint3d?

Re: 'Center graph' и 'Reframe On'

СообщениеДобавлено: 08 авг 2012 18:18
Wireless_Fidelity
Координаты нужно засунуть в массив и передать в PutOrigin.
Получение же координат зависит от типа объекта.

Re: 'Center graph' и 'Reframe On'

СообщениеДобавлено: 08 авг 2012 19:53
file
Пока применил простейшее решение: StartCommand с параметрами "Reframe On" и "Center graph"

Re: 'Center graph' и 'Reframe On'

СообщениеДобавлено: 14 апр 2018 14:45
timkaam
Подскажите, не могу добиться стабильной работы StartCommand...работает через раз..вот пример кода, что не так? пару раз отработает, а потом выделяет и не кадрирует...
Spoiler :
Sub CATMain()
Dim productDocument1 As Document
Set productDocument1 = CATIA.ActiveDocument
Dim fullname, newfullname As String
fullname = CATIA.ActiveDocument.Name
lenchName = Len(fullname)
newfullname = Left(fullname, lenchName - 11)
'MsgBox newfullname
Dim selection1 As Selection
Set selection1 = productDocument1.Selection
selection1.Clear
selection1.Search ("Name='" + newfullname + "',in")
CATIA.StartCommand ("центрирование графического изображения")
End Sub

Re: 'Center graph' и 'Reframe On'

СообщениеДобавлено: 30 апр 2018 16:23
Wireless_Fidelity
А что приведенный код должен хочется отцентрировать? Корневое изделие текущего активного документа?

Re: 'Center graph' и 'Reframe On'

СообщениеДобавлено: 19 янв 2019 12:06
timkaam
Wireless_Fidelity писал(а):А что приведенный код должен хочется отцентрировать? Корневое изделие текущего активного документа?

цель в том чтобы подвесить на хоткей макрос центрирования начало дерева сборки, чтобы не скролить мышкой

Re: 'Center graph' и 'Reframe On'

СообщениеДобавлено: 29 янв 2019 12:54
Artem
А так...:
Код: Выделить всё
Sub CATMain()
Call CATIA.StartCommand("CATAfrReframeOnHSOHdr")
Call CATIA.StartCommand("CATCafCenterGraphHdr")
End Sub

...не могу добиться стабильной работы StartCommand...
- может с DoEvents поиграться...

Re: 'Center graph' и 'Reframe On'

СообщениеДобавлено: 01 мар 2019 16:12
timkaam
Artem писал(а):А так...:
Код: Выделить всё
Sub CATMain()
Call CATIA.StartCommand("CATAfrReframeOnHSOHdr")
Call CATIA.StartCommand("CATCafCenterGraphHdr")
End Sub

...не могу добиться стабильной работы StartCommand...
- может с DoEvents поиграться...

Спасибо, работает!!!