0
点赞
收藏
分享

微信扫一扫

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中使用如下:

function GetAllComment() {



var ss = mxOcx.NewSelectionSet();

var spFilte = mxOcx.NewResbuf();



// 把批注对象,当着过滤条件.

spFilte.AddStringEx("MxComment,MxDrawXCustomEntity", 5020);



// 得到图上,所有批注对象.

ss.Select2(5,null,null,null,spFilte);





// 遍历每个文字.

var bFind = false;

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





var ent = ss.Item(i);

if (ent == null)

continue;

if (ent.ObjectName == "McDbComment") {

// 得到批注对象。

mxOcx.Prompt(ent.Text);



var mtxt = mxOcx.NewEntity("IMxDrawMText");



// 把多行文字,变成单行文字,去掉里面的控制符。

mtxt.Contents = ent.Text;



// 打碎对像.

var ret = mtxt.GetProp("ExplodeEx");



// 得到打碎后对像里面的文字。

var s;

for(var j = 0; j < ret.Count;j++)

{



var obj = ret.AtObject(j);

if(obj == null)

continue;





if(s == null){



// s = obj.TextString;

}



else{

var s = '';

s += obj.TextString;

}





}

mxOcx.Prompt(s);

//

mxOcx.Prompt(ent.Position.x.toString());

mxOcx.Prompt(ent.Position.y.toString());



mxOcx.Prompt(ent.BasePoint.x.toString());

mxOcx.Prompt(ent.BasePoint.y.toString());

}

else if (ent.ObjectName == "MxDrawXCustomEntity") {

// 得到批注对象。



var stp = ent.GetPoint("First");



var ept = ent.GetPoint("BasePoint");







var txt = ent.GetString("Text");







mxOcx.Prompt(txt);



//

mxOcx.Prompt(stp.x.toString());

mxOcx.Prompt(stp.y.toString());



mxOcx.Prompt(ept.x.toString());

mxOcx.Prompt(ept.y.toString());

}



}



}

举报

相关推荐

0 条评论