天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 71|回复: 0

ObjextARX 删除图层实体

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
/*
        函数名称:         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;
        }

 

 

 

 

ObjextARX 删除图层实体
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 10:22 , Processed in 0.173381 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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