[求助]求助:创建实体添加到图纸中异常问题。
<FONT id=text1 style="FONT-SIZE: 10pt" face="宋体,verdana, arial, helvetica"><BR>可以肯定下面代码是能正常运行的,因为在另一个程序运行过,<BR>但是建一个Dialog添加按扭事件,把下面代码粘进去运行就出现未处理的异常,而且应该是<BR>pBlockTableRecord->appendAcDbEntity(pNewPline);<BR>这行出错的。请问是什么原因啊????<BR><BR>就是添加一个多线到图纸中标准例程:<BR>AcGePoint3dArray ptArr;<BR>ptArr.setLogicalLength(4);<BR>for (int i = 0; i < 4; i++) {<BR>ptArr.set((double)(i/2), (double)(i%2), 0.0);<BR>}<BR><BR>AcDb2dPolyline *pNewPline = new AcDb2dPolyline(<BR>AcDb::k2dSimplePoly, ptArr, 0.0, Adesk::kTrue);<BR><BR>pNewPline->setColorIndex(3);<BR><BR>AcDbBlockTable *pBlockTable;<BR>acdbHostApplicationServices()->workingDatabase()<BR>->getSymbolTable(pBlockTable, AcDb::kForRead);<BR><BR>AcDbBlockTableRecord *pBlockTableRecord;<BR>pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,<BR>AcDb::kForWrite);<BR>pBlockTable->close();<BR><BR><BR>AcDbObjectId plineObjId;<BR>pBlockTableRecord->appendAcDbEntity(pNewPline);<BR><BR>pBlockTableRecord->close();<BR>pNewPline->close();</FONT> <BR> 。。代码在别处能运行,说明这一段代码本身没有问题,多半是前前后后没有设置好。到底什么异常(有没有错误信息之类的?),对话框是怎么做的,真正可能有问题的地方都没有显示出来,一个没有问题的代码看了也没用啊。。既然知道可能是appendAcDbEntity出错,用回返值监控一下,说不定就看出问题了。。 这段代码本身没什么错,除了没有校验返回值。其实你看一下这个返回值就知道了,我估计
<FONT size=2>pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,<BR>AcDb::kForWrite);</FONT><BR>的返回值就不是Acad::eOk,肯定块表在别的程序(可能是你的,可能是别人的)还处于打开状态。
页:
[1]