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

时间:2019-05-08 20:32:54

标签: excel vba catia

我编写了一个宏,该宏使用Viewer对象中的CaptureToFile方法从CATIA保存图像。该宏非常有用,但仅当“渲染样式”为“并行”时才有效。我公司中的某些设计师没有将“ Render Style”设置为“ Parallel”,因此我想使用宏将“ Render Style”更改为“ Parallel”。

TreeTabSettingAtt对象中有一个名为RenderStyle的属性。该文档说,属性“返回或设置该值以表示 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

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

1 个答案:

答案 0 :(得分:0)

您找到的属性似乎已绑定到应用程序设置(即您从“工具”>“选项”更改的属性。)。我不知道他们在自动化方面的表现如何,但是通过快速调试会话,很明显

Set att = CATIA.SettingControllers

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

答案:

我改为按如下方式找到绑定到Viewpoint3D对象的“实时设置”。请注意,无论是在CATScript还是CATVBA中,都不需要分配Application对象(Application类始终是CATIA对象):

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