找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 853|回复: 4

[ARX程序]:统计0层上所有的文本Text并显示出来(我写的程序怎么没能正确统计)0

[复制链接]
发表于 2004-6-16 14:46:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
大家帮我看看这段程序为什么没能做出正确的判断
(统计0层上所有的文本Text并显示出来,,若文本是MText形式在图纸上用命令先炸开`)

// This is command 'KK'
void fikk()
{
// TODO: Implement the command
AcDbTextStyleTable *pBT;
if( acdbHostApplicationServices()->workingDatabase()
        ->getSymbolTable(pBT, AcDb::kForRead) != Acad::eOk)
   return;
       
AcDbTextStyleTableRecord *pRec;
       
if(pBT->getAt(ACDB_MODEL_SPACE, pRec,AcDb::kForRead) !=Acad::eOk)
               
  return;
pBT->close();
Acad::ErrorStatus es;
AcDbTextStyleTableIterator *pIter;
es=pBT->newIterator(pIter);
AcDbEntity *pEnt;
AcDbText *pText;
   int j=1;

for (;!pIter->done();pIter->step()) //开始遍历
  {
          
        es=pIter->getRecord(pRec,AcDb::kForRead);

        if (es!=Acad::eOk)
          continue;
//判断是否是指定层(这里为零层)和文本样式
   if ((!stricmp(pEnt->layer(),"0"))&&(pText=AcDbText::cast(pEnt)))
        {
                               
        char *ptxt=pText->textString();
        acutPrintf("\n第%d个文本表示为:%f",j++,ptxt);             
      
        }
        pEnt->close();   
        }
        acutPrintf("\n **********共有%d个文本**********",j-1);


         delete pIter; //释放叠代指针
        pRec->close(); //关闭记录
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-6-30 22:31:26 | 显示全部楼层
用acdbssget()设置过虑器就了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-1 05:53:34 | 显示全部楼层
你用错了指针了!!
单行文本是记录在块表的,应改为:
AcDbBlockTable *pBT;
acdbHostApplicationServices()->workingDatabase()
->getSymbolTable(pBT, AcDb::kForRead);

"AcDbTextStyleTableRecord *pRec "  
改为:
AcDbBlockTableRecord *pRec;

AcDbTextStyleTableIterator *pIter
改为:
AcDbBlockTableIterator *pIter;

这样子应该没什么大问题了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-2 17:19:51 | 显示全部楼层
错! 应遍历整个数据库中ACDB_MODEL_SPACE块表纪录中每个实体,并验证各实体是否指定类型和在指定的层上,然后作相应的处理.而不是遍历文字样式表,并验证文字样式表中的每种文字样式纪录!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-4 09:14:35 | 显示全部楼层
问题已经解决,,请大学参考
http://www.xdcad.net/forum/showthread.php?threadid=199150
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-21 10:51 , Processed in 0.202552 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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