CAD二开(c#)小试牛刀系列7 删除指定图层上的实体

使用工具==CAD2019+VS2022

主要作用==针对复杂的CAD图纸,通过图层来删除指定的实体保留其他的实体不受干扰

效果图(框选删除井的编号而不影响其他的东西)

代码部分

public void Delet()
        {
            Database db = HostApplicationServices.WorkingDatabase;
            Editor ed = acadApp.Application.DocumentManager.MdiActiveDocument.Editor;
            
            //获取图层名称
            string nameLay = GetLayername();//自定义函数
            TypedValue[] types = new TypedValue[1];
            types[0] = new TypedValue((int)DxfCode.LayerName, nameLay);            
            SelectionFilter filter = new SelectionFilter(types);
            PromptSelectionResult psResult = ed.GetSelection(filter);
            if (psResult.Status == PromptStatus.OK)
            {
                ObjectId[] ids= psResult.Value.GetObjectIds();
                using (Transaction trans = db.TransactionManager.StartTransaction())
                {                    
                    foreach (ObjectId item in ids)
                    {
                        DBObject ents = item.GetObject(OpenMode.ForWrite);
                        ents.Erase();
                    }
                    trans.Commit();
                }
            }
            
        }

//自定义函数
public static string GetLayername()
        {
            Database db = HostApplicationServices.WorkingDatabase;
            Editor ed = acadApp.Application.DocumentManager.MdiActiveDocument.Editor;
            string layName = null;
            PromptSelectionResult psLayer = ed.GetSelection();
            if (psLayer.Status == PromptStatus.OK)
            {
                ObjectId[] ids = psLayer.Value.GetObjectIds();
                using (Transaction trans = db.TransactionManager.StartTransaction())
                {
                    foreach (var item in ids)
                    {
                        Entity ents = trans.GetObject(item, OpenMode.ForRead) as Entity;
                        layName = ents.Layer;
                    }
                }
            }            
            return layName;
        }        

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值