yulb 发表于 2002-12-18 18:11:00

[求助]再求助,求斑竹帮忙!!!

[求助]向Autolisp返回变量值的问题?
在ARX中有如下的句子:   
int ff=10;
acedRetInt(ff);
执行以后,在AutoCAD命令行下输入!ff   ,返回nil,没有值是怎么回事啊?

goldenshin 发表于 2002-12-19 10:30:00

!!

->
在ARX中
1. using "defun" to create a command.(eg,test1)
2.
int test1(double a1,char a2[])
{
.....
as you say!
}
3. In lisp (or AutoCAD)
(setq ff (test1 3.122 "abcdeff"))
! ff
===================================
This means, you send datas (A double 3.122 and a string "abcdeff") from lisp to arx and get a returned data which saved in ff

yulb 发表于 2002-12-19 18:25:00

多谢斑竹,我想继续讨论一下这个问题。

第一个问题是,新的ARX是否提倡使用“addcommand”来创建命令,而这样创建的命令不能成为AutoLisp的函数,只能使用(command "命令")的形式,那他与用“aceddefun”创建的命令有何优点哪。
第二个问题是,在ARX中的变量值怎样轻易的用AutoLisp获取。比如,原来我提出的ARX中有语句“ int ff=10; acedRetInt(ff); ”,按说象在lisp中一样,运行了这样的语句后,不论何时,不一定再调用定义的命令(或函数)都应当获得此变量值,问题看上去应当容易,但是似乎没有简单的过程。请教斑竹!!!

goldenshin 发表于 2002-12-20 09:01:00

Re

多谢斑竹,我想继续讨论一下这个问题。
第一个问题是,新的ARX是否提倡使用“addcommand”来创建命令,而这样创建的命令不能成为AutoLisp的函数,只能使用(command "命令")的形式,那他与用“aceddefun”创建的命令有何优点哪。
=======
如果要与AutoLisp交换数据,必须用ads_defun来定义.

第二个问题是,在ARX中的变量值怎样轻易的用AutoLisp获取。比如,原来我提出的ARX中有语句“ int ff=10; acedRetInt(ff); ”,按说象在lisp中一样,运行了这样的语句后,不论何时,不一定再调用定义的命令(或函数)都应当获得此变量值,问题看上去应当容易,但是似乎没有简单的过程。请教斑竹!!!
在ARX中必须显式地用acedRet命令来返回数据,同时在Lisp中要指定变量来接收.

yulb 发表于 2002-12-24 18:33:00

多谢斑竹!!!

页: [1]
查看完整版本: [求助]再求助,求斑竹帮忙!!!