创建文件并设为当前文档的问题
我有一个外部文件的数据要导入到DWG中。导入前我先用acDocManager->newDocument()建立了一个新文件,
本意是把数据导入到这个新文件中。但其实当前文档并没有切换过来,导入的数据写在了原来的DWG中。
请问:我应该怎样创建一个文件的同时获得它的AcDbDatabase的指针,或把此文档立刻设为当前文档。
或者new AcDbDatabase操作进而用它生成一个当前文档???
如果对新图没有交互操作或非模式对话框等,不存在这个问题
//如下AcDbDatabase *pDb = new AcDbDatabase();
AcDbBlockTable *pBtbl;
pDb->getSymbolTable(pBtbl, AcDb::kForRead);
AcDbBlockTableRecord *pBtblRcd;
pBtbl->getAt(ACDB_MODEL_SPACE, pBtblRcd,
AcDb::kForWrite);
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();
pDb->saveAs("c:/test1.dwg");
delete pDb;
re
我想在一个命令中进行如下操作:1 创建一个新文件(此时系统会自动把一些默认得配置以及一些Dictionary初始化.
2 紧接着,把某外部文件的数据读入到此DWG中,但一般此时对DWG操作是原来的DWG.而不是新建立的DWG.
可能是这么一回事......
ARX的命令只能在一个文档空间执行,如果一个命令中生成了一个新的文档,如果不指定AcDbDataBase,则后续处理依旧在旧文档中处理.不知是不是这个原因.
用AcDbDatabase *pDb=new AcDbDatabase()建的数据库不能显示图形
按这种方法是不能显示图形的,我是不行了,能告诉我吗?你如何解决的???
AcApDocumentIterator *Iterator = p->newAcApDocumentIterator();<BR> for(;!Iterator->done();Iterator->step())<BR> pDoc = Iterator->document();<BR> delete Iterator;<BR> p->setCurDocument(pDoc,AcAp::kWrite,true);<BR>这样子就可以把最后一个,也即新加的文档作为当前文档了
页:
[1]