AutoCADのカスタマイズに欠かせないAutoLISPとDCL(Dialog Control Language)。今回は、最もシンプルな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を提供し、作業効率を大きく向上させることが可能です。
コメント