longworm 发表于 2003-10-22 14:37:00

如何在arx中打开一个dwg文件,使此文件成为autocad当前文档

hi,如何在arx中打开一个dwg文件,并在autocad中显示出来,我试过readdwg,但是这个函数只是读取dwg文件的database,而没有显示出来。有谁知道这个该怎么处理的,麻烦告知小弟。

apple06 发表于 2003-10-23 12:02:00

以文档模式打开。dwg文件

hantaojian 发表于 2003-10-23 14:58:00

AcDbDatabase *pDb = new AcDbDatabase(Adesk::kFalse);

      pDb->readDwgFile("test1.dwg");

longworm 发表于 2003-10-23 16:15:00

to: hantaojian
您好,谢谢你的回复,您的方法我试过,它只是把dwg文件的database数据读入到我们定义的变量中,我想要的是还要把此dwg文件成为autocad当前的文档。类似与autocad命令中的open。
to: apple06
您好,能说的具体的吗?我是个新手。谢谢!

muzi 发表于 2003-10-24 09:01:00

......
        AcDbDatabase* pCurDb;
        Acad::ErrorStatus es;
        AcDbDatabase* pDb = new AcDbDatabase(Adesk::kFalse);
        es=pDb->readDwgFile(fullfileName);
        if(es!=Acad::eOk)
        {
                acutPrintf("\n The %c file was not found. ",fullfileName);
                delete pDb;
                return es;
        }
        if(pCurDb->insert(AcGeMatrix3d::kIdentity,pDb) != Acad::eOk)
        {
                delete pCurDb;
        }

        delete pDb;
        return es;
......

// 这是一个例子(insert还有其它方法)

longworm 发表于 2003-10-27 10:30:00

谢谢muzi的回复。

funlxming 发表于 2003-10-28 17:41:00

这样插入后,怎么关它呀?

funlxming 发表于 2003-10-28 17:50:00

又如果保存所作的改动?就是直接SAVE命令,好像DB类没有函数完成这个操作哦。

funlxming 发表于 2003-10-28 18:19:00

AcDbDatabase *db=new AcDbDatabase(Adesk::kFalse);
        Acad::ErrorStatus es;
        es=db->readDwgFile(file);
        AcDbDatabase* pCurDb=new AcDbDatabase;
        if(pCurDb->insert(AcGeMatrix3d::kIdentity,db) != Acad::eOk)
        {
                delete pCurDb;
        }
                int status=ads_getstring(1,"/n请输入路径:", path);//这试了一下,执行到这里没有看到那张图呀!

longworm 发表于 2003-10-31 11:45:00

我试了下面的方法,可以把要打开的dwg文档打开,但是autocad把它作为一个新的图档打开了(文件名变成Drawing1.dwg),而不是原来的图档。如:我如果原来的图名为a1.dwg,这样打开后,就与原来的a1.dwg没有关系了,这样的话图上有什么更改的,也反映不到原来那张图上了。我的想法是能不能象autocad的open命令一样打开一张以及存在的图,而不是生成一个新的图档。
AcDbDatabase* pCurDb;
Acad::ErrorStatus es;
AcDbDatabase* pDb = new AcDbDatabase(Adesk::kFalse);
es=pDb->readDwgFile(fullfileName);
if(es!=Acad::eOk)
{
acutPrintf("\n The %c file was not found. ",fullfileName);
delete pDb;
return es;
}
if(pCurDb->insert(AcGeMatrix3d::kIdentity,pDb) != Acad::eOk)
{
delete pCurDb;
}

delete pDb;
return es;
页: [1] 2
查看完整版本: 如何在arx中打开一个dwg文件,使此文件成为autocad当前文档