Lesson 4|commandでCADの操作を呼び出す
要点
commandは、CADコマンドとその入力を順番に送る関数です。空文字の""はEnterに相当します。
こんな人向け
プログラミング未経験で、AutoLISPをひとつずつ学びたい方。
基本を理解する
手で操作するときの順番を先に書き出します。コマンド名の後に求められる入力を並べるので、途中のEnterが抜けると処理が次の指示を待って止まる場合があります。ここでは表示倍率だけを変更するZOOMの例を使い、図形の座標やサイズは変えません。
操作手順
- 練習図面にいくつか図形を描きます。
- 下のコードを.lspファイルへ保存しAPPLOADで読み込みます。
- CR_ZEと入力します。
- 図形全体が見える倍率になり、図形の実寸が変わらないことを確認します。
実際の例
納品前の確認時に図形全体を見渡す処理を1つのコマンドにできます。将来の処理に組み込むときも、まず単独で期待する表示になるか確認します。
実務で試す:手動の入力を一つずつ照合する
commandに渡す文字列は、CADが尋ねる順番に合わせます。入力を推測で追加しないための練習です。
- 対象コマンドを手動で実行し、要求される入力を順番に記録します。
- 掲載例と入力の対応を一つずつ確認します。
- 練習図面で実行し、終了後にコマンドの入力待ちが残らないか見ます。
結果の確認ポイント
想定と違う入力待ちになった場合はEscで終了し、直前の要求を確認します。CADの版やコマンド設定で入力の流れが違う場合があります。
学習用の例です。まずコピーした図面で試し、現在の設定を控えてください。CAD実機での検証は未実施です。
コード
(defun c:CR_ZE ()
(command "_.ZOOM" "_Extents")
(princ)
)この1行は何をしている?
- 1行目:CR_ZEコマンドを定義します。
- 2行目:ZOOMのExtents(オブジェクト範囲)を実行します。_は英語のコマンド・オプション名を利用する指定、.は標準コマンドを呼ぶ指定です。
- 3行目:余分な戻り値を表示せず終了します。
- 4行目:定義を閉じます。ZOOMのこの操作では入力が完結するため、終了用の空文字を追加していません。
よくある失敗
普段の省略名をコードに書くと、そのPCのエイリアス設定に依存します。正式なコマンド名を使います。
それでも解決しない場合
コマンド欄の入力待ちを確認します。実行中の別コマンドがあると期待した順番で処理されないため、Escで終了して試します。
公式資料・確認範囲
資料確認:2026年10月4日。操作は主に AutoCAD / AutoCAD LT 2024以降(Windows、LISP対応環境) を想定。資料の対象年はリンクに記載しています。画面や選択肢はバージョンで異なる場合があります。 掲載コードのCAD実機テストは未実施です。