feng_ling 发表于 2004-11-16 12:53:00

还是选择集操作

有什么好的办法对一个已有选择集SS1过滤操作(过滤表:eb1=acutBuildList=(0,"CIRCLE",62,1,0))而得到另一个选择集SS2

zfbj 发表于 2004-11-17 10:25:00

我的做法是将选择集中的对象转化成ID,进而判断其是否满足条件,将满足条件的ID添加到一个AcDbObjectIdArray数组中,也就相当于得到了另一个选择集。

feng_ling 发表于 2004-11-17 10:45:00

void MySSFilter(ads_name adsname,const struct resbuf *reb)<BR>{<BR>        if(acedCommand(RTSTR,"select",RTPICKS,adsname,0)!=RTNORM)return;<BR>        if(acedSSGet("P",NULL,NULL,reb,adsname)!=RTNORM)return;<BR>}


这样做不好吗?


不过总是看acedCommand()有点不顺眼

zfbj 发表于 2004-11-17 20:38:00

你的代码没有实现你说的功能吧?

feng_ling 发表于 2004-11-18 17:15:00

少了一个空格


void MySSFilter(ads_name adsname,const struct resbuf *reb)<BR>{<BR>        if(ads_name_nil(adsname))return;<BR>        if(acedCommand(RTSTR,"select",RTPICKS,adsname,RTSTR,"",0)!=RTNORM)return;<BR>        if(acedSSGet("P",NULL,NULL,reb,adsname)!=RTNORM)return;<BR>        SSHighLight(adsname);


}
页: [1]
查看完整版本: 还是选择集操作