找回密码
 立即注册

QQ登录

只需一步,快速开始

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

得到所有的块定义名(得到数据库中所有的块名)

[复制链接]

0

主题

0

回帖

28

积分

管理员

积分
28
发表于 2024-3-13 23:04:37 | 显示全部楼层 |阅读模式
  1. bool PhdArxBlock::GetAllBlkDefName(AcArray<CString>& arrBlkDefName, AcDbDatabase* pDb /*= acdbCurDwg()*/) const
  2. {
  3.         AcDbBlockTablePointer pBlkTbl(pDb, AcDb::kForRead);
  4.         if (Acad::eOk != pBlkTbl.openStatus())
  5.                 return false;
  6.         AcDbBlockTableIterator* pIt = NULL;
  7.         Acad::ErrorStatus es = pBlkTbl->newIterator(pIt);
  8.         if (Acad::eOk != es)
  9.                 return false;
  10.         std::unique采用ptr<AcDbBlockTableIterator> apIt(pIt);
  11.         for (apIt->start(); !apIt->done(); apIt->step())
  12.         {
  13.                 AcDbBlockTableRecord* pBTRecord = NULL;
  14.                 if (apIt->getRecord(pBTRecord, AcDb::kForRead) == Acad::eOk)
  15.                 {
  16.                         TCHAR* szName = NULL;
  17.                         pBTRecord->getName(szName);
  18.                         CString BlockName = szName;
  19.                         if (采用tcslen(szName) > 0)//过滤掉名称为空的块表;
  20.                         {
  21.                                 if (BlockName.Find(采用T("Model采用Space")) == -1 && BlockName.Find(采用T("Paper采用Space")) == -1)
  22.                                         arrBlkDefName.append(BlockName);
  23.                         }
  24.                         acutDelString(szName);//必须清除动态字符串;
  25.                         pBTRecord->close();
  26.                 }
  27.         }
  28.         return true;
  29. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-29 05:12 , Processed in 0.132313 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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