找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1282|回复: 2

[每日一码] ObjextARX 删除图层实体(使用ADSRx全局函数)

[复制链接]

已领礼包: 13个

财富等级: 恭喜发财

发表于 2017-2-15 22:47:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

/*  
函数名称:    DrawMcLine  
功能描述: 删除实体 
返回类型: 无 
参数意义: 无 
修改记录:       */  
bool McAcad::eraseEntity(int soft)  
{  
    try  
    {  
        struct resbuf * pRb = NULL;  
        long nLen = 0;  
        ads_name Names;  
        ads_name entName;  
        ads_name strNames;//图元名称  
        AcDbObjectId RetId = AcDbObjectId::kNull;  
        CStringArray LayerArray;  
        LayerArray.Add(_T("McRect"));  
        int LayerArraySize = LayerArray.GetSize();  
        CString layerName;  
        AcDbEntity *pEnt = NULL;  
        for (int j=0;j<LayerArraySize;j++)  
        {  
            int count = LayerArray.GetSize();  
            layerName = LayerArray.GetAt(j);  
            pRb = acutBuildList(8, layerName,RTNONE);  
            if (pRb != NULL)  
            {  
                acedSSGet(_T("A"), NULL, NULL, pRb, Names);  
                acedSSLength(Names,&nLen);  
                for(int i=0;i<nLen;i++)  
                {  
                    acedSSName(Names,i,entName);  
                  
                    if(Acad::eOk==acdbGetObjectId(RetId,entName))  
                    {  
                        acdbGetAdsName(strNames,RetId);  
                        if(Acad::eOk==acdbOpenObject(pEnt,RetId, AcDb::kForWrite))  
                        {  
                            //删除实体  
                            if(Acad::eOk != pEnt->erase(true))  
                            {  
                                acutPrintf(_T("\n删除失败!\n"));  
                            }  
                        }  
                        pEnt->close();  
                    }  
                    acedSSFree(entName);  
                    acdbNameClear(entName);  
                }  
                acedSSFree(Names);  
                acdbNameClear(Names);  
                acutRelRb(pRb);  
            }  
        }  
        LayerArray.RemoveAll();  
        return true;  
  
    }  
    catch(...)  
    {  
        edwrite("McAcad::eraseEntity() error");  
        return false;  
    }  
    return true;  
} 
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 2450个

财富等级: 金玉满堂

发表于 2017-2-16 11:36:58 | 显示全部楼层
学习!!!!!!!!!!!!!!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-24 18:22 , Processed in 0.169536 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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