- UID
- 392623
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2006-2-12
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2006-4-7 10:16:11
|
显示全部楼层
setlayer函数的目的是搜索是否有名叫gdc的block,有的话改变它的尺寸
void setInsertLayer()
{
Acad::ErrorStatus es;
AcDbBlockTable* pBlockTbl;
AcDbBlockTableRecord* pMS;
if ((es = acdbCurDwg()->getBlockTable(pBlockTbl, AcDb::kForRead)) == Acad::eOk)
{
{if ((es = pBlockTbl->getAt(ACDB_MODEL_SPACE, pMS, AcDb::kForWrite))! =Acad::eOk) // (一)
acrx_abort("\\nCouldn't get Model Space! Drawing corrupt.\\n");
}
pBlockTbl->close();
}
AcDbBlockTableRecordIterator* pBtrIter; //(二)
if ((es = pMS->newIterator(pBtrIter)) != Acad::eOk)//(三)
{
acutPrintf("\\nCouldn't create Model Space iterator: %s", acadErrorStatusText(es));
return;
}
char* blockName;
AcDbEntity* pEnt;
AcDbBlockTableRecord* pCurEntBlock;
AcDbObjectId blockId;
for (pBtrIter->start(); !pBtrIter->done(); pBtrIter->step())//(四)
{
if ((es = pBtrIter->getEntity(pEnt, AcDb::kForRead)) != Acad::eOk)
{
acutPrintf("\\nCouldn't open entity: %s", acadErrorStatusText(es));
continue;
}
if (pEnt->isA() != AcDbBlockReference::desc())//(五)
{
pEnt->close();
continue;
}
blockId = (AcDbBlockReference::cast(pEnt))->blockTableRecord();//(六)
if (acdbOpenObject((AcDbObject*&)pCurEntBlock, blockId, AcDb::kForRead) == Acad::eOk) //(七)
{
pCurEntBlock->getName(blockName);
if (strcmp(blockName, "gdc") == 0)
{
if (pEnt->upgradeOpen() == Acad::eOk)
pEnt->set??这里应该加什么函数?? }
pCurEntBlock->close();
}
delete pBtrIter;
pMS->close();
return;
} |
|