以前讲的内容都是AutoLisp自带的函数,但是如果要实现一些复杂的功能,就要自己创建一个函数,也就是所谓的自定义函数。
一、自定义函数的基本结构
在AutoLISP中,自定义函数的基本结构如下:
(defun 函数名 (参数列表)
; 函数体(一系列LISP表达式)
结果 ; 函数返回的结果
)
- 函数名:自定义函数的名称,必须唯一且以字母开头,可以包含字母、数字和下划线。
- 参数列表:函数接受的参数列表,参数之间用空格分隔。如果函数不接受任何参数,则参数列表为空。
- 函数体:一系列LISP表达式,这些表达式定义了函数的行为。函数体中的最后一个表达式的结果将作为函数的返回值。
举个例子:
(defun ShuChu()
(princ "\nHello, AutoCAD!") ; 打印一条消息到命令行
)
上述代码的意思就是创建了一个叫做”ShuChu”的函数,它的功能是在CAD的命令行输出“Hello, AutoCAD!”(\n表示的是按下一个回车键,其实就是换行的功能),但是这个不会以命令的形式展现这个功能,它的存在只是为了实现更复杂的功能。
二、定义AutoCAD命令
再来看下面这个例子,它和上述不同的地方就是在ShuChu前面加了一个”C:”
(defun c:ShuChu()
(princ "\nHello, AutoCAD!") ; 打印一条消息到命令行
)
把上述代码复制到Lisp的编辑器中再加载,然后在命令行输入ShuChu,就能直接输出“Hello, AutoCAD!”了。