求助:arx程序中自定义命令如何实现(对象先选中时执行),而未选中时提示选择对象
这不是你所要操心的,尽管往下写
你所指的正是CAD的对象选择机制,尽管使用acedSSGet(NULL,NULL,NULL,NULL)不过好像可以使用全局函数查看当前选择集(大概形式):
acedCurSelectionSet();
谢谢!是对象选择机制问题
经过你提醒,arx2000中没有,arx2002找到了类似函数,还行!!不过2000中为何找不到,以前见过别的二次软件在14及2000中也有此中
机制,若没有次函数,是否还有别的方法取得选择集,然后点取命令
执行?
这个函数可以这样写,可行(不理解!)
int asdkGetCurrentSelectionSet(AcDbObjectIdArray &sset){
ads_name ss;
if ((int ret=acedSSGet(NULL,NULL,NULL,NULL,ss))!=RTNORM)
return ret;
long l;
if (acedSSLength(ss,&l)!=RTNORM)
return;
ads_name ename;
sset.LogicalLength = 0;
AcDbObjectId id;
for (long i=0;i<l;i++)
{
if (acedSSName(ss,i,ename)!=RTNORM)
return;
if (acdbGetObjectId(id,ename)!=Acad::eOk)
return;
sset.append(id);
}
acedSSFree(ss);
return ret;
}
页:
[1]