[求助]请教这是为什么?
void AdeskCreateDim(){
AcGePoint3d pt1(0,0,0),pt2(10,0,0),pt3(5,5,0);
AcDbRotatedDimension *pDim=new AcDbRotatedDimension(0,pt1,pt2,pt3);
Acad::ErrorStatus es ;
AcDbBlockTable *pBlockTbl ;
AcDbBlockTableRecord *pBlkTblRec;
if ( (es =acdbHostApplicationServices ()->workingDatabase ()->getBlockTable (pBlockTbl, AcDb::kForRead)) != Acad::eOk )
{
acutPrintf ("\nCouldn't open the block table!") ;
return;
}
if ( (es =pBlockTbl->getAt (ACDB_MODEL_SPACE, pBlkTblRec, AcDb::kForWrite)) != Acad::eOk )
{
acutPrintf ("\nCouldn't get Model Space! Drawing corrupt.\n") ;
pBlockTbl->close () ;
return;
}
if ( (es =pBlkTblRec->appendAcDbEntity (pDim)) != Acad::eOk )
{
delete pDim ;
pBlkTblRec->erase () ;
pBlkTblRec->close () ;
return;
}
pDim->close();
pBlkTblRec->close();
}
在Acad中键入命令createdim,出现如下提示:
Regen terminated
键入命令"x"->"all"则标注显示在屏幕上.
请教这是为什么? if ( (es =pBlkTblRec->appendAcDbEntity (pDim)) != Acad::eOk )
{
delete pDim ;
pBlkTblRec->erase () ;
pBlkTblRec->close () ;
return;
}
pDim->close();
pBlkTblRec->close();
}
这两个地方(直接造成问题的是后一个地方)你只关了block table record, 没有关block table, 所以ACAD就暴走了.
谢谢啦!
页:
[1]