找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 698|回复: 6

[编程申请]:insert object

[复制链接]
发表于 2002-12-12 12:32:21 | 显示全部楼层 |阅读模式

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

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

×
1.dwg有块a,b。我想把a插入当前文档,并炸碎。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-12-12 13:21:31 | 显示全部楼层

Re: [编程申请]:insert object

最初由 binbin 发布
[B]1.dwg有块a,b。我想把a插入当前文档,并炸碎。 [/B]


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

使用道具 举报

 楼主| 发表于 2002-12-12 13:52:18 | 显示全部楼层
const AcGeMatrix3d* pxform =  new AcGeMatrix3d();
        AcDbDatabase * pSrcDb = new AcDbDatabase(false);
        if(pSrcDb->readDwgFile(sFile) != Acad::eOk)
        {
                delete pSrcDb;
                return FALSE;
        }
        acdbCurDwg()->insert(*pxform,pSrcDb);
        delete pSrcDb;

这样就把整个图形合并了。
在pSrcDb中用getBlockReferenceIds 得到的ids,要拷贝到当前DB中,才可以addtomodelspace
。问题就在如何拷贝到当前文档?用deepClone?还是wblock?
AcDbDatabase* pSrcDb->wblock( . .. );这不行吧?
deepClone中用到idMap,好像也不行?闷?
当然我不希望用外部参考的方法做.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-12-12 21:20:15 | 显示全部楼层

顺便加一个问题

怎样用程序来确定文档合并后的插入点.我作了个wblock的块,但无法插入到我想要的地方.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-12-12 23:54:46 | 显示全部楼层

Re: [编程申请]:insert object

最初由 binbin 发布
[B]1.dwg有块a,b。我想把a插入当前文档,并炸碎。 [/B]


炸碎不难,

插入指定的块去试试

  1. Acad::ErrorStatus AcDbDatabase::insert(
  2.     AcDbObjectId& blockId,
  3.     const char* pSourceBlockName,
  4.     const char* pDestinationBlockName,
  5.     AcDbDatabase* pDb,
  6.     bool preserveSourceDatabase = true);
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-12-13 01:58:58 | 显示全部楼层

Re: 顺便加一个问题

最初由 zsbzsb 发布
[B]怎样用程序来确定文档合并后的插入点.我作了个wblock的块,但无法插入到我想要的地方. [/B]


AcDbBlockTableRecord 是“块定义”,你要插入指定的位置,那么你需要实例一个INSERT对象(AcDbBlockReference)引用“块定义”,设置好插入点,添加到数据库中后,你才能看到。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-12-13 10:28:25 | 显示全部楼层
Acad::ErrorStatus

insert(

AcDbObjectId& blockId,

const char* pSourceBlockName,

const char* pDestinationBlockName,

AcDbDatabase* pDb,

bool preserveSourceDatabase = true);

blockId Description to come
pSourceBlockName Description to come
pDestinationBlockName Description to come
pDb Description to come
preserveSourceDatabase Description to come

Description to come


看到这样的帮助我晕,再晕

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-20 16:51 , Processed in 0.193705 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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