+CADLabo.comCAD / LISP / AUTOMATION
DCL解説

DCL入門1|最小のダイアログを表示する

DCLで入力画面を作るのTips一覧
要点

DCLで画面の構造を定義し、AutoLISPから読み込んで表示します。まずはOKボタンだけの小さな画面で、2つのファイルの役割を確認します。

始める前に

先に確認すると読み進めやすい記事:

確認の手順

  1. 掲載例をDCLファイルとLSPファイルに分けて保存します。
  2. DCL内のダイアログ名と、new_dialogに渡す名前を照合します。
  3. LSPを読み込み、掲載例のコマンドを実行します。
  4. 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ユーザー入力名前や数値の入力
toggleON/OFF選択設定の切り替え
buttonカスタムボタン実行・キャンセルなど

まとめ

DCLは「敷居が高い」と感じられがちですが、実はこのように数行で始められるシンプルな構文からスタートできます。AutoLISPと組み合わせることで、ユーザーに優しいUIを提供し、作業効率を大きく向上させることが可能です。

結果の確認

ダイアログが表示され、ボタンで閉じられることを確認します。表示されない場合はファイルの場所とダイアログ名を見直します。

対象環境・動作確認

AutoLISP対応環境(関数・OSごとの対応は要確認)。内容更新:2026年10月5日。掲載コードのCAD実機検証は未実施です。図形を変更する例は、コピーした図面で結果を確認してください。