skyawa 发表于 2005-8-24 02:35:00

求问2004arx图块插入问题

<P>我使用的是autocad2004,按照论坛和书上的指导做了这个将图形作为图块插入的程序,可是怎么都不能在图纸上显示插入结果,手动插入的时候可以看见图形已经成为块,并可以顺利插入图块,但程序的插入代码并不起作用,为什么?请大家看一下。</P>
<P>&nbsp;&nbsp;CString sFileName = "D:\\cadMgr<A href="file://ptu.dwg/" target="_blank" >\\ptu.dwg</A>";<BR>&nbsp;&nbsp;CString pBlockName = "basePT";<BR>&nbsp;&nbsp;AcGePoint3d Pt(200,200,0);<BR>&nbsp;&nbsp;double Angle = 0.0;<BR>&nbsp;&nbsp;AcGeScale3d XrefScale(1.,1.,1.);<BR>&nbsp;&nbsp;AcDbDatabase *pNewDb =new AcDbDatabase(Adesk::kFalse); <BR>&nbsp;&nbsp;int es=pNewDb-&gt;readDwgFile(sFileName,_SH_DENYNO,false); <BR>&nbsp;&nbsp;if (es!=Acad::eOk) <BR>&nbsp;&nbsp;{ <BR>&nbsp;&nbsp;&nbsp;acutPrintf("\nThe file %s cannot be opend",sFileName); <BR>&nbsp;&nbsp;&nbsp;return; <BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;AcDbDatabase *pDb; <BR>&nbsp;&nbsp;pDb =acdbHostApplicationServices ()-&gt;workingDatabase () ; <BR>&nbsp;&nbsp;AcDbObjectId blockId; <BR>&nbsp;&nbsp;if((es=pDb-&gt;insert(blockId, pBlockName,pNewDb, true))==Acad::eOk) <BR>&nbsp;&nbsp;{ <BR>&nbsp;&nbsp;&nbsp;acutPrintf("\ninsert ok\n"); <BR>&nbsp;&nbsp;} <BR>&nbsp;&nbsp;else <BR>&nbsp;&nbsp;{ <BR>&nbsp;&nbsp;&nbsp;AfxMessageBox("Insert failed"); <BR>&nbsp;&nbsp;&nbsp;delete pNewDb; <BR>&nbsp;&nbsp;&nbsp;return; <BR>&nbsp;&nbsp;} //程序到这里,后面仿佛就开始出错,我找不到原因。难道因为我用的盗版??<BR>&nbsp;&nbsp;AcDbBlockReference *pBlkRef = new AcDbBlockReference; <BR>&nbsp;&nbsp;pBlkRef-&gt;setBlockTableRecord(blockId);//指向blockId; <BR>&nbsp;&nbsp;pBlkRef-&gt;setPosition(Pt);//设定位置 <BR>&nbsp;&nbsp;pBlkRef-&gt;setRotation(Angle);//设定转角 <BR>&nbsp;&nbsp;pBlkRef-&gt;setScaleFactors( XrefScale);//设定放大比例 </P>
<P>&nbsp;&nbsp;AcDbBlockTable *pBlockTable; <BR>&nbsp;&nbsp;pDb-&gt;getSymbolTable(pBlockTable, AcDb::kForRead); </P>
<P>&nbsp;&nbsp;AcDbBlockTableRecord *pBlockTableRecord; <BR>&nbsp;&nbsp;pBlockTable-&gt;getAt(ACDB_MODEL_SPACE, pBlockTableRecord, AcDb::kForWrite); <BR>&nbsp;&nbsp;pBlockTable-&gt;close(); <BR>&nbsp;&nbsp;AcDbObjectId newEntId; <BR>&nbsp;&nbsp;pBlockTableRecord-&gt;appendAcDbEntity(newEntId, pBlkRef); <BR>&nbsp;&nbsp;pBlockTableRecord-&gt;close(); <BR>&nbsp;}</P>

skyawa 发表于 2005-8-24 04:22:00

hoho,不好意思,犯了变量名认知错误了,眼睛都看花了,想了那么多就是没想到简单错误,忘了把AcDbBlockReference给close了,打扰各位看客了。
页: [1]
查看完整版本: 求问2004arx图块插入问题