bai_cai101
发表于 2005-8-22 09:12:00
<P>顶</P>
我的ARX
发表于 2005-8-22 15:59:00
<P>我试过上面给的程序,发现未知错误!!</P>
<P>怎么回事啊 还有 那个acad.dwt放在什么地方啊</P>
uusky
发表于 2005-8-27 13:19:00
<P> </P>
<P>文字</P>
<P>17楼斑竹的帖子为何打不开啊!</P>
<P>偶也很关系这个问题!希望斑竹不以善小而不为!</P>
<P>我在这里先谢谢了!</P>
bai_cai101
发表于 2005-8-27 19:27:00
<P>我是在ARX2002命令向导建立的程序上加入该函数的,另外,还有几个头文件我没有写出来,可以在调试的时候通过ARX帮助找出来,你可能是没有加入需要的头文件!!</P>
easypower
发表于 2005-9-19 12:46:00
<P> static char pData[] ="acad.dwt"; <BR> //acDocManager->executeInApplicationContext(CreateDoc, (void *)pData);<BR>//回调函数相当于开了一个新线程,和下面的程序是同步执行的,所以你得到的数据库就是原来的数据库了.<BR> if(acDocManager->isApplicationContext()) <BR> {<BR> acDocManager->appContextNewDocument((const char *)pData); <BR> } <BR> else<BR> {<BR> acutPrintf("\nERROR To Create Doc!\n");<BR> return;<BR> }<BR> //AcDbDatabase *pdb =acdbHostApplicationServices()->workingDatabase();<BR>//用这个也可以</P>
<P> AcApDocument *pDoc;<BR> pDoc=acDocManager->curDocument();<BR> AcDbDatabase *pdb = pDoc->database();</P>
<P> acDocManager->lockDocument(pDoc); //锁定文档</P>
<P><BR> AcDbBlockTable *pBtbl;<BR> Acad::ErrorStatus es = pdb->getSymbolTable(pBtbl, AcDb::kForRead);<BR> acutPrintf("es=%d\n",es);<BR> if (es != Acad::eOk)<BR> {<BR> return;<BR> }<BR> <BR> AcDbBlockTableRecord *pBtblRcd;<BR> es = pBtbl->getAt(ACDB_MODEL_SPACE, pBtblRcd,<BR> AcDb::kForWrite);<BR> acutPrintf("es=%d\n",es);<BR> if (es != Acad::eOk)<BR> {<BR> pBtbl->close();<BR> return;<BR> }<BR> pBtbl->close();<BR> <BR> AcDbCircle *pCir1 = new AcDbCircle(AcGePoint3d(1,1,1),<BR> AcGeVector3d(0,0,1),<BR> 1.0),<BR> *pCir2 = new AcDbCircle(AcGePoint3d(4,4,4),<BR> AcGeVector3d(0,0,1),<BR> 2.0);<BR> pBtblRcd->appendAcDbEntity(pCir1);<BR> pCir1->close();<BR> <BR> pBtblRcd->appendAcDbEntity(pCir2);<BR> pCir2->close();</P>
<P> pBtblRcd->close();</P>
<P> acDocManager->unlockDocument(pDoc); //解除文档锁定<BR></P>
bai_cai101
发表于 2005-10-16 20:59:00
<P>上面的程序我运行过了,不行哦!每次都是在旧文档的文本框中出现nERROR To Create Doc!实体也没有加入到任何一个文件中去!我用的VC6.0+ARX2002,在CAD2002中运行的!请高手指点一二!!!</P>
bai_cai101
发表于 2005-10-16 21:07:00
<P>#include "StdAfx.h"<BR>#include "StdArx.h"<BR>#include "dbsymtb.h"<BR>#include "dbents.h"<BR>//-----------------------------------------------------------------------------<BR>// This is command 'NEWDOC, by , , <BR>void ACADkaifanewdoc()<BR>{<BR>#ifdef OARXWIZDEBUG<BR> acutPrintf ("\nOARXWIZDEBUG - ACADkaifanewdoc() called.");<BR>#endif // OARXWIZDEBUG</P>
<P> // TODO: Implement the command<BR> static char pData[] ="acad.dwt"; <BR>acDocManager->executeInApplicationContext(CreateDoc, (void *)pData);</P>
<P>/*if(acDocManager->isApplicationContext()) <BR> {<BR> acDocManager->appContextNewDocument((const char *)pData); <BR> } <BR> else<BR> {<BR> acutPrintf("\nERROR To Create Doc!\n");<BR> return;<BR> }<BR> */<BR>AcApDocument *pDoc;<BR> pDoc=acDocManager->curDocument();<BR> AcDbDatabase *pdb = pDoc->database();</P>
<P> acDocManager->lockDocument(pDoc); </P>
<P><BR> AcDbBlockTable *pBtbl;<BR> Acad::ErrorStatus es = pdb->getSymbolTable(pBtbl, AcDb::kForRead);<BR> acutPrintf("es=%d\n",es);<BR> if (es != Acad::eOk)<BR> {<BR> return;<BR> }<BR> <BR> AcDbBlockTableRecord *pBtblRcd;<BR> es = pBtbl->getAt(ACDB_MODEL_SPACE, pBtblRcd,<BR> AcDb::kForWrite);<BR> acutPrintf("es=%d\n",es);<BR> if (es != Acad::eOk)<BR> {<BR> pBtbl->close();<BR> return;<BR> }<BR> pBtbl->close();<BR> <BR> AcDbCircle *pCir1 = new AcDbCircle(AcGePoint3d(1,1,1),<BR> AcGeVector3d(0,0,1),<BR> 1.0),<BR> *pCir2 = new AcDbCircle(AcGePoint3d(4,4,4),<BR> AcGeVector3d(0,0,1),<BR> 2.0);<BR> pBtblRcd->appendAcDbEntity(pCir1);<BR> pCir1->close();<BR> <BR> pBtblRcd->appendAcDbEntity(pCir2);<BR> pCir2->close();</P>
<P> pBtblRcd->close();</P>
<P> acDocManager->unlockDocument(pDoc);</P>
<P>}</P>
<P>void CreateDoc( void *pData) <BR>{ <BR>AcApDocument* pDoc = acDocManager->curDocument(); <BR>if(acDocManager->isApplicationContext()) <BR>{<BR> acDocManager->appContextNewDocument((const char *)pData); <BR>} <BR>else<BR> acutPrintf("\nERROR To Create Doc!\n");</P>
<P>}<BR>我这样修改了一下!现在运行不错!但问题还是那样!加入的实体不在新建的文件中!而是在旧文件中!!!!</P>
bai_cai101
发表于 2005-10-23 22:25:00
<P>我顶!</P>
hulei_accp
发表于 2005-10-23 22:48:00
filedia是系统变量,管“是否显示对话框”。
bai_cai101
发表于 2005-11-1 17:47:00
<P>我顶!!就没有人帮帮我吗?</P>