天气与日历 切换到窄版

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

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

[复制链接]
  • TA的每日心情
    开心
    昨天 06:36
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    105

    主题

    11

    回帖

    1308

    积分

    管理员

    积分
    1308
    QQ
    发表于 2024-3-14 20:20:04 | 显示全部楼层 |阅读模式
    1. /*  
    2. 函数名称:    DrawMcLine  
    3. 功能描述: 删除实体
    4. 返回类型: 无
    5. 参数意义: 无
    6. 修改记录:       */  
    7. bool McAcad::eraseEntity(int soft)  
    8. {  
    9.     try  
    10.     {  
    11.         struct resbuf * pRb = NULL;  
    12.         long nLen = 0;  
    13.         ads采用name Names;  
    14.         ads采用name entName;  
    15.         ads采用name strNames;//图元名称  
    16.         AcDbObjectId RetId = AcDbObjectId::kNull;  
    17.         CStringArray LayerArray;  
    18.         LayerArray.Add(采用T("McRect"));  
    19.         int LayerArraySize = LayerArray.GetSize();  
    20.         CString layerName;  
    21.         AcDbEntity *pEnt = NULL;  
    22.         for (int j=0;j<LayerArraySize;j++)  
    23.         {  
    24.             int count = LayerArray.GetSize();  
    25.             layerName = LayerArray.GetAt(j);  
    26.             pRb = acutBuildList(8, layerName,RTNONE);  
    27.             if (pRb != NULL)  
    28.             {  
    29.                 acedSSGet(采用T("A"), NULL, NULL, pRb, Names);  
    30.                 acedSSLength(Names,&nLen);  
    31.                 for(int i=0;i<nLen;i++)  
    32.                 {  
    33.                     acedSSName(Names,i,entName);  
    34.                   
    35.                     if(Acad::eOk==acdbGetObjectId(RetId,entName))  
    36.                     {  
    37.                         acdbGetAdsName(strNames,RetId);  
    38.                         if(Acad::eOk==acdbOpenObject(pEnt,RetId, AcDb::kForWrite))  
    39.                         {  
    40.                             //删除实体  
    41.                             if(Acad::eOk != pEnt->erase(true))  
    42.                             {  
    43.                                 acutPrintf(采用T("\n删除失败!\n"));  
    44.                             }  
    45.                         }  
    46.                         pEnt->close();  
    47.                     }  
    48.                     acedSSFree(entName);  
    49.                     acdbNameClear(entName);  
    50.                 }  
    51.                 acedSSFree(Names);  
    52.                 acdbNameClear(Names);  
    53.                 acutRelRb(pRb);  
    54.             }  
    55.         }  
    56.         LayerArray.RemoveAll();  
    57.         return true;  
    58.   
    59.     }  
    60.     catch(...)  
    61.     {  
    62.         edwrite("McAcad::eraseEntity() error");  
    63.         return false;  
    64.     }  
    65.     return true;  
    66. }
    复制代码

     

     

     

     

    [每日一码] ObjextARX 删除图层实体(使用ADSRx全局函数)
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2024-11-1 13:33 , Processed in 0.122063 second(s), 25 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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