明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7073|回复: 12

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

  [复制链接]
发表于 2003-10-22 14:37:00 | 显示全部楼层 |阅读模式
hi,如何在arx中打开一个dwg文件,并在AutoCAD中显示出来,我试过readdwg,但是这个函数只是读取dwg文件的database,而没有显示出来。有谁知道这个该怎么处理的,麻烦告知小弟。
发表于 2003-10-23 12:02:00 | 显示全部楼层
以文档模式打开。dwg文件
发表于 2003-10-23 14:58:00 | 显示全部楼层
AcDbDatabase *pDb = new AcDbDatabase(Adesk::kFalse);

        pDb->readDwgFile("test1.dwg");
 楼主| 发表于 2003-10-23 16:15:00 | 显示全部楼层
to: hantaojian
您好,谢谢你的回复,您的方法我试过,它只是把dwg文件的database数据读入到我们定义的变量中,我想要的是还要把此dwg文件成为autocad当前的文档。类似与autocad命令中的open。
to: apple06
您好,能说的具体的吗?我是个新手。谢谢!
发表于 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还有其它方法)
 楼主| 发表于 2003-10-27 10:30:00 | 显示全部楼层
谢谢muzi的回复。
发表于 2003-10-28 17:41:00 | 显示全部楼层
这样插入后,怎么关它呀?
发表于 2003-10-28 17:50:00 | 显示全部楼层
又如果保存所作的改动?就是直接SAVE命令,好像DB类没有函数完成这个操作哦。
发表于 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);//这试了一下,执行到这里没有看到那张图呀!
 楼主| 发表于 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;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 20:29 , Processed in 0.201581 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表