风树 发表于 2013-10-3 18:03:38

请教:lsp获得的选择集,arx能调用吗?求思路

求思路。。
求思路。。
求思路。。
求思路。。

Gu_xl 发表于 2013-10-3 22:26:25

可以的!用向导定义一个外部函数,和Lisp通讯即可!
        static int ads_test(void)
        {
                //----- Remove the following line if you do not expect any argument for this ADS function
                struct resbuf *pArgs =acedGetArgs () ;

                // TODO: add your code here
                if (pArgs == NULL)
                {
                        acdbFail(_T("参数太少"));
                                return RTERROR;
                }
                if (pArgs->restype != RTPICKS)
                {
                        acdbFail(_T("参数错误"));
                        return RTERROR;
                }
                //ss 为Lisp传递进来的选择集
                ads_name ss;
                ads_name_set(pArgs->resval.rlname,ss);
                //添加对ss进行处理的后续代码
         ....

                // TODO: Replace the following line by your returned value if any
                acedRetVoid () ;

                return (RSRSLT) ;
        }
在Lisp中用如下方式调用:
(test (ssget))

风树 发表于 2013-10-3 22:31:21

Gu_xl 发表于 2013-10-3 22:26 static/image/common/back.gif
可以的!用向导定义一个外部函数,和Lisp通讯即可!

在Lisp中用如下方式调用:


谢谢哦,我看看 ,但不懂lsp,研究一下

wwwliuyu 发表于 2013-10-6 20:38:46

Gu_xl 发表于 2013-10-3 22:26 static/image/common/back.gif
可以的!用向导定义一个外部函数,和Lisp通讯即可!

在Lisp中用如下方式调用:


你这方法不是ARX调用lisp,而是lisp调用arx定义的外部函数,只是传递个选择集而已,ARX应该使用acedInvoke函数调用LISP或使用acedGetSym函数来获取LISP变量的值。

风树 发表于 2013-10-8 20:02:30

wwwliuyu 发表于 2013-10-6 20:38 static/image/common/back.gif
你这方法不是ARX调用lisp,而是lisp调用arx定义的外部函数,只是传递个选择集而已,ARX应该使用acedInvok ...

谢谢提供思路哦
页: [1]
查看完整版本: 请教:lsp获得的选择集,arx能调用吗?求思路