找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1207|回复: 5

[ARX程序]:制作图块的问题???

[复制链接]
发表于 2005-3-27 15:30:15 | 显示全部楼层 |阅读模式

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

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

×
AcDbDatabase* pTempDb=new AcDbDatabase(Adesk::kFalse); //设置临时数据库
        //将当前画图数据库中的全部实体作为块写入pTempDb中
        acdbHostApplicationServices()->workingDatabase()->wblock(pTempDb);
        //将临时数据库中的全部实体作为块在extDb中定义,加入到图库文件中
        AcDbDatabase* pExtDb=new AcDbDatabase(Adesk::kFalse);
        pExtDb->readDwgFile("c:\\test.dwg",_SH_DENYWR,false);
        pExtDb->insert(m_objectId,"block_name",pTempDb);
        pExtDb->saveAs("c:test.dwg");
        delete pExtDb;
        delete pTempDb;
执行完这段程序后,为什么打开test.dwg图后,cad会崩溃????
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-3-27 19:17:06 | 显示全部楼层
两个外部图形的实体交换,最好以当前数据库作媒介。
你为什么不直接把块写道test.dwg呢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-28 16:48:02 | 显示全部楼层
如果直接wblock到test.dwg中去的话,那test.dwg中的其他图块岂不是全部没有了吗?
还有没有其他的办法啊
这个例子是照着书上来的,居然有问题
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-6 10:21:11 | 显示全部楼层
最好的办法是用wblockCloneObjects。
pDbDest->wblockCloneObjects(arOriId, idNewBlock, idMap,AcDb::kDrcReplace)) ;
arOriId是要被复制的实体Id数组,idNewBlock是目的数据库中目标块的Id,可以是已有的,也可以是自己新作的。idMap是返回值,保存着所有实体复制前、复制后的acdbobjectId、及对应关系。AcDb::kDrcReplace表示如果目标数据库的相应块已存在,是否替换,这得看自己的实际需求
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-8-16 11:51:27 | 显示全部楼层
最初由 puppymary 发布
[B]最好的办法是用wblockCloneObjects。
pDbDest->wblockCloneObjects(arOriId, idNewBlock, idMap,AcDb::kDrcReplace)) ;
arOriId是要被复制的实体Id数组,idNewBlock是目的数据库中目标块的Id,可以是已有的,也可?... [/B]


如何新建 idNewBlock ?

能不能以新的块名 新建这个idNewBlock ?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-8-17 16:58:51 | 显示全部楼层
我也非常关注这个问题,我所遇到的是用于保存所有块的图形,根本就没有被添加任何对象进去,因为Inset()函数的返回值为eNullObjectId,即errorstatus=16,或者提示块自引用什么的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 08:01 , Processed in 0.231035 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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