作者sjgau (sjgau)
看板Cad_Cae
标题Re: [心得] AutoLISP 的 Hello, world!\n
时间Sun Nov 20 16:22:22 2005
(defun c:xxx( / )
(command "circle" "0,0" "1.0")
)
以上,为定义一个 user-defined 指令
下达
xxx
AutoCAD 会帮你 自动画一个圆
圆心= 0,0
半径= 1.0
(defun yyy(n1 n2 / n3)
(setq n3 (+ n1 n2))
(eval n3)
)
以上,会帮你定义一个 user-defined function
下达
(yyy 2 3)
会得到 5
(setq n4 (yyy 6 7 ))
会设定 n4= 13
※ 引述《HiEArO (xsd)》之铭言:
: 谢谢你仔细的回答 我是第一次执行lisp程式
: 不晓得执行的流程
: ※ 引述《sjgau (sjgau)》之铭言:
: : 以下,应该是 正确的
: : (defun f2(n / )
: : ;
: : )
: : 我把 函数名称改成 f2
: : 执行的方法是
: : (load "tmp.lsp")
: : (f2 10)
: 这两行可以说是关键所在
: 我之前是有load进去,但是不晓得怎麽跑
: 经过第二行和以下执行结果的示范
: 我了解了 非常感谢回答 你的解答真的很详细
: 若可以的话 可以教教我DEFINE的用法吗?谢谢
: : 还有,第0项 和 第1项的答案都是 1
: : 还有,为了担心 n < 0
: : 所以,
: : if (n <= 0) return 1;
: : 令: (f2 0)
: : 1
: : 指令: (f2 1)
: : 1
: : 指令: (f2 2)
: : 2
: : 指令: (f2 3)
: : 3
: : 指令: (f2 5)
: : 8
: : 指令: (f2 10)
: : 89
: : 指令: (f2 20)
: : 10946
: : 指令: (f2 25)
: : 121393
: : 指令: (f2 30)
: : 1346269
: : (defun f2 (n / )
: : (cond ((<= n 0) 1)
: : ((= n 1) 1)
: : (t
: : (+ (f2 (- n 1))
: : (f2 (- n 2))
: : )
: : )
: : )
: : )
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.243.237.65