找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 494|回复: 8

[求助]:dwg文件显示不出来怎么回事?

[复制链接]
发表于 2006-4-26 19:21:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
用pDb->readDwgFile(filename)读到dwg文件但是不知道怎么显示出来,用acdbHostApplicationServices()->workingDatabase()->insert(blockid,blockname,pDb)也没用啊好像,请高手指点迷津,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-4-26 19:33:33 | 显示全部楼层
pDb->readDwgFile(filename)
>>>实际上你只是构建了一个database,并用一个DWG文件来初始化这个database。但是如果需要把这个database加入到AutoCAD的编辑环境中,你需要构建一个AcApDocument。你试试这样做:
1.调用AcApDocManager::document()来获得一个AcApDocument指针
2.调用AcApDocManager::activateDocument 来激活新建的AcApDocument对象
这样你需要的DWG文件就应该可以被显示出来。
以上的步骤我没有测试的,不知道能不能管用:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-26 19:39:51 | 显示全部楼层
arx_sdk\samples\database\clones这个文本有readDwgFile的完整用法.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-26 21:28:00 | 显示全部楼层
十分感谢上面两位大虾,我再试试看咯~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-27 07:24:51 | 显示全部楼层
恩,正需要呢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-27 09:03:39 | 显示全部楼层
acDocManager->appContextOpenDocument(char[])可以实现,我试过了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-27 18:40:56 | 显示全部楼层
最初由 王咣生 发布
[B]arx_sdk\samples\database\clones这个文本有readDwgFile的完整用法. [/B]

samples里边的这个程序我运行过了,有问题的。问题出在这一步:
acdbHostApplicationServices()->workingDatabase()
->insert(AcGeMatrix3d::kIdentity, pTempDb),insert失败,不知道什么原因,困惑中!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-27 19:04:20 | 显示全部楼层
我以前写过这样的代码 改天给你找找看
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-30 11:07:57 | 显示全部楼层
原来写的插入图形代码(块方式插入)
CString m_PartBlockName = "test";//DWG名称
AcDbDatabase *pDb = new AcDbDatabase;
if(pDb->readDwgFile(FileName)!=Acad::eOk)               
{
  return;
}
AcDbBlockTable* pBlkTable;
if(pDb->getBlockTable(pBlkTable,AcDb::kForRead)!= Acad::eOk)
{
       return;
}
AcDbBlockTableRecord *pBlkTblRcd=NULL;
pBlkTable->getAt(ACDB_MODEL_SPACE, pBlkTblRcd , AcDb::kForRead);
pBlkTable->close();                       
const char *blockname = m_PartBlockName;
AcDbObjectId objId;                          
acdbCurDwg()->insert(objId ,blockname,pDb);
pBlkTblRcd->close();               
delete pDb;
//插入图块
acedCommand(RTSTR, "insert",RTSTR,m_PartBlockName,RTSTR,"0,0",RTSTR,"1",RTSTR,"1",RTSTR,"0",0);
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-23 10:18 , Processed in 0.219300 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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