A-A+
CATIA VBA(VBS) 二次开发中的选择过滤器
在文章《CATIA使用VBA(VBS)二次开发时用户的交互选择》中介绍了在CATIA中使用SelectElement2方法进行用户交互选择。在使用SelectElement2进行选择时需要设置选择过滤器,CATIA CAA Visual Basic中提供了如下两类选择过滤器:
- 直接使用对象名称作为过滤器关键字,如HybridBody、HybridShape、Body、Plane、Point、Line等;
- 使用枚举类CATSelectionFilter中提供的通用选择过滤器,此枚举类的定义如下:
enum CATSelectionFilter {
ZeroDim,
MonoDim,
MonoDimInfinite,
RectilinearMonoDim,
RectilinearMonoDimInfinite,
BiDim,
BiDimInfinite,
PlanarBiDim,
PlanarBiDimInfinite,
CylindricalBiDim,
TriDim
}
各枚举值的含义:
- ZeroDim:0-D元素,如Point2D;
- MonoDim:一维元素,但是不能是无穷元素;
- MonoDimInfinite:一维元素,可以是无穷元素;
- RectilinearMonoDim:一维线性元素,但是不能是无穷元素;
- RectilinearMonoDimInfinite:一维线性元素,可以是无穷元素;
- BiDim:二维元素,但是不能是无穷元素;
- BiDimInfinite:二维元素,可以是无穷元素;
- PlanarBiDim:平面二维元素,但是不能是无穷元素;
- PlanarBiDimInfinite:平面二维元素,可以是无穷元素;
- CylindricalBiDim:圆柱二维元素,但是不能是无穷元素;
- TriDim:三维元素;
在使用选择过滤器时可以使用多个过滤器进行组合,例如:
Dim Doc, Slct, Status, lType(1)
Set Doc = CATIA.ActiveDocument
Set Slct = Doc.Selection
lType(0) = "Plane"
lType(1) = "BiDim"
Status = Slct.SelectElement2(lType,"Select the surface", False)
If Status = "Redo" Or Status ="Undo" Or Status = "Cancel" Then
Exit Sub
End If