找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 481|回复: 8

[求助]:怎么用ARX制作块?

[复制链接]
发表于 2003-12-1 17:16:08 | 显示全部楼层 |阅读模式

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

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

×
高手快来救命呀!
本人刚学习ARX不久,先急需用ARX将图形文件中选择的图形元素制作一个带属性的块,请各位高手赐教!感激不尽!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-12-1 20:07:11 | 显示全部楼层
过程:
AcDbBlockTableRecord *pBlockTableRec = new AcDbBlockTableRecord();
     pBlockTableRec->setName("块名");

     AcDbBlockTable *pBlockTable = NULL;
     acdbHostApplicationServices()->workingDatabase()
        ->getSymbolTable(pBlockTable, AcDb::kForWrite);
     AcDbObjectId blockTableRecordId;
     pBlockTable->add(blockTableRecordId, pBlockTableRec);
     pBlockTable->close();
    ........   创建新实体...............
   pBlockTableRec->appendAcDbEntity(实体ID, 实体类型);
  块属性
pBlockTableRec->close();
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-12-2 17:00:28 | 显示全部楼层

多谢!多谢!

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2003-12-3 15:07:53 | 显示全部楼层
1)那如果我选了几个实体,放在选择集SS中,要多次用acdbGetObjcetId吗?
2)请问选择集、组、词典、组词典、图形数据库等到底是什么东东?
3)知道了所选实体的name,objectId,怎么得到pBlockTableRec->appendAcDbEntity(实体ID, 实体类型);中的“实体类型”呢???
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-3 20:59:18 | 显示全部楼层
0.哈哈,,你的问题越来越多了
1.你要是用选择集得到实体ID的话,就要多次用!
2.这个ARX书上就有解释!
3.这是AcDbBlockTableRecord::appendAcDbEntity帮助:
Acad::ErrorStatus
appendAcDbEntity(
AcDbObjectId& pOutputId,
AcDbEntity* pEntity);
pOutputId Returns the object ID of the appended entity
pEntity Input pointer to entity to append (must not be NULL)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-12-4 08:43:17 | 显示全部楼层
呵呵,没办法呀,太多地方不明白了,搞的我现在要信心全无了:(,你一定要帮我一把呀,多谢!多谢!万分感谢!
你说的那个appendAcDbEntity的帮助我也看过了,可就是不知道它那个pEntity是怎么得来的?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-4 23:15:59 | 显示全部楼层
我知道没人帮很惨!
AcDbObjectId entId;
ads_name ename,选择集;
acedSSName(选择集,0,实体名);
acdbGetObjectId(entId,ename);
AcDbEntity *pEnt;
acdbOpenAcDbEntity(pEnt,entId,AcDb::kForRead);
......appendAcDbEntity(...pEnt...).........
pEnt->close();//用完要关闭
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-12-5 08:51:14 | 显示全部楼层

理解万岁!

你说的太对了,没人帮真的很惨!不过幸好我很幸运,遇到了你,真是好人呀,帮了我的大忙!^_^

再问一个问题:我想用ARX实现从一个dwg中选择一些元素,然后将选中的元素插入另一个dwg中的功能,我能不能这样做:先将选择的元素制作成块保存到一个文件中;然后打开另一个文件,用插入命令(自己做的程序)将其插入呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 10:58 , Processed in 0.217661 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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