明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1576|回复: 2

试图更改CAD文件中数字标注内容时出错(附源码)

[复制链接]
发表于 2007-12-16 16:24:00 | 显示全部楼层 |阅读模式

试图更改CAD文件中数字标注内容时出错,源码如下:

 //打开数据库

AcDbBlockTable *pBlockTable;
 acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlockTable,AcDb::kForWrite);
 AcDbBlockTableRecord *pBlockTableRecord;
 pBlockTable->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForWrite);
 pBlockTable->close();
 AfxMessageBox("open model space");

 //创建块表记录遍历器,用遍历器遍历实体,并修改标注值。
 AcDbRotatedDimension *pDimention;
 char* Texttemp;
 ACHAR* Astr;
 Astr="111";
 AcDbBlockTableRecordIterator *pBlockIterator;
 pBlockTableRecord->newIterator(pBlockIterator);
 for(pBlockIterator->start();!pBlockIterator->done();pBlockIterator->step())
 {
  AcDbEntity *pEntity;
  pBlockIterator->getEntity(pEntity,AcDb::kForWrite);
  const char *pCname=pEntity->isA()->name();
  if(strcmp(pCname,"AcDbRotatedDimension")==0)
  {
       pDimention=AcDbRotatedDimension::cast(pEntity);
      Texttemp=pDimention->dimensionText();
       if(strcmp(Texttemp,"e")==0)
       {
            AfxMessageBox("found linedim");
            pDimention->setDimensionText(Astr);
       }
  }
 }
 delete pBlockIterator;
 pBlockTableRecord->close();

出错提示:内部错误:!scandr.cpp@803:eWasOpenForWrite

是不是CAD文件在打开时,不能用ARX修改实体。

期盼高手指点!!!

 楼主| 发表于 2007-12-16 17:39:00 | 显示全部楼层
搞定了,实体没有关闭的缘故
发表于 2011-8-1 10:52:07 | 显示全部楼层
thank you
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 10:59 , Processed in 0.151240 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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