以梦为马,不负韶华

搜索
查看: 850|回复: 0
收起左侧

CAD查找属性块文字(网页版)

[复制链接]
发表于 2019-6-26 13:57:30 显示全部楼层 |阅读模式
js中实现代码说明:
  1. function FindBlockAttrib()
  2. {
  3.     var winWidth = 440;
  4.     var winHeight = 140;
  5.     var winLeft = (screen.width - winWidth) / 2;
  6.     var winTop = (screen.height - winHeight) / 2 - 20;

  7.     var str = 'dialogHeight:' + winHeight + 'px;dialogWidth:' + winWidth + 'px;dialogTop:' + winTop + 'px;dialogLeft:' + winLeft + 'px;resizable:yes;center:yes;status:no;'

  8.     var rt = window.showModalDialog("Gettext.htm?tmp=" + Math.random(), "输入属性文字", str);

  9.     var txt;

  10.     if (typeof (rt) == "undefined") {
  11.         return;
  12.     } else {
  13.         var arr = rt.split(",");
  14.         txt = arr[0];
  15.     }

  16.     var ss = mxOcx.NewSelectionSet();
  17.     var spFilte = mxOcx.NewResbuf();

  18.     // 把块对象,当着过滤条件.
  19.     spFilte.AddStringEx("INSERT", 5020);

  20.     // 得到图上,所有块对象.
  21.     ss.Select2(5, null, null, null, spFilte);


  22.     // 遍历每个块.
  23.     for (var i = 0; i < ss.Count; i++) {
  24.         var ent = ss.Item(i);
  25.         if (ent == null)
  26.             continue;
  27.         if (ent.ObjectName == "McDbBlockReference") {
  28.             var blkref = ent;
  29.             var j = 0;
  30.             for (; j < blkref.AttributeCount; j++) {
  31.                 var attrib = blkref.AttributeItem(j);
  32.                 if (attrib.TextString == txt) {
  33.                     // 找到块属性。
  34.                     mxOcx.PutEntityInView(ent.ObjectID, 300);

  35.                     var dLen = mxOcx.ViewLongToDocCoord(80);

  36.                     // 绘制一个标记圆.
  37.                     mxOcx.DrawVectorCircle(ent.Position.x,
  38.                 ent.Position.y,
  39.                  dLen, 65280);
  40.                     return;
  41.                 }
  42.             }
  43.         }
  44.         ent = null;
  45.     }


  46.     alert("没有找到块属性文字");



  47.     // 在这里必须显示释放控件的COM对象指针.
  48.     ss = null;
  49.     spFilte = null;
  50.     CollectGarbage();
  51. }
复制代码


不想打字就选择快捷回复吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|以梦为马,不负韶华

GMT+8, 2025-4-7 12:10

Powered by 以梦为马,不负韶华

© 2024-2099 Meng.Horse

快速回复 返回顶部 返回列表