找回密码
 立即注册

QQ登录

只需一步,快速开始

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

arx 正向遍历 逆向遍历 database

[复制链接]

0

主题

0

回帖

26

积分

管理员

积分
26
发表于 2024-2-28 09:06:05 | 显示全部楼层 |阅读模式
  1. void AllDb()
  2. {
  3.     AcDbBlockTable* pBlkTbl;
  4.     acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlkTbl, AcDb::kForRead);
  5.     //获得模型空间的块表记录
  6.     AcDbBlockTableRecord* pBlkTblRcd;
  7.     pBlkTbl->getAt(ACDB采用MODEL采用SPACE, pBlkTblRcd, AcDb::kForRead);
  8.     pBlkTbl->close();
  9.     CString str = L"正向遍历";
  10.     //创建块表记录遍历器
  11.     AcDbBlockTableRecordIterator* pItr; //块表记录遍历器
  12.     pBlkTblRcd->newIterator(pItr);
  13.     pBlkTblRcd->close();
  14.     AcDbEntity* pEnt = NULL; //遍历的临时实体指针
  15.     for (pItr->start(); !pItr->done(); pItr->step()) {
  16.         //利用遍历器获得每一个实体
  17.         pItr->getEntity(pEnt, AcDb::kForWrite);
  18.         auto id = pEnt->id();
  19.         auto oldId = id.asOldId();
  20.         //acutPrintf();
  21.         str.AppendFormat(L"\n%d", oldId);
  22.         pEnt->close();
  23.     }
  24.     delete pItr;
  25.     AfxMessageBox(str);
  26. }
  27. void AllDb采用reverse()
  28. {
  29.     AcDbBlockTable* pBlkTbl;
  30.     acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlkTbl, AcDb::kForRead);
  31.     //获得模型空间的块表记录
  32.     AcDbBlockTableRecord* pBlkTblRcd;
  33.     pBlkTbl->getAt(ACDB采用MODEL采用SPACE, pBlkTblRcd, AcDb::kForRead);
  34.     pBlkTbl->close();
  35.     CString str = L"逆向遍历";
  36.     //创建块表记录遍历器
  37.     AcDbBlockTableRecordIterator* pItr; //块表记录遍历器
  38.     pBlkTblRcd->newIterator(pItr);
  39.     pBlkTblRcd->close();
  40.     AcDbEntity* pEnt = NULL; //遍历的临时实体指针
  41.     for (pItr->start(false); !pItr->done(); pItr->step(false)) {
  42.         //利用遍历器获得每一个实体
  43.         pItr->getEntity(pEnt, AcDb::kForWrite);
  44.         auto id = pEnt->id();
  45.         auto oldId = id.asOldId();
  46.         //acutPrintf();
  47.         str.AppendFormat(L"\n%d", oldId);
  48.         pEnt->close();
  49.     }
  50.     delete pItr;
  51.     AfxMessageBox(str);
  52. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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