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

参数类型

类型

RTDXF0

TEXT

文字

MTEXT

多行文字

CIRCLE


ARC

圆弧

LINE

线

LWPOLYLINE

多段线

INSERT

图块

ELLIPSE

椭圆

SPLINE

样条线

LinkLine

超链接

8

图层

2

图块

-4

通配符

62

颜色

-3

扩展数据

1、颜色

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

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

颜色值

1

2

3

4

5

6

7

颜色



绿



紫红

白或黑

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

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

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

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

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

2、得到所有实体

主要用到函数说明: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);​​

3、得到跨范围实体

主要用到函数说明: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);​​

梦想CAD控件安卓版选择集_3d