在网页http://www.newmaker.com/disp_art/0/15179.html上看到这么一段代码:(defun Psin(d) ;其中d是函数的步长 (setq i 0) (setq e 360) (setq x i) (setq y (cal "2*x-100*sin(x)")) (setq p1 (list x y)) (while (< i e) (setq i (+ i d))
在网页http://www.newmaker.com/disp_art/0/15179.html上看到这么一段代码:
(defun Psin(d) ;其中d是函数的步长
(setq i 0)
(setq e 360)
(setq x i)
(setq y (cal "2*x-100*sin(x)"))
(setq p1 (list x y))
(while (< i e)
(setq i (+ i d))
(setq x i)
(setq y (cal "2*x-100*sin(x)"))
(setq p2 (list x y))
(command "_line" p1 p2 "")
(setq p1 p2)
)
)
加载后却无法运行PSIN(D);根据我的理解D应该是变量对吧
请问该执行什么命令才能运行?
谢谢
2楼
请大家帮助楼主解决,要是解决对了,我会好好奖励的,包括奖励60分(满分)!!!!!!!!!!!
回复
3楼
;;命令: ; 错误: no function definition: CAL
;;错误原因:没有加载CAL函数
;;添加语句(arxload "geomcal.arx")即可
;;=========================================
(defun Psin(d) ;其中d是函数的步长
(arxload "geomcal.arx")
(setq i 0)
(setq e 360)
(setq x i)
(setq y (cal "2*x-100*sin(x)"))
(setq p1 (list x y))
(while (< i e)
(setq i (+ i d))
(setq x i)
(setq y (cal "2*x-100*sin(x)"))
(setq p2 (list x y))
(command "_line" p1 p2 "")
(setq p1 p2)
)
)
加载程序后,在命令行键入“(Psin 10)”试试看吧。
回复
4楼
非常感谢。
其实我对加载宏一点也不懂,我看到(defun Psin(d) 这句时,以为命令就是输入“psin(10)”这样的格式,结果老是提示未定义,找不到。看了孤枫、xcajcj朋友的回复才知,要输入“(Psin 10)”这样的才行。晕。因为以前用过一个LISP叫ZAREA(求面积)的,没有加括号,于是我就故技重演,不料却卡了壳。看来得加强这方面的学习。
再次对以上回复的朋友xcajcj、神话唯一、孤枫表示感谢!!!
回复
5楼
其实我很想再开一个LISP程序的新帖,不知道我还没有这方面的精力,也不知道还有没有朋友来捧场哈。
回复
6楼
可惜网易上就没有专讲LISP的地方,我虽写有不少程序,但总想和大家一起捡点便易。如有的话,我定会来顶力支持的。
这个说法不对:(defun Psin(d) ;其中d是函数的步长
只要类似(defun Psin(d) 开头的,这就不是一个可自运行带命令名的程序,这类型中 Psin 是供其它程序调用的代号,
(d)中的 d ,是Psin代号程序中的全局变量(也就是这种代号程序中的可变因素,除d以外都是不可变的),说d步长,是误导,顶多只是在这个被调程序中起到类似步长的作用,但说是步长太不确切了。
回复