概要 - 関数を定義する(AutoLISP)

独自の関数を定義することができます。

一度定義すると、独自の関数も標準の関数を使用するのと同じように AutoCAD のコマンド プロンプトや、Visual LISP のコンソール プロンプト、または AutoLISP の他の式で使用できます。

注: Visual LISP は Windows でのみ使用可能です。

コマンドは関数の特殊な形式にすぎないため、ユーザ独自のコマンドを作成することもできます。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 を出力しないで抑止終了していることに注目してください。

引数を指定しない関数は、役に立たないように思えるかもしれません。しかし、この形式の関数を使用すると、特定のシステム変数や条件の状態を調べて、その結果を示す値を返すことができます。