获取DWG图中的所有文字

ads_name sset;
 struct resbuf *rb;
 long length=0;
 rb = acutBuildList(8, _T("模板"),RTNONE);
 int nRet=acedSSGet(_T("A"), NULL, NULL, rb, sset);
 acedSSLength(sset,&length);
 for (int i=0;i<length;i++)
 {
  ads_name ent_name;
  acedSSName(sset,i,ent_name);
  AcDbObjectId objId;
  acdbGetObjectId(objId, ent_name);

  AcDbExtents ext;
  AcDbEntity *pEnt;
  if (acdbOpenObject(pEnt, objId, AcDb::kForRead)==Acad::eOk)
  {
   if (pEnt->isKindOf(AcDbText::desc()))
   {
    AcDbText *pTxt;
    if (Acad::eOk==acdbOpenObject(pTxt,objId,AcDb::kForRead))
    {
     wchar_t *ptxt=pTxt->textString();
     acutPrintf(_T("\nTEXT:==%s\n"),ptxt);
    }
    pTxt->close();
   }
   pEnt->close();
  }
 }
 acutRelRb(rb);
 acedSSFree(sset);
 /*
 AcDbDatabase* pDb = acdbHostApplicationServices()->workingDatabase();
 if (pDb == NULL)
 {
  //acutPrintf("\n当前无活动的图形!");
  return ;
 }

 AcDbBlockTable *pBlockTable;
 if (pDb->getBlockTable(pBlockTable, AcDb::kForRead) != Acad::eOk)
 {
  //acutPrintf("\n打开块表失败!");
  return ;
 }

 AcDbBlockTableRecord *pBlockRec;
 if (pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockRec, AcDb::kForRead)!= Acad::eOk)
 {
  //acutPrintf("打开模型空间失败!");
  pBlockTable->close();
  return ;
 }
 pBlockTable->close();

 AcDbBlockTableRecordIterator* pIterator,*pIter;
 pBlockRec->newIterator(pIterator,true,false);
 //pBlockRec->newIterator(pIter,true,false);
 if( pIterator->done())
 {
  //acutPrintf("\n当前图形无数据。");
  pBlockRec->close();
  delete pIterator;
  return ;
 }
 AcDbEntity* pEnt;
 for(; !pIterator->done(); pIterator->step(true,false))
 {
  if(pIterator->getEntity(pEnt, AcDb::kForRead,true)!=Acad::eOk)
   continue;

  if(pEnt->isKindOf(AcDbText::desc()))
  {
   AcDbObjectId eId;
   eId=pEnt->objectId();
   AcDbText *pTxt;
   if (Acad::eOk==acdbOpenObject(pTxt,eId,AcDb::kForRead))
   {
    wchar_t *ptxt=pTxt->textString();
    acutPrintf(_T("\nTEXT:==%s\n"),ptxt);
   }
   pTxt->close();
  }
  pEnt->close();
 }
 pBlockRec->close();
 delete pIterator;
 */

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zzia72

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值