找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 940|回复: 5

[研讨] ads_name怎样才能嵌入容器中

[复制链接]

已领礼包: 194个

财富等级: 日进斗金

发表于 2016-10-30 10:28:46 | 显示全部楼层 |阅读模式

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

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

×
象这样
ads_name ssname;
vector <ads_name> vecssname;
while(RTNORM==acedSSGet(ACRX_T('':S''),NULL,NULL,NULL,ssname))
{
vecssname.p**_back(ssname);//执行这一句就不行,意思是C++不允许
}
我想对选择集建一个列表,执行完选择然后再对每个选择集执行不同的代码(选择的次数不是常数);不是选择一次对选择集操作一次,有时等候时间太长了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 13个

财富等级: 恭喜发财

发表于 2016-10-30 12:26:44 | 显示全部楼层
ads_name 不是对象,肯定加入不了容器,
你转成AcDbObjectId 就行了

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

使用道具 举报

已领礼包: 194个

财富等级: 日进斗金

 楼主| 发表于 2016-10-30 14:40:26 | 显示全部楼层

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-10-30 16:13:36 | 显示全部楼层
本帖最后由 newer 于 2016-10-30 16:15 编辑

提问的时候,把所有的信息都贴出来,但就你主楼的信息,LOVEARX回答的没错,
如果回复完你这个信息,你又说出一个条件,那不利于问题的讨论。

回到问题,
1、vecssname.p**_back(ssname); 这个编译时候的错误提示贴上来,你别翻译。


2、看你代码,你循环里面构建选择集,这不是很好的办法,因为AUTOCAD选择集数量有限制,超过CAD就创建不了选择集了。
推荐你循环一次,把选择集内的实体添加到AcDbObjectIdArray里面,AcDbObjectIdArray再添加到vector. 这样就保留了选择集实体的数据。
然后循环里面再释放选择集用 ads_ssfree (ssname). 这样确保选择集创建不超过上限。

ads_name ssname;
vector <AcDbObjectIdArray> vecssname;
while(RTNORM==acedSSGet(ACRX_T('':S''),NULL,NULL,NULL,ssname))
{
        long len;
        AcDbObjectIdArray mIds;
        acedSSLength(ssname,&len);
        for (long i=0;i<len;i++)
        {
                ads_name ent;
                acedSSName(ssname,i,ent);
                acdbGetObjectId(id,ent);
                mIds.append(id);
                vecssname.push_back(mIds);
        }
        acedSSFree(ssname);
}

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

使用道具 举报

已领礼包: 194个

财富等级: 日进斗金

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

使用道具 举报

发表于 2021-4-13 10:03:07 | 显示全部楼层
zdqwy19 发表于 2016-10-31 11:36
解决了,objectarx有自带的函数,把选择集绑组

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 20:12 , Processed in 0.405898 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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