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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值