找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 524|回复: 4

[ARX程序]:please help me!!

[复制链接]
发表于 2002-8-9 18:13:44 | 显示全部楼层 |阅读模式

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

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

×
我怎么把我在CAD界面所选择的选择集放到我的属性块定义里边!谢谢!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-8-9 18:18:34 | 显示全部楼层

Re: [ARX程序]:please help me!!

最初由 victor_hee 发布
[B]我怎么把我在CAD界面所选择的选择集放到我的属性块定义里边!谢谢!! [/B]


由于ACAD对象数据库,一个对象只能有一个所属ID,你的选择集里面的实体的所属是模型空间块表记录(AcDbBlockTaleRecord),如果你要把他们放入一个块定义中(AcDbBlockTableRecord),那么你需要科隆你的选择集的实体(原来选择集实体保留),然后把这些科隆的实体的所属BLOCKID设置为你的那个块的ID值。

你可以使用:

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

使用道具 举报

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-8-12 20:05:14 | 显示全部楼层
最初由 victor_hee 发布
[B]能不能给我一个原程序!谢谢 [/B]


下面的blockTableRecordId是你的块定义的ObjectId值


  1. [FONT=courier new]
  2.         AcDbBlockTableRecord *pBlkRec;
  3.         if (Acad::eOk!=acdbOpenObject(pBlkRec,blockTableRecordId,AcDb::kForWrite))
  4.                 return RTNORM;
  5.         AcDbEntity *pClone,*pEnt1;
  6.         Acad::ErrorStatus es;
  7.         AcDbObjectId objId;
  8.         for (int i=0;i<ids.length();i++)
  9.         {
  10.                 if (Acad::eOk==acdbOpenObject(pEnt1,ids[i],AcDb::kForRead))
  11.                 {
  12.                         pClone=AcDbEntity::cast(pEnt1->clone());
  13.                         if (pClone)
  14.                         {
  15.                                 es=pBlkRec->appendAcDbEntity(objId,pClone);
  16.                                 pClone->close();
  17.                         }
  18.                         pEnt1->close();
  19.                 }
  20.         }
  21.         pBlkRec->close();
  22. [/FONT]
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-8-12 20:06:38 | 显示全部楼层
最初由 victor_hee 发布
[B]能不能给我一个原程序!谢谢 [/B]


下面的blockTableRecordId是你的块的ObjectId值。

  1. [FONT=courier new]
  2.         AcDbBlockTableRecord *pBlkRec;
  3.         if (Acad::eOk!=acdbOpenObject(pBlkRec,blockTableRecordId,AcDb::kForWrite))
  4.                 return RTNORM;
  5.         AcDbEntity *pClone,*pEnt1;
  6.         Acad::ErrorStatus es;
  7.         AcDbObjectId objId;
  8.         for (int i=0;i<ids.length();i++)
  9.         {
  10.                 if (Acad::eOk==acdbOpenObject(pEnt1,ids[i],AcDb::kForRead))
  11.                 {
  12.                         pClone=AcDbEntity::cast(pEnt1->clone());
  13.                         if (pClone)
  14.                         {
  15.                                 es=pBlkRec->appendAcDbEntity(objId,pClone);
  16.                                 pClone->close();
  17.                         }
  18.                         pEnt1->close();
  19.                 }
  20.         }
  21.         pBlkRec->close();
  22. [/FONT]
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 19:12 , Processed in 0.373900 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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