在本示例中将使用构造选择集对被过滤对象进行过滤,该类封装了选择集及其处理函数,支持如下过滤条件。

RTDXF0 TEXT 文字
MTEXT 多行文字
CIRCLE
ARC 圆弧
LINE 线
LWPOLYLINE 多段线
INSERT 图块
ELLIPSE 椭圆
SPLINE 样条线
LinkLine 超链接
8 图层
2 图块
-4 通配符
62 颜色
-3 扩展数据

颜色

实体的颜色可以通过0~256的数字值来指定和读取,也可以通过 McCmColor 类的实例来指定和读取,McCmColor类可以用来扩展颜色模型。McCmColor类可以用来表示真彩色中的任何一种色彩。

颜色值1~7代表的标准颜色如下:

颜色值 1 2 3 4 5 6 7
颜色 绿 紫红 白或黑

颜色值7对应的颜色与控件背景颜色有关。如果背景是黑,则7对应的颜色是白,反之则对应的颜色是黑。

还有一些颜色值代表了一些特殊的含义:

0:指定实体的颜色为 BYBLOCK 。即实体继承当前块表记录中块参照的颜色值,如果实体直接处于模型空间或图纸空间块表记录中,则实体的颜色就是黑或白。

256:指定实体的颜色为 BYLAYER 。实体使用其所在层的颜色。

257:实体 无颜色 。这种情况仅在实体刚刚实例化,在被赋予0~256之间颜色值或被添加到数据库并使用数据库的当前颜色值之前才会出现。

主要用到函数说明:

MrxDbgSelSet.allSelect 方法 (MxResbuf)

得到当前空间的所有实体。详细说明如下:

MxResbuf filter

过滤条件

使用如下:

    MrxDbgSelSet ss = new MrxDbgSelSet();
MxResbuf filter = new MxResbuf();
ss.allSelect(filter);
String sT;
sT = String.format("currentSelect:%d",ss.size());
Log.e("MrxDbgSelSet",sT);

主要用到函数说明:

MrxDbgSelSet.crossingSelect 方法 (McGePoint3d, McGePoint3d)

通过两点范围构造选择集。详细说明如下:

McGePoint3d pt1

第一点

McGePoint3d pt2

第二点

使用如下:

      MrxDbgSelSet ss = new MrxDbgSelSet();
McGePoint3d pt1 = new McGePoint3d(100,10,10);
McGePoint3d pt2 = new McGePoint3d(0,0,0); ss.crossingSelect(pt1,pt2);
String sT;
sT = String.format("crossingSelect:%d",ss.size());
Log.e("MrxDbgSelSet",sT);
05-25 22:27