Как изменить стиль рендеринга в CATIA V5 через Excel VBA? - PullRequest
0 голосов
/ 08 мая 2019

Я написал макрос, который сохраняет изображение из CATIA, используя метод CaptureToFile в объекте Viewer.Макрос работает отлично, но только когда стиль рендеринга "Параллельный".У некоторых дизайнеров в моей компании нет стиля рендеринга «Параллель», поэтому я хочу изменить стиль рендеринга на «Параллель» с макросом.

В объекте TreeTabSettingAtt есть свойство, называемое RenderStyle.В документации сказано, что свойство «Возвращает или задает значение, чтобы указать, является ли стиль 3D-рендеринга параллельным или перспективным».Кажется, это именно то, что мне нужно.Чтобы получить это свойство, мне нужно перейти к объекту TreeTabSettingAtt, который, по-видимому, является SettingController в коллекции SettingControllers, но я не могу добраться до него, потому что не знаю его тип объекта.Последнее необходимо передать в качестве аргумента метода Item объекта коллекции контроллера настройки.К сожалению, метод Item принимает только строку, которую я не знаю.

sub CATMain()

    Dim catia as INFITF.Application
    Dim att as PROCESSITF.TreeTabSettingAtt

    Set catia = GetObject(, "catia.Application")

    Set att = catia.SettingControllers.Item("I dont know the object type of 
    TreeTabSettingAtt")

    att.RenderStyle "Parallel"

End Sub

В документации, приведенной по следующей ссылке, указан тип объекта объекта настройки многих объектов контроллера настройки, нонекоторые отсутствуют, включая тип объекта для объекта контроллера настройки TreeTabSettingAtt.https://www.maruf.ca/files/caadoc/CAAScdInfTechArticles/CAAInfTabPageList.htm

1 Ответ

0 голосов
/ 09 мая 2019

Кажется, что свойство, которое вы обнаружили, привязано к настройкам приложения (т. Е. К тем, которые вы изменяете из Сервис> Параметры ..). Я не знаю, насколько хорошо они подвергаются автоматизации, но из сеанса быстрой отладки было очевидно, что с

Set att = CATIA.SettingControllers

один фактически получает коллекцию, в моем случае свойство Count равно 70, но метод Item не был доступен! Это не согласуется с документацией. Обратите внимание, что в документации сообщается, что аргумент должен быть индексом в длинном формате, но передаваться в виде строки.

Ответ:

Вместо этого я нашел «живую настройку», которая привязана к объекту Viewpoint3D, следующим образом. Обратите внимание, что в CATScript или CATVBA вам не нужно назначать объект Application (объект CATIA класса Application всегда доступен):

Set view = CATIA.ActiveWindow.ActiveViewer.Viewpoint3D
view.ProjectionMode = catProjectionCylindric
'or
view.ProjectionMode = catProjectionConic
...