zoukankan      html  css  js  c++  java
  • objectarx之遍历当前模型空间中的所有实体,并对每个实体进行炸开

    //炸开
    void BomEntity()
    {
    AcDbBlockTable *pBlkTbl;
    acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlkTbl, AcDb::kForRead);

    //获得模型空间的块表记录
    AcDbBlockTableRecord *pBlkTblRcd;
    pBlkTbl->getAt(ACDB_MODEL_SPACE, pBlkTblRcd,AcDb::kForRead);
    pBlkTbl->close();

    //创建块表记录遍历器
    AcDbBlockTableRecordIterator *pItr; //块表记录遍历器
    pBlkTblRcd -> newIterator(pItr);
    pBlkTblRcd->close();
    AcDbEntity *pEnt = NULL; //遍历的临时实体指针
    for(pItr->start();!pItr->done();pItr->step()){
    //利用遍历器获得每一个实体
    pItr->getEntity(pEnt,AcDb::kForWrite);

    //块参照
    if (pEnt->isKindOf(AcDbBlockReference::desc()))
    {
    //炸开
    AcDbVoidPtrArray ents =Explode(pEnt);
    //循环遍历炸开的实体
    for(int i = 0; i < ents.length(); ++i)
    {
    AcDbEntity* pSubEnt = (AcDbEntity*)ents[i];
    AcDbEntity* entity = AcDbEntity::cast(pSubEnt);
    AppendToDatabase(entity);
    entity->close();
    }
    pEnt->erase();
    }

    pEnt->close();
    }
    delete pItr;
    }

  • 相关阅读:
    替换空格
    centos虚拟机 服务器搭建
    Java 深度遍历和广度优先遍历
    idea热部署Devtools
    idea字符编码设置
    idea破解详细教程
    Java序列化
    60+Git常用命令行
    LeetCode 236. 二叉树的最近公共祖先
    08 讲解v-cloak,v-text,v-html的基本使用
  • 原文地址:https://www.cnblogs.com/Pond-ZZC/p/11578028.html
Copyright © 2011-2022 走看看