AutoLISP DCL入門1:基本構文をつくってみよう

Autolisp

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ユーザー入力名前や数値の入力
toggleON/OFF選択設定の切り替え
buttonカスタムボタン実行・キャンセルなど

まとめ

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

コメント

タイトルとURLをコピーしました