概要 - AutoCAD コマンドにクリック点を渡す(AutoLISP)

一部の AutoCAD のコマンド(TRIM[トリム]、EXTEND[延長]、FILLET[フィレット]など)では、オブジェクトだけでなくクリックした点も指定する必要があります。

PAUSE を使用せずに、オブジェクトおよび点データを command および command-s 関数に渡すことができますが、まず値を変数に格納する必要があります。点は、command および command-s 関数内で文字列として渡すことも、次の例に示すように、変数として渡すこともできます。

次のサンプル コードは、図形名とクリックした点を command 関数に渡すための 1 つの方法です。

(command "._circle" "5,5" "2")    ;Draws a circle
(command "._line" "3,5" "7,5" "") ;Draws a line
(setq el (entlast))               ;Gets the last entity 
                                  ;  added to the drawing
(setq pt '(5 7))                  ;Sets the trim point
(command "._trim" el "" pt "")    ;Performs the trim

これらの文が呼び出されたとき、AutoCAD のコマンド プロンプトがアイドル状態だった場合、AutoCAD は次のように動作します。

  1. (5,5)を中心とし、半径 2 の円が描かれます。
  2. (3,5)から(7,5)に線分が描かれます。
  3. データベースに最後に追加したオブジェクトの名前を格納する変数 el を作成します。
  4. 円上の点を格納する変数 pt を作成します(この点は、円のトリムされる部分を選択します)。
  5. オブジェクト el (線分)を選択し、pt によって指定された点を選択することで、TRIM[トリム]コマンドを実行します。