明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2165|回复: 3

求助:arx程序中自定义命令如何实现(对象先选中时执行),而未选中时提示选择对象

[复制链接]
发表于 2003-2-21 21:22:00 | 显示全部楼层 |阅读模式
发表于 2003-2-21 23:15:00 | 显示全部楼层

这不是你所要操心的,尽管往下写

你所指的正是CAD的对象选择机制,尽管使用acedSSGet(NULL,NULL,NULL,NULL)

不过好像可以使用全局函数查看当前选择集(大概形式):
acedCurSelectionSet();
 楼主| 发表于 2003-2-22 21:56:00 | 显示全部楼层

谢谢!是对象选择机制问题

经过你提醒,arx2000中没有,arx2002找到了类似函数,还行!!
不过2000中为何找不到,以前见过别的二次软件在14及2000中也有此中
机制,若没有次函数,是否还有别的方法取得选择集,然后点取命令
执行?
发表于 2003-2-24 22:04:00 | 显示全部楼层

这个函数可以这样写,可行(不理解!)

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;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 11:57 , Processed in 0.151905 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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