DCL入門1|最小のダイアログを表示する
要点
DCLで画面の構造を定義し、AutoLISPから読み込んで表示します。まずはOKボタンだけの小さな画面で、2つのファイルの役割を確認します。
始める前に
先に確認すると読み進めやすい記事:
確認の手順
- 掲載例をDCLファイルとLSPファイルに分けて保存します。
- DCL内のダイアログ名と、new_dialogに渡す名前を照合します。
- LSPを読み込み、掲載例のコマンドを実行します。
- OKで閉じられることと、読み込んだDCLを解放する流れを確認します。
DCL(Dialog Control Language)ってなに?
DCLは、AutoCADで使うAutoLISPやVisual LISPのプログラムに、ダイアログボックス(入力画面)を追加するための言語です。
これを使うと、ユーザーがコマンドラインに文字を打ち込む代わりに、ボタンや入力欄がある画面で操作できるようになります。
たとえば、数値を選んでもらうときに、コマンドラインで入力してもらうより、選択肢付きの画面が出た方が便利ですよね。
DCLはその「見た目の部分」を作る役割を持っていて、実際の動きはAutoLISPが担当します。
まず作ってみよう
まずは、DCLファイルの基本形を作ってみましょう。以下は「OKボタンだけ」を表示する最小構成です。
minimaldcl : dialog {
label = "Minimal Example";
ok_only;
}解説
minimaldcl:ダイアログの識別名。AutoLISP側から呼び出すときに使用。dialog:ダイアログ定義の開始。label:タイトルバーに表示される文字列。ok_only:OKボタンのみを表示する定義済みタイル。
この内容を minimal.dcl という名前で保存します。
AutoLISPでの呼び出しコード
次に、このDCLを表示するためのAutoLISPコードです。
(defun C:minidialog ( / dcl_id )
(setq dcl_id (load_dialog "minimal.dcl"))
(if (not (new_dialog "minimaldcl" dcl_id))
(exit)
)
(start_dialog)
(unload_dialog dcl_id)
(princ)
)解説
load_dialog:DCLファイルを読み込み。new_dialog:DCL内のダイアログ名と一致させて初期化。start_dialog:ダイアログ表示。unload_dialog:使用後にメモリ解放。C:minidialog:AutoCAD上でminidialogと入力すれば起動。

実行すると上記のようなボックスがポップアップします。
応用のヒント
この最小構成をベースに、以下のような拡張が可能です:
| タイル | 用途 | 例 |
|---|---|---|
text | ラベル表示 | 説明文やタイトル |
edit_box | ユーザー入力 | 名前や数値の入力 |
toggle | ON/OFF選択 | 設定の切り替え |
button | カスタムボタン | 実行・キャンセルなど |
まとめ
DCLは「敷居が高い」と感じられがちですが、実はこのように数行で始められるシンプルな構文からスタートできます。AutoLISPと組み合わせることで、ユーザーに優しいUIを提供し、作業効率を大きく向上させることが可能です。
結果の確認
ダイアログが表示され、ボタンで閉じられることを確認します。表示されない場合はファイルの場所とダイアログ名を見直します。
対象環境・動作確認
AutoLISP対応環境(関数・OSごとの対応は要確認)。内容更新:2026年10月5日。掲載コードのCAD実機検証は未実施です。図形を変更する例は、コピーした図面で結果を確認してください。