概要 - 式(AutoLISP)

式は、AutoLISP を操作するときに使用する基本的な構造です。

AutoLISP の式は、次の形式です。

(function arguments)

各式:

たとえば、次のコード例は、3 つの関数を呼び出しています。

(fun1 (fun2 arguments)(fun3 arguments))

最初の関数 fun1 は、この例では式である 2 つの引数を持ちます。この式によって返される値は、fun1 によって使用されます。その他の関数、fun2 fun3 は、それぞれ 1 つの引数を持ちます。AutoLISP では、最初に最も内側の式が評価され、その後外側に向かって評価されて行きます。この例では、fun2fun3 を含む式が fun1 の前に評価されます。

次の例は、 * (乗算)関数の使用方法を示しています。この関数は、引数として 1 つ以上の数値を受け付けます。

(* 2 27)
54

このコード例は他の式で囲まれていないため、結果はコードを入力したウィンドウに返されます。

他の式の中にネストされている式では、結果は囲んでいる式に返されます。

次の例では、 + (加算)関数の結果を * (乗算)関数の 1 つの引数として使用します。

(* 2 (+ 5 10))
30

前の例では、(+ 5 10) は 5 の値を返します。最も内側の式が評価された後、AutoLISP インタープリタは次のようになります。

(* 2 15)
30

AutoLISP の式を入力する

AutoLISP の式は、AutoCAD のコマンド プロンプトに直接入力する、AutoLISP ソース(LSP)ファイルとともにロードする、または Visual LISP エディタで入力する(Windows のみ)ことができます。開き(左)括弧を入力することは、AutoCAD に以降の文字を評価のために AutoLISP インタープリタに渡すようにと指示することになります。

右括弧(閉じ括弧)の数を正しく入力しないと、次のプロンプトが表示されます。

(_>

このプロンプトの左括弧の数が、閉じられていないままになっている左括弧のレベル数を示しています。このプロンプトが表示されたら、評価される式に対して必要な数の右括弧を入力する必要があります。

(* 2 (+ 5 10
((_> ) )
30

よくある間違いは、テキスト文字列を閉じるためのクォーテーション(")を入れ忘れることです。この場合、右括弧は文字列の一部として解釈されてしまい、その式は閉じられないままになります。このような状態を修正するには、[Shift]+[Esc]を押して関数をキャンセルし、正しく入力し直してください。