以梦为马,不负韶华

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

CAD修改图块插入点到中点

[复制链接]
发表于 2019-6-27 14:59:51 显示全部楼层 |阅读模式
js中实现代码说明:
  1.      //返回控件的数据库对象
  2.     var databae = mxOcx.GetDatabase();
  3.     //返回数据库中的块表对象
  4.     var blkTab = databae.GetBlockTable();
  5.     //创建一个遍历块表中所有记录的遍历器
  6.     var mBlockTableiter = blkTab.NewIterator();
  7.     //移动当前遍历器位置
  8.     for (; !mBlockTableiter.Done(); mBlockTableiter.Step())

  9.     {
  10.         //返回遍历器当前位置的记录
  11.         var blkRec = mBlockTableiter.GetRecord();
  12.         //创建一个遍历块表中所有记录的遍历器
  13.         var mBlockTableReciter = blkRec.NewIterator();

  14.         var mMaxPt = mxOcx.NewPoint();
  15.         var mMinPt = mxOcx.NewPoint();

  16.         var mMaxPtTemp = mxOcx.NewPoint();
  17.         var mMinPtTemp =mxOcx.NewPoint();
  18.         //移动当前遍历器位置
  19.         for (; !mBlockTableReciter.Done(); mBlockTableReciter.Step(true, false))
  20.         {
  21.             //与用户交互在图面上选择一个实体
  22.             var ent = mBlockTableReciter.GetEntity();
  23.             //返回实体的最小矩形框外包
  24.             ent.GetBoundingBox(mMinPtTemp, mMaxPtTemp);

  25.             if ((mMinPtTemp == null) || (mMaxPtTemp == null))
  26.                 break;

  27.             mMaxPt.x = Math.max(mMaxPt.x, mMaxPtTemp.x);
  28.             mMaxPt.y = Math.max(mMaxPt.y, mMaxPtTemp.y);

  29.             mMinPt.x = Math.min(mMinPt.x, mMinPtTemp.x);
  30.             mMinPt.y = Math.min(mMinPt.y, mMinPtTemp.y);

  31.         }

  32.         if ((mMinPtTemp == null) || (mMaxPtTemp == null))
  33.             continue;

  34.         var mNewBasePt = mxOcx.NewPoint();

  35.         mNewBasePt.x = mMinPt.x + (mMaxPt.x - mMinPt.x) / 2;
  36.         mNewBasePt.y = mMinPt.y + (mMaxPt.y - mMinPt.y) / 2;
  37.         //块表记录的插入原点属性
  38.         blkRec.Origin = mNewBasePt;
  39.         //重新生成图,重新生成所有显示数据
  40.         mxOcx.Regen();
  41.     }

  42. }
复制代码

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

本版积分规则

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

GMT+8, 2025-4-7 14:39

Powered by 以梦为马,不负韶华

© 2024-2099 Meng.Horse

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