CAD分解块

1、在CAD制图时,需要将图纸文件进行编辑修改等操作。将块中的多个对象分解为独立对象,但一次只能删除一个编组级。若块中包含一个多段线或嵌套块,那么对该块的分解就首先分解为多段线或嵌套块,然后再分别分解该块中的各个对象。若块中的对象具有相同 X、Y、Z 比例的块,将被分解为它们的部件对象。非一致比例块则可能被分解成其他对象。当非一致比例块包含有不能分解的对象时,这些不能分解的对象将全部集中到一个以“*E”为前缀的匿名块中并且以非一致比例缩放进行参照。如果这个块中的所有对象都不可分解,则选定的块参照不能分解。

2、分解主要用于将一个对象分解为多个单一对象。主要应用于对整体图形、图块、文字、尺寸标注等对象的分解。使用分解方法有三种:

(1)单击菜单栏,“修改->分解”。

(2)单击编辑工具栏“分解命令”按钮mc135.png

(3)在命令行中输入Explode,按回车键。

我们首先先激活分解命令,然后选中需要炸开的对象,最后按回车或空格确定就可以啦。

3、下面介绍关于二次开发分解块的使用方法(以MxDrawCAD为例);分别是c#语言和网页中的使用。

(1)实现思路:我们在视区中利用GetEntity方法选择一个实体,然后判断选择的实体类型是否是图块;如果是图块的话。就调用Explode打碎图块,方法十分简单。

(2)主要用到函数说明:IMxDrawBlockReference::Explode

打碎块引用,被打碎的引用对象还在,打碎的实体是新生成的。详细说明如下:

参数

说明

[out,retval] IMxDrawResbuf** newIds

返回打碎后新生成的实体id数组

在c#中实现如下:


// 与用户交在图面上选择要打碎的块引对象
MxDrawUtility mxUtility = new MxDrawUtility();
object getPt;
MxDrawEntity ent = mxUtility.GetEntity(out getPt,"n 选择图块:");        

if (ent == null)

{

  MessageBox.Show("没有选择实体..");           

  return;

}        

if (ent is MxDrawBlockReference)

{            

   MxDrawBlockReference blkRef = (MxDrawBlockReference)ent;

   MxDrawResbuf rb = (MxDrawResbuf)(blkRef.Explode() );            

// 得到打碎后新生成的实体的id

            for(Int32  i = 1; i < rb.Count;i++)
            {                

           long entId = rb.AtLong(i);

            }
        }

在网页中实现如下:

// 与用户交在图面上选择要打碎的块引对象
var ent = mxOcx.GetEntity("选择图块:");
    if (ent == null)
    {
       alert("没有选择实体..");
        return;
    }
if (ent.ObjectName == "McDbBlockReference")
    {
        // 选择的是一个块对象,就调用打碎函数碎
        var blkRef = ent;
        var rb = blkRef.Explode();
 
        // 得到打碎后新生成的实体的id
        for(var  i = 1; i < rb.Count;i++)
        {
            var entId = rb.AtLong(i);
        }
    }

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值