明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1207|回复: 4

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

[复制链接]
发表于 2013-10-3 18:03 | 显示全部楼层 |阅读模式
求思路。。
求思路。。
求思路。。
求思路。。
发表于 2013-10-3 22:26 | 显示全部楼层
可以的!用向导定义一个外部函数,和Lisp通讯即可!
  1.         static int ads_test(void)
  2.         {
  3.                 //----- Remove the following line if you do not expect any argument for this ADS function
  4.                 struct resbuf *pArgs =acedGetArgs () ;

  5.                 // TODO: add your code here
  6.                 if (pArgs == NULL)
  7.                 {
  8.                         acdbFail(_T("参数太少"));
  9.                                 return RTERROR;
  10.                 }
  11.                 if (pArgs->restype != RTPICKS)
  12.                 {
  13.                         acdbFail(_T("参数错误"));
  14.                         return RTERROR;
  15.                 }
  16.                 //ss 为Lisp传递进来的选择集
  17.                 ads_name ss;
  18.                 ads_name_set(pArgs->resval.rlname,ss);
  19.                 //添加对ss进行处理的后续代码
  20.          ....

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

  23.                 return (RSRSLT) ;
  24.         }

在Lisp中用如下方式调用:
(test (ssget))
 楼主| 发表于 2013-10-3 22:31 | 显示全部楼层
Gu_xl 发表于 2013-10-3 22:26
可以的!用向导定义一个外部函数,和Lisp通讯即可!

在Lisp中用如下方式调用:

谢谢哦,我看看 ,但不懂lsp,研究一下
发表于 2013-10-6 20:38 | 显示全部楼层
Gu_xl 发表于 2013-10-3 22:26
可以的!用向导定义一个外部函数,和Lisp通讯即可!

在Lisp中用如下方式调用:

你这方法不是ARX调用lisp,而是lisp调用arx定义的外部函数,只是传递个选择集而已,ARX应该使用acedInvoke函数调用LISP或使用acedGetSym函数来获取LISP变量的值。
 楼主| 发表于 2013-10-8 20:02 | 显示全部楼层
wwwliuyu 发表于 2013-10-6 20:38
你这方法不是ARX调用lisp,而是lisp调用arx定义的外部函数,只是传递个选择集而已,ARX应该使用acedInvok ...

谢谢提供思路哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-1 18:46 , Processed in 0.146886 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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