|
发表于 2014-9-18 13:33:51
|
显示全部楼层
这是可能的,但首先我要警告您:并非每个对象都支持“长度”属性。因此,不过滤选择集可能会导致意外错误。
如果您仍要继续选择所有内容,请更仔细地查看我的代码:我没有使用“SelectOnScreen”方法。
。另外,查看联机AutoCAD ActiveX和VBA参考“selectionset对象”主题,您会发现:
选择方法
选择对象并将其放入选择集中
签名
对象。选择模式[,点1][,点2][,过滤器类型][,过滤器数据]
对象
选择集
此方法适用的对象。
模式
AcSelect枚举;仅输入<br>acSelectionSetWindow<br>acSelectionSetCrossing<br>acSelectionSetPrevious<br>AcselectionsSetLast<br>顶点1<br>变量(双精度数组);仅输入;可选<br>指定Point1的三维WCS坐标或坐标数组。有关Point1的正确使用,请参见模式定义。<br>Point2<br>变体(三元素双数组);仅输入;可选<br>指定点2的三维WCS坐标。有关点2的正确使用,请参阅模式定义。<br>过滤器类型<br>整数;仅输入;可选
指定要使用的过滤器类型的DXF组码
过滤器数据
变体;仅输入;可选<br>要筛选的值。<br>备注<br>此方法支持筛选机制
以下选择模式可用:
窗口
选择角点由点1和点2定义的矩形区域内的所有对象。
交叉
选中角点由点1和点2中定义的矩形区内的对象,并与之交叉。
Previous
选择最近的选择集。如果在图纸空间和模型空间之间切换并尝试使用选择集,则忽略此模式
Last
选择最近创建的可见对象
All
选择所有对象
有关更多选择模式选项,请参见SelectByPolygon、SelectAtPoint和SelectOnScreen方法
您还可以找到以下示例
Sub-example_Select()
,该示例将成员添加到选择集中,首先通过交叉和
,然后通过过滤圆
创建选择集
将ssetObj设置为AcadSelectionSet
集ssetObj=ThisDrawing.SelectionSets。添加(“SSET”)
将位于(28,17,0)和
'(-3.3,-3.6,0)
交叉点内的所有对象添加到选择集中,将变暗模式作为整数
变暗角落1(0到2)作为双
变暗角落2(0到2中)作为双
模式=acSelectionSetCrossing
角落1(1)=28:corner1(1)=17:Cornel1(2)=0
拐角2(0)=-3.3:Cornerge2(1) =-3.6:corner2(2)=0。选择模式,corner1和corner2<br>将位于(28,17,0)和<br>’(-3.3,-3.6,0)交叉点内的所有圆添加到选择集中,方法是从当前图形中过滤<br>Dim gpCode(0)作为整数<br>作为变量的Dim dataValue(0)<br>数据值(0)=“圆”<br><Dim groupCode作为变量,dataCode作为变量<br>groupCode=gpCode<br>dataCode=dataValue<br>ssetObj。选择模式、角落1、角落2、组码、数据码
结束子节点
|
|