gemini2100 发表于 2005-6-6 10:03:00

[求助]求助:创建实体添加到图纸中异常问题。

<FONT id=text1 style="FONT-SIZE: 10pt" face="宋体,verdana, arial, helvetica"><BR>可以肯定下面代码是能正常运行的,因为在另一个程序运行过,<BR>但是建一个Dialog添加按扭事件,把下面代码粘进去运行就出现未处理的异常,而且应该是<BR>pBlockTableRecord-&gt;appendAcDbEntity(pNewPline);<BR>这行出错的。请问是什么原因啊????<BR><BR>就是添加一个多线到图纸中标准例程:<BR>AcGePoint3dArray ptArr;<BR>ptArr.setLogicalLength(4);<BR>for (int i = 0; i &lt; 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-&gt;setColorIndex(3);<BR><BR>AcDbBlockTable *pBlockTable;<BR>acdbHostApplicationServices()-&gt;workingDatabase()<BR>-&gt;getSymbolTable(pBlockTable, AcDb::kForRead);<BR><BR>AcDbBlockTableRecord *pBlockTableRecord;<BR>pBlockTable-&gt;getAt(ACDB_MODEL_SPACE, pBlockTableRecord,<BR>AcDb::kForWrite);<BR>pBlockTable-&gt;close();<BR><BR><BR>AcDbObjectId plineObjId;<BR>pBlockTableRecord-&gt;appendAcDbEntity(pNewPline);<BR><BR>pBlockTableRecord-&gt;close();<BR>pNewPline-&gt;close();</FONT> <BR>

pandoram 发表于 2005-6-6 10:43:00

。。代码在别处能运行,说明这一段代码本身没有问题,多半是前前后后没有设置好。到底什么异常(有没有错误信息之类的?),对话框是怎么做的,真正可能有问题的地方都没有显示出来,一个没有问题的代码看了也没用啊。。


既然知道可能是appendAcDbEntity出错,用回返值监控一下,说不定就看出问题了。。

中国虫 发表于 2005-6-7 10:27:00

这段代码本身没什么错,除了没有校验返回值。其实你看一下这个返回值就知道了,我估计


<FONT size=2>pBlockTable-&gt;getAt(ACDB_MODEL_SPACE, pBlockTableRecord,<BR>AcDb::kForWrite);</FONT><BR>的返回值就不是Acad::eOk,肯定块表在别的程序(可能是你的,可能是别人的)还处于打开状态。
页: [1]
查看完整版本: [求助]求助:创建实体添加到图纸中异常问题。