Lesson 3|自分専用コマンドを作る
要点
defunで処理に名前を付け、名前の前にc:を付けると、CADのコマンド欄から名前だけで実行できます。
こんな人向け
プログラミング未経験で、AutoLISPをひとつずつ学びたい方。
基本を理解する
定義は「この名前で呼ばれたら、この順序で処理する」という登録です。登録しただけでは中の処理は実行されません。読み込みと実行を分けて考えると、不明なコマンドの原因を探しやすくなります。標準コマンドと同じ名前は避けましょう。
操作手順
- 下のコードをテキストエディタでhello-cad.lspとして保存します。
- 練習図面でAPPLOADを開き、内容を確認したファイルを読み込みます。
- コマンド欄へHELLOCADと入力します。
- Hello, CAD!と表示されることを確認します。
実際の例
会社用の小道具なら、名前にCR_などの独自接頭辞を付けると既存の機能と区別しやすくなります。実行する図面ごとに読み込み済みか確認します。
実務で試す:他のコマンドと区別できる名前にする
部署や個人で使う簡単なコマンドを作るとき、名前の衝突を避ける工夫をします。
- 自分の識別用の短い接頭辞を付けたコマンド名を決めます。
- defunのc:に続く名前を変更して保存します。
- 再読み込みして、新しい名前で呼び出します。
結果の確認ポイント
保存だけでは読み込まれた定義は更新されません。変更後のファイルを読み直したか、古いファイルを選んでいないかも確認します。
学習用の例です。まずコピーした図面で試し、現在の設定を控えてください。CAD実機での検証は未実施です。
コード
(defun c:HELLOCAD ()
(princ "\nHello, CAD!")
(princ)
)この1行は何をしている?
- 1行目:defunでHELLOCADというコマンドを定義します。c:がコマンドとして使う目印です。()は引数やローカル変数がないことを示します。
- 2行目:princで改行してからHello, CAD!を表示します。
- 3行目:余分な戻り値の表示を抑えます。
- 4行目:1行目から始まったdefunを閉じます。括弧の組を崩さないようにします。
よくある失敗
hello-cad.lsp.txtとして保存すると、意図したLSPファイルとして扱われません。Windowsの拡張子表示を確認してください。
それでも解決しない場合
読み込み時のエラーを先に確認します。読み込みが成功していない状態で何度もコマンド名を入力しても動きません。
公式資料・確認範囲
資料確認:2026年10月4日。操作は主に AutoCAD / AutoCAD LT 2024以降(Windows、LISP対応環境) を想定。資料の対象年はリンクに記載しています。画面や選択肢はバージョンで異なる場合があります。 掲載コードのCAD実機テストは未実施です。