我编写了一个宏,该宏使用Viewer对象中的CaptureToFile方法从CATIA保存图像。宏工作很好,但只有当呈现样式是“并行”时。我公司的一些设计师没有渲染样式为“并行”,所以我想用宏将呈现样式更改为“并行”。
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
发布于 2019-05-09 12:47:55
您所定位的属性似乎绑定到应用程序设置(即您从Tools>Options.更改的那些设置)。我不知道它们暴露在自动化中有多好,但是通过快速调试会话,很明显
Set att = CATIA.SettingControllers一个人实际上得到了集合,在我的例子中,Count属性是70,但是没有Item方法可用!这与文档不一致。请注意,文档报告说,参数必须是长格式的索引,但作为字符串传递。
答案:
相反,我找到了“活动设置”,该设置绑定到Viewpoint3D对象,如下所示。注意,无论是在CATScript还是CATVBA中,您都不需要分配应用程序对象(类应用程序的CATIA对象总是可用的):
Set view = CATIA.ActiveWindow.ActiveViewer.Viewpoint3D
view.ProjectionMode = catProjectionCylindric
'or
view.ProjectionMode = catProjectionConichttps://stackoverflow.com/questions/56048634
复制相似问题