如何通过 Excel VBA 更改 CATIA V5 中的渲染样式?

How to change render style in CATIA V5 through Excel VBA?

我使用 Viewer 对象中的 CaptureToFile 方法编写了一个从 CATIA 保存图像的宏。该宏效果很好,但仅当渲染样式为 "Parallel" 时才有效。我公司有些设计师没有Render Style为"Parallel",所以想用宏把Render Style改成"Parallel"。

TreeTabSettingAtt对象中有一个属性,叫做RenderStyle。文档说 属性 "Returns or sets the value to signify 3D 渲染样式是平行还是透视”。这似乎正是我所需要的。要达到那个 属性,我需要找到 TreeTabSettingAtt 对象,它似乎是 SettingControllers 集合中的一个 SettingController,但我无法获取它,因为我不知道它的对象类型。后者需要作为设置控制器集合对象的 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

在文档中,见下文link,列出了许多设置控制器对象的设置控制器对象类型,但缺少一些,包括TreeTabSettingAtt 设置控制器对象的对象类型。 https://www.maruf.ca/files/caadoc/CAAScdInfTechArticles/CAAInfTabPageList.htm

您找到的 属性 似乎绑定到应用程序设置(即您从“工具”>“选项”中更改的设置。)。我不知道他们在自动化方面有多好,但从快速调试会话中可以明显看出

Set att = CATIA.SettingControllers

一个人实际上得到了集合,Count 属性 在我的例子中是 70,但是没有可用的 Item 方法!这与文档不一致。请注意,文档报告该参数必须是长格式的索引,但作为字符串传递。

答案:

我找到了绑定到 Viewpoint3D 对象的 "live setting",如下所示。请注意,无论是在 CATScript 还是 CATVBA 中,您都不需要分配应用程序对象(class 应用程序的 CATIA 对象始终可用):

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