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