明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2644|回复: 10

关于如何运用arx有关函数!?急求

[复制链接]
发表于 2004-3-9 17:26:00 | 显示全部楼层 |阅读模式
在ARX里提供了一些函数与lisp交互


如acedRetInt acedRetT acedRetList


我根椐有关开发手册编写程序,定义ads_command形式的函数


调试无误


但在lisp 里加载出现参数类型错误


也就是这些数据没有返回到lisp以到无法运行!?


是否运用有误!?
发表于 2004-3-9 17:38:00 | 显示全部楼层
LISP程序中调用ARX程序时,ARX程序中的acedRetInt, acedRetT, acedRetList等之类的AcedRetXXX函数,只有在结束ARX程序时最近那个才起作用,而不会逐个返回。
 楼主| 发表于 2004-3-9 18:29:00 | 显示全部楼层
你的意思就是只可传递一个数据喽!?


那么如何实现逐一传递呢!?


谢谢你,能不能更进一步
发表于 2004-3-9 18:53:00 | 显示全部楼层
如果一定要使用acedRetXXX(),可以把要传出的数据暂时并到一条临时的LIST数据链中,最后用acedRetList()把该LIST数据链传到LISP中,再在LISP中把各数据从LIST数据链中分解出来。



还可以使用acedPutSym() 和acedGetSym()两个函数进行ARX与LISP之间直接传递数据。
发表于 2004-3-9 18:59:00 | 显示全部楼层
使用acedPutSym() 和acedGetSym()是方便,但是好象只能与LISP中的全局变量进行传递数据。如何与LISP的局部变量进行传递数据,我还没有试过。
 楼主| 发表于 2004-3-9 19:42:00 | 显示全部楼层
你所说的我试过


能不能给出一点代码
发表于 2004-3-9 22:27:00 | 显示全部楼层
我不知道你在哪部分不清楚,是不是无法从得到的LISP数据链中分离出各组数据?
 楼主| 发表于 2004-3-9 22:33:00 | 显示全部楼层
哈哈,对


如果是用acedRetList,可以用nth 获取取


但是我试过


总是失败,所以才想看看你们是怎么编的
发表于 2004-3-9 23:34:00 | 显示全部楼层
如果是普通的数据并到LIST数据链 Tx,很简单,比如整数, buf = ads_buildlist(RTLONG, mynum, 0); 建立一个主结点; 如果是LIST数据链MyList 要并入Tx,必须在数据链MyList的并入处的前、后分别插入RTLB,和 RTLE结点。 比如,现有整数 n, LIST数据链MyList, 实数r 三组数据: void Demo (int n, struct resbuf MyList, ads_real r)
{
struct resbuf head=NULL, end, tmp, p;
head = ads_buildlist(RTLONG, n, 0);
end = head; tmp = ads_buildlist(RTLB, 0);
end->rbnext = tmp;
end = tmp; for (p = MyList; p; p=p->rbnext) {
tmp = xxx_DupLIst (p); //把一个结点的数据复制过来,具体实现 (略)
end->rbnext = tmp;
end= tmp;
} tmp = ads_buildlist(RTLE, 0);
end->rbnext = tmp;
end = tmp; tmp = ads_buildlist(RTREAL, r, 0);
end->rbnext = tmp;
end = tmp; ads_retlist(head);
} 在LISP中用(nth)就可以依次取出数据。 对于整数,最好用RTLONG,而不要用RTINT,否则可能会使大的整数失真。 我上面是用ADS函数编写,与ARX完全兼容。事实上这样做更为简单些。
 楼主| 发表于 2004-3-10 13:01:00 | 显示全部楼层
谢谢楼上的哥们


关于你编的代码,我试过,那你如何在ARX定义这个函数demo


(弱弱地问。。。。。)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 00:45 , Processed in 0.190781 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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