CATIA VBA selection对象与search函数
2020-02-06 本文已影响0人
锦囊喵
原文链接
CATIA VBA 中有一个特别的对象,叫做"Selection"。可以把Selection理解成一个容器或者集合。
Selection中包含了CATIA当前选中的全部对象,可以通过如下代码片段得到Selection
Dim objSelection As Selection
Set objSelection = CATIA.ActiveDocument.Selection
假设未在CATIA内选中元素,那selection对象将会是空集;如果选择1,2,或者更多元素,那selection对象将会包含1,2,或者更多的元素。
除了以上用法,更常用的是在selection对象中进行查找。我们知道在CATIA中手工查找通过菜单 编辑/查找。其实通过VBA中的 selection对象,可以达到相同的目的。selection对象允许 类似手工操作,通过名称、类型、颜色等进行查找。
If you want to select all points named “CENTER_PT” you can select the active document as your selection and search it for a specific name:
假设你想在当前活动文档中选择所有以“CENTER_PT” 开头的点:
Sub CATMain()
Dim objSel As Selection
Set objSel =CATIA.ActiveDocument.Selection
objSel.Search(“Name=CENTER_PT*,all”)
objcount = objSel.count
msgbox objcount
End Sub
执行完Search,我们可以使用For循环逐个遍历所选中的对象。如果要对选中的点从1开始重命名,可以参考:
Dim i As Integer
For i = 1 to objSel.Count
objSel.Item(i).Value.Name = objSel.Item(i).Value.Name&i
Next ‘i
查找范围
objSel.Search(“Name=CENTER_PT*,all”)
以上代码中all,表示最大的查找范围;可以通过指定参数,界定不同的查找范围:
- Everywhere: shortcut “all”
- InWorkbench: shortcut “in”
- FromWorkbench: shortcut “from”
- FromSelection: shortcut “sel”
- VisibleOnScreen: shortcut “scr”
EXAMPLE:
‘hide constraints
selection1.Search “CATAsmSearch.MfConstraint,scr”
Set visPropertySet1 = Selection1.visProperties
VisPropertySet1.SetShow 1
Selection1.Clear