CAD选择集的使用
2012-11-22 15:07阅读:
CAD选择集的使用
1、PickFirst 选择集是在先选择对象后启动命令的时候创建的
调用
SelectImplied 方法获得 PickFirst 选择集
PromptSelectionResult
acSSPrompt;
acSSPrompt =
acDocEd.SelectImplied();
SetImpliedSelection
方法用于清除当前的 PickFirst 选择集。
ObjectId[] idarrayEmpty = new
ObjectId[0];
acDocEd.SetImpliedSelection(idarrayEmpty);
2、在图形区域中选择对象
用户选择对象可以通过与用户交互式选择对象来完成
1)
GetSelection
提示用户从屏幕中拾取对象。
2)
SelectAll
在当前空间中选择所有对象,但不包括锁定或冻结的。
3)
SelectCrossingPolygon
选择与通过指定点定义的多边形内部和相交的对象。多边形可以是任何形状但不能与它自己相交或接触。
4)
SelectCrossingWindow
选择与通过两个点定义的区域内部和相交的对象。
5)
SelectFence
选择与选择栅格相交的所有对象。栅格选择与多边形相交选择是相似的,不同的是栅格不能封闭,而且栅格可以与自己相交。
6)
SelectLast
选择当前空间中最后创建的对象。
7)
SelectPrevious
选择在前一个选择对象提示时选择的所有对象。
8)
SelectWindow
选择完全包含在通过两个点定义的矩形内部的所有对象。
9)
SelectWindowPolygon
选择完全包含在通过点定义的多边形里面的对象。多边形可以是任何形状但不能与它自己相交或接触。
10)
SelectAtPoint
选择经过给定点的对象并将它们放到活动选择集中去。
11)
SelectByPolygon
选择栅格内部的对象并将它们放到活动选择集中去。
PromptSelectionResult
acSSPrompt = acDoc.Editor.GetSelection();
SelectionSet acSSet =
acSSPrompt.Value;
3、遍历选择对象
foreach (SelectedObject acSSObj
in acSSet)
{
if (acSSObj != null)
{
Entity acEnt =
acTrans.GetObject(acSSObj.ObjectId, OpenMode.ForWrite) as Entity;
if (acEnt !=
null)
{
acEnt.ColorIndex = 3;
}
}
}
4、合并多个选择集
acSSet1 =
acSSPrompt.Value;
acObjIdColl = new
ObjectIdCollection(acSSet1.GetObjectIds());
acSSet2 =
acSSPrompt.Value;
foreach (ObjectId acObjId in
acSSet2.GetObjectIds())
{
acObjIdColl.Add(acObjId);
}
5、选取条件设置
常用过滤器的
DXF
组码
|
DXF
码
|
过滤器类型
|
0 (or DxfCode.Start)
|
对象类型(字符串)
例如
直线、圆、圆弧等等。
|
2 (or
DxfCode.BlockName)
|
块名(字符串)
一个插入引用的块名
|
8 or
(DxfCode.LayerName)
|
图层名(字符串)
例如 Layer 0
|
60
(DxfCode.Visibility)
|
可见性(整数)
使用 0 =
可见,1 = 不可见。
|
62 (or
DxfCode.Color)
|
颜色编号(整数)
范围 0 到
256
内的数字索引值。
零表示 BYBLOCK。256 表示
BYLAYER。负值表示图层被关闭。
|
67
|
模型/图纸空间标识符(整数)
使用 0 或省略
=
模型空间,1 =
图纸空间。
|
TypedValue[] acTypValAr = new
TypedValue[3];
acTypValAr.SetValue(new TypedValue((int)DxfCode.Color, 5),
0);
acTypValAr.SetValue(new
TypedValue((int)DxfCode.Start, 'CIRCLE'), 1);
acTypValAr.SetValue(new TypedValue((int)DxfCode.LayerName, '0'),
2);
acSSPrompt =
acDocEd.GetSelection(acSelFtr);
选择集过滤器列表的关系运算符
|
运算符
|
说明
|
'*'
|
任何情况(总为真)
|
'='
|
等于
|
|