AutoLISP は、組み込まれた AutoCAD コマンド、またはロードされた ObjectARX アプリケーションまたは Managed .NET アプリケーションで定義されている AutoCAD コマンドを実行することができます。
command および command-s 関数は、AutoCAD のコマンドを開始して、値を渡すことができます。command および command-s 関数には、可変長の引数リストがあります。これらの関数の最初の引数は、実行するコマンドでなければなりません。その他のすべての引数は、そのコマンドの一連のプロンプトに応じたタイプの値(文字列、実数、整数、点、図形名、選択セット名など)に対応していなければなりません。角度、距離、点などのデータは、文字列として、または値そのもの(整数、実数、または点リスト)として渡すことができます。空の文字列("")は、キーボードの[Spacebar]や[Enter]を押すのと同じです。
command-s 関数は command 関数よりも速く、効率的ですが、command-s 関数内で実行されるコマンドは同じ文内で完了する必要があります。つまり、コマンドのプロンプトそれぞれに引数が提供される必要があり、この関数が完了するまでは、AutoLISP 文は一切実行できないことを意味します。command-s 関数とは異なり、command 関数内では AutoLISP 関数を使用することができ、プログラムの実行を続行するために実行中のコマンドを完了する必要はありません。
command および command-s 関数を使用して呼び出すことができるコマンドには、いくつかの制限があります。
次のコードは、command の代表的な呼び出しです。
(defun c:CircC () (command "._circle" "0,0" "3,3") (command "._thickness" 1) (command "._circle" PAUSE PAUSE) (princ) )
CircC コマンドがロードされ、AutoCAD のコマンド プロンプトで実行されると、次のように動作します。
次のコードは、command-s の代表的な呼び出しです。
(defun c:CircCS ( / p1 rad) (command-s "._circle" "0,0" "3,3") (command-s "._thickness" 1) (setq p1 (getpoint "\nEnter a center point: ")) (setq rad (getdist p1 "\nEnter a radius: ")) (command-s "._circle" p1 rad) (princ) )
CircCS コマンドは CircC と似ていますが、最後の command-s 関数の呼び出しを行う前にユーザに中心点と半径を指定するように求めるプロンプトを表示する点が異なります。command-s 関数では、PAUSE トークンの使用は避ける必要があります。