还是选择集操作
有什么好的办法对一个已有选择集SS1过滤操作(过滤表:eb1=acutBuildList=(0,"CIRCLE",62,1,0))而得到另一个选择集SS2 我的做法是将选择集中的对象转化成ID,进而判断其是否满足条件,将满足条件的ID添加到一个AcDbObjectIdArray数组中,也就相当于得到了另一个选择集。 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()有点不顺眼 你的代码没有实现你说的功能吧? 少了一个空格
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]