独自の関数を定義することができます。
一度定義すると、独自の関数も標準の関数を使用するのと同じように AutoCAD のコマンド プロンプトや、Visual LISP のコンソール プロンプト、または AutoLISP の他の式で使用できます。
コマンドは関数の特殊な形式にすぎないため、ユーザ独自のコマンドを作成することもできます。defun 関数は、複数の式を組み合わせて 1 つの関数またはコマンドを作成します。この関数には、少なくとも 3 つの引数が必要です。
(defun symbol_name ( arguments / local_variables ) expressions )
次のコード例は、引数がなく、AutoCAD のコマンド プロンプトに「終了!」と表示するだけの簡単な関数を定義します。引数リストが空のリスト(())として定義されている点に注意してください。
(defun DONE ( ) (prompt "\nbye! ")) DONE
DONE 関数を定義すると、他の関数と同じように使用できます。たとえば、次のコードはメッセージを出力してから、AutoCAD のコマンド プロンプトに「終了!」と表示します。
(prompt "The value is 127.") (DONE) (princ) The value is 127 bye!
上の例では、引数を使用しないで princ 関数を呼び出し、最後の nil を出力しないで抑止終了していることに注目してください。
引数を指定しない関数は、役に立たないように思えるかもしれません。しかし、この形式の関数を使用すると、特定のシステム変数や条件の状態を調べて、その結果を示す値を返すことができます。