CAD如何得到指定条件的实体

主要用到函数说明:

 

IMxDrawSelectionSet::Select2

 

构造选择集。详细说明如下:

 

参数 说明

[in] MCAD_McSelect Mode

构造选择集方式

[in] VARIANT point1

构造择择集时需要使用到的点对象

[in] VARIANT point2

构造择择集时需要使用到的点对象

[in,optional] VARIANT filterType

构造选择集的过滤数据的类型

[in,optional] VARIANT filterData

构造选择集的过滤数据

可以取如下值

mcSelectionSetWindow = 0, mcSelectionSetCrossing = 1, mcSelectionSetFence = 2, mcSelectionSetPrevious = 3, mcSelectionSetLast = 4, mcSelectionSetAll = 5, 选择图面上的所有实体 mcSelectionSetWindowPolygon = 6, mcSelectionSetCrossingPolygon = 7, mcSelectionSetUserSelect = 8 mcSelectionImpliedSelectSelect = 9,_I 返回当前图上已经选择的实体

 

js中使用如下:

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

function SelectAssign() {

    //实例化一个构造选择集进行过滤,该类封装了选择集及其处理函数。

    var ss = mxOcx.NewSelectionSet();

    //构造一个过滤链表

    var spFilte = mxOcx.NewResbuf();

    // "0",是图层名,8是DXF码,代表"0"是个图层字符串。

    // 选择 0层上的实体。

    spFilte.AddStringEx("0", 8);

    // 选择直线或圆弧实体。5020是DXF码,代表"LINE"是类型字符串。

    spFilte.AddStringEx("LINE,ARC", 5020);

    // 选择红色的实体。1为颜色索引值,代表红色。 62是DXF码,但1是个颜色类型。

    spFilte.AddLongEx(1,62);

    ss.Select2(5,nullnullnull,spFilte);

    for (var i = 0; i < ss.Count; i++)

    {

        var ent = ss.Item(i);

        alert(ent.ObjectName);

    }

}

你可能感兴趣的:(CAD如何得到指定条件的实体)