我目前正在使用CATIA V5,我想使用宏(VBA),但我遇到了一些问题!
我的问题是:如何更改剪切视图的文本? (见图)
我尝试使用:myView.Texts.item(1)来访问这个" text"但我认为CATIA不会将其视为文本 ......
我想在没有用户干预的情况下更改此文本(没有选择),我可以这样做吗?
答案 0 :(得分:1)
IME,起草工作台中的VBA脚本起初非常棘手......" MyTexts"是DrawingText对象的集合。
MyDrawingText.Text = "MyNewTextValue"
您将遇到的主要问题是获取要修改的特定文本对象的句柄。我发现解决这个问题的最佳方法是在DrawingView中扫描整个DrawingTexts集合,并应用唯一的名称DrawingText.Name="UniqueObjectName"
,或者从脚本中创建绘图文本,您可以更轻松地处理DrawingText对象在那里放置你想要的任何值。创建唯一名称可使您的绘图更加强大,以便将来编写脚本
MyView.Texts.Count
对于获取项目编号也很有用。
如果您需要,我很乐意进一步解释。祝你好运!
<强>更新/编辑:强>
如上所述,使用绘图工作台编写脚本并不总是直截了当。事实证明,标注文本并不完全存在于DrawingTexts
的{{1}}集合中,但它们执行生活在图纸视图中的某个位置......在这种情况下,您正在尝试编辑&#34; ID&#34;截面视图。该属性也未通过VBA公开。
有一个 hack / work-around 用于搜索父视图以绘制文本,然后使用一些您需要提供的逻辑扫描{ {1}}用于您要更改的文本。你应该重新命名,这样就可以更容易地回来再找到它们。
这是一个以前视图的对象分辨率开始的示例(剖面视图的父视图)
DrawingView
答案 1 :(得分:1)
剪切视图的文本由视图名称定义,要更改它,您应该更改视图名称,如下所示:
Sub CATMain()
Dim oDraw As DrawingDocument
Set oDraw = CATIA.ActiveDocument
Dim oSectionView As DrawingView
Set oSectionView = oDraw.Sheets.ActiveSheet.Views.ActiveView
oSectionView.SetViewName "Prefix ", "B", " Suffix"
End Sub
答案 2 :(得分:0)
要扫描标注文本,您可以使用以下行。 这将选择仅属于标注的文本,并且不会扫描所有文本。
tsp