![]() |
加入的实体不在新建的文件中!而是在旧文件中
白 菜 22:23:57
你去过明经通道没!有一个bai_cai101的贴子,关于ARX新建文件,置为当前并得到新文件的数据库指针的的问题!你会吗? 白 菜 22:24:04 可否指点一二??? 白 菜 22:26:02 我用的是ARX2002,VC6.0 白 菜 22:26:05 #include "StdAfx.h" #include "StdArx.h" #include "dbsymtb.h" #include "dbents.h" //----------------------------------------------------------------------------- // This is command 'NEWDOC, by [2005-10-16], , void ACADkaifanewdoc() { #ifdef OARXWIZDEBUG acutPrintf ("\nOARXWIZDEBUG - ACADkaifanewdoc() called."); #endif // OARXWIZDEBUG // TODO: Implement the command static char pData[] ="acad.dwt"; acDocManager->executeInApplicationContext(CreateDoc, (void *)pData); /*if(acDocManager->isApplicationContext()) { acDocManager->appContextNewDocument((const char *)pData); } else { acutPrintf("\nERROR To Create Doc!\n"); return; } */ AcApDocument *pDoc; pDoc=acDocManager->curDocument(); AcDbDatabase *pdb = pDoc->database(); acDocManager->lockDocument(pDoc); AcDbBlockTable *pBtbl; Acad::ErrorStatus es = pdb->getSymbolTable(pBtbl, AcDb::kForRead); acutPrintf("es=%d\n",es); if (es != Acad::eOk) { return; } AcDbBlockTableRecord *pBtblRcd; es = pBtbl->getAt(ACDB_MODEL_SPACE, pBtblRcd, AcDb::kForWrite); acutPrintf("es=%d\n",es); if (es != Acad::eOk) { pBtbl->close(); return; } pBtbl->close(); AcDbCircle *pCir1 = new AcDbCircle(AcGePoint3d(1,1,1), AcGeVector3d(0,0,1), 1.0), *pCir2 = new AcDbCircle(AcGePoint3d(4,4,4), AcGeVector3d(0,0,1), 2.0); pBtblRcd->appendAcDbEntity(pCir1); pCir1->close(); pBtblRcd->appendAcDbEntity(pCir2); pCir2->close(); pBtblRcd->close(); acDocManager->unlockDocument(pDoc); } void CreateDoc( void *pData) { AcApDocument* pDoc = acDocManager->curDocument(); if(acDocManager->isApplicationContext()) { acDocManager->appContextNewDocument((const char *)pData); } else acutPrintf("\nERROR To Create Doc!\n"); } 我这样修改了一下!现在运行不错!但问题还是那样!加入的实体不在新建的文件中!而是在旧文件中!!!! |
回复: 加入的实体不在新建的文件中!而是在旧文件中
白 菜 22:35:26
其实只有我刚才在qq上发的那点程序,你把它拷到vc6.0里就行了 |
回复: 加入的实体不在新建的文件中!而是在旧文件中
白 菜 22:39:33
我的邮箱:bai_cai_101@163.com |
回复: 加入的实体不在新建的文件中!而是在旧文件中
Thank you for contacting Suppert Center.
I have taken a look at your code and get that you forgot to set the document to current document by calling call acDocManager->setCurDocument(pDoc, AcAp::kWrite) in which you should input the document pointer which is just created. You can refer to the development documentation for the detailed information. I hope it helps you. if you have the fure question about this issue, please feel free to let me know. |
回复: 加入的实体不在新建的文件中!而是在旧文件中
在你创建完一个新的数据库的时候要调用acDocManager->setCurDocument(pDoc, AcAp::kWrite) 函数将创建的数据库设置为当前数据库。
|
所有的时间均为北京时间。 现在的时间是 02:20 AM. |