例: ダイアログ ボックスの概要(DCL)

この例では、AutoLISP を使用して基本的なダイアログ ボックスを作成し、表示する方法を説明します。

DCL ファイルを作成する

この DCL は、テキスト タイルと 1 つの[OK]ボタンを含む、サンプル ダイアログ ボックスというラベルのダイアログ ボックスを定義しています。この DCL コードを hello.dcl という名前のファイルに格納します。

hello : dialog
{
  label = "Sample Dialog Box";
  : text {
    label = "Hello, world.";
  }
  ok_only;
}
Windows
  1. 上記のサンプル DCL コードをハイライト表示して[Ctrl]+[C]を押すか、右クリックして[Copy]を選択し、テキストをクリップボードにコピーします。
  2. [スタート]ボタン [Windows アクセサリ] [メモ帳]をクリックします。
  3. [メモ帳]で、新しいエディタ ウィンドウ内をクリックして[Ctrl]+[V]を押すか、右クリックして[貼り付け]を選択し、クリップボードの内容を貼り付けます。
  4. [ファイル]メニュー [名前を付けて保存]をクリックします。
  5. [名前を付けて保存]ダイアログ ボックスで、DCL ファイルを保存する場所に移動します。
    注: DCL ファイルは、必ず AutoCAD サポート ファイル検索パス内のフォルダの 1 つに保存する必要があります。
  6. [ファイル名]テキスト ボックスに、hello.dcl と入力します。
  7. [ファイルの種類]ドロップダウン リストをクリックし、[すべてのファイル(*.*)]を選択します。
  8. [文字コード]ドロップダウン リストをクリックし、[ANSI]を選択します。[保存]をクリックします。
Mac OS
  1. 上記のサンプル DCL コードをハイライト表示して[Command]+[C]を押すか、セカンダリ クリックして[Copy]を選択し、テキストをクリップボードにコピーします。
  2. [Finder]で、Mac OS のメニュー バーから[移動]メニュー [アプリケーション]を選択します。
  3. [アプリケーション]ウィンドウで、[テキストエディット]をダブルクリックします。
  4. テキストエディットで、Mac OS のメニュー バーから[テキストエディット]メニュー [環境設定]を選択します。
  5. [環境設定]ダイアログ ボックスの[フォーマット]セクションで、[標準テキスト]をクリックします。[閉じる]ボタンをクリックします。
  6. エディタ ウィンドウ内をクリックし、[Command]+[V]を押すか、セカンダリ クリックして[貼り付け]を選択します。
  7. Mac OS のメニュー バーから[ファイル]メニュー [別名で保存]を選択します。
  8. [名称未設定]ダイアログ ボックスで、DCL ファイルを保存するフォルダに移動します。
    注: DCL ファイルは、必ず AutoCAD サポート ファイル検索パス内のフォルダの 1 つに保存する必要があります。
  9. [別名で保存]テキスト ボックスにhello.dclと入力して[保存]をクリックします。
  10. ファイル拡張子 .dcl を使用するように求められたら、[.DCL を使用]をクリックします。

ダイアログ ボックスを表示し、ユーザによる[OK]の選択に応答する

(defun C:HELLO ( / dcl_id )
  (setq dcl_id (load_dialog "hello.dcl")) ; Load the DCL file.
  (if (not (new_dialog "hello" dcl_id))   ; Initialize the dialog.
    (exit)                                ; Exit if this does not work.
  )
  (start_dialog)                          ; Display the dialog box.
  (unload_dialog dcl_id)                  ; Unload the DCL file.
 (princ)
)
  1. 上記のサンプル LSP コードをハイライト表示して、クリップボードにコピーします。
  2. [メモ帳]または[テキストエディット]で新しいファイルを作成し、以前に保存した hello.dcl ファイルと同じ場所に、hello.lsp というファイル名で保存します。
  3. AutoCAD のコマンド プロンプトに対して、appload と入力します。
  4. [アプリケーションのロード/ロード解除]ダイアログ ボックスで、hello.lsp ファイルを参照して選択します。[ロード]をクリックします。
  5. [ファイルのロード – セキュリティの問題]ダイアログ ボックスが表示されたら、再度[ロード]をクリックします。
  6. アプリケーション ウィンドウに戻るには、[閉じる]をクリックします。
  7. コマンド プロンプトに対して、hello と入力します。
  8. サンプル ダイアログボックスで[OK]をクリックします。

次に、AutoLISP の動作を 1 行ごとに説明します。

start_dialog の呼び出しは、ユーザがボタンなどのタイルを選択し、そのタイルに関連付けられているアクション式が done_dialog を呼び出すまでアクティブなままです。done_dialog の呼び出しは、タイルによって明示的に発行できます。また、is_cancel 属性に true が設定されている場合は、選択したタイルによって done_dialog の呼び出しを発行することもできます。

注意: 理論的には、ダイアログ ボックスの機能は start_dialog を呼び出した時点で入力コントロールを得ますが、オペレーティング システムでは、new_dialog を呼び出したときにコントロールを得ます。プログラムを書くときには、このことを考慮する必要はありませんが、これらの関数を対話的に呼び出す場合は(AutoCAD のコマンド プロンプトから呼び出す場合)、1 つの文として入力する必要があります。これらの関数は、progn または別の関数内に囲んで入れてください。さもないと、new_dialog を対話的に呼び出したときに画面表示が停止する可能性があります。デバッグ中は、new_dialogstart_dialog を対話的に呼び出すと便利です