找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 190|回复: 0

得到块定义中的所有实体id(通过块定义id)

[复制链接]

0

主题

0

回帖

26

积分

管理员

积分
26
发表于 2024-3-13 23:03:28 | 显示全部楼层 |阅读模式
  1. //************************************
  2. // Summary:  得到块定义中的所有实体id(通过块定义id)
  3. // Parameter:
  4. //      arrid -    输出块定义中所有实体id集合
  5. //      idBlkTblRcd -    输入块表记录id
  6. // Return:       
  7. // Update Time: 2021-7-16 16:08:35    peihaodong
  8. //************************************
  9. bool PhdArxBlock::GetAllEntId(AcDbObjectIdArray& arrid, const AcDbObjectId& idBlkTblRcd) const
  10. {
  11.         AcDbBlockTableRecordPointer pBlkTblRcd(idBlkTblRcd, AcDb::kForRead);
  12.         Acad::ErrorStatus es = pBlkTblRcd.openStatus();
  13.         if (es != Acad::eOk)
  14.                 return false;
  15.         AcDbBlockTableRecordIterator* pBTRIter = NULL;
  16.         es = pBlkTblRcd->newIterator(pBTRIter);
  17.         if (Acad::eOk != es)
  18.                 return false;
  19.         //绑定智能指针
  20.         std::unique采用ptr<AcDbBlockTableRecordIterator> apBTRIter(pBTRIter);
  21.         for (apBTRIter->start(); !apBTRIter->done(); apBTRIter->step())
  22.         {
  23.                 AcDbEntity* pTempEnt = NULL;
  24.                 es = apBTRIter->getEntity(pTempEnt, AcDb::kForRead);
  25.                 if (Acad::eOk != es)
  26.                         continue;
  27.                 arrid.append(pTempEnt->objectId());
  28.                 pTempEnt->close();
  29.         }
  30.         return true;
  31. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2024-12-28 15:03 , Processed in 0.103009 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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