乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 56|回复: 4

[求助]如何把图纸中所有的文字提取出来

[复制链接]

1

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
7
发表于 2009-4-21 07:40:00 | 显示全部楼层 |阅读模式
刚学ObjectARX,现在想实现把当前文档中包含的所有文字提取出来,请各位前辈高人指点。
回复

使用道具 举报

dll

0

主题

5

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2009-4-21 15:31:00 | 显示全部楼层
最简单的就是遍历数据库然后判断类型是否是文字了,
isKindOf( AcdbText::desc() )
回复

使用道具 举报

1

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
7
发表于 2009-4-22 21:31:00 | 显示全部楼层
谢谢dll,不知道有没有这样的例子
回复

使用道具 举报

9

主题

16

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2009-4-23 18:12:00 | 显示全部楼层
给你一段代码吧 希望对你有启发
AcDbDatabase* pDb = acdbHostApplicationServices()->workingDatabase();
if (pDb == NULL)
{
  acutPrintf("\n当前无活动的图形!");
  return false;
}
AcDbBlockTable *pBlockTable;
if (pDb->getBlockTable(pBlockTable, AcDb::kForRead) != Acad::eOk)
{
  acutPrintf("\n打开块表失败!");
  return false;
}
AcDbBlockTableRecord *pBlockRec;
if (pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockRec, AcDb::kForRead)!= Acad::eOk)
{
  acutPrintf("打开模型空间失败!");
  pBlockTable->close();
  return false;
}
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 false;
}
AcDbEntity* pEnt;
for(; !pIterator->done(); pIterator->step(true,false))
{
  if(pIterator->getEntity(pEnt, AcDb::kForRead,true)!=Acad::eOk)
   continue;
  if(pEnt->isKindOf(AcdbText::desc() true)
  {
   AcDbObjectId eId;
   eId=pEnt->objectId();
   ids.append(eId);
  }
  pEnt->close();
}
pBlockRec->close();
delete pIterator;
回复

使用道具 举报

1

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
7
发表于 2009-4-23 20:13:00 | 显示全部楼层
太感谢nogirlfriend了。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-6 00:58 , Processed in 0.182352 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表