- UID
- 62818
- 积分
- 166
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2003-7-5
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
各位,今天有时间测试了一下各位提出的方法,结果还是不行!
现把程序粘贴如下:
//定义变量
AcDbObjectId transId;
AcDbObjectIdArray objIdArray;
/*---------------获取前面选中文件的图形数据库---------------*/
AcDbDatabase *pDb = new AcDbDatabase(Adesk::kFalse,true);
Acad::ErrorStatus es = pDb->readDwgFile(filepath,_SH_DENYNO,false);
if (es!=Acad::eOk)
{
acutPrintf("\nThe file %s cannot be opend",filepath);
return;
}
AcDbBlockTable *pBlockTbl;
pDb->getSymbolTable(pBlockTbl,AcDb::kForRead);
AcDbBlockTableRecord *pBlockTblRec;
pBlockTbl->getAt(ACDB_MODEL_SPACE,pBlockTblRec,AcDb::kForWrite);
pBlockTbl->close();
//创建遍历器
AcDbBlockTableRecordIterator *pBTRIterator;
pBlockTblRec->newIterator(pBTRIterator);
CString strText;
for(;!pBTRIterator->done();pBTRIterator->step())
{
AcDbEntity *pEnt;
pBTRIterator->getEntity(pEnt,AcDb::kForWrite);
if(strcmp(pEnt->isA()->name(),"AcDbText")==0)
{
AcDbText *pText;
pText = AcDbText::cast(pEnt);
strText = pText->textString();
if(strText.Compare(strFindWhat)==0)
{
objIdArray.append(pText->objectId());
if(pText->setTextString(strDisplace) != Acad::eOk)
acedAlert("Can't displace text string!");
strText = pText->textString();
acedAlert(strText);
// pText->recordGraphicsModified();
// pText->downgradeOpen();
// pText->draw();
}
pText->close();
}
pEnt->close();
}
delete pBTRIterator;
pBlockTblRec->close();
if(objIdArray.isEmpty())
{
acutPrintf("\n用户所选文件中没有%s",strFindWhat);
return;
}
//保存原数据库、关闭数据库并删除此对象
pDb->saveAs(filepath);
delete pDb;
pDb = NULL;
请各位大侠帮忙,看看程序错在哪里,怎样才能马上显示? |
|