ダイアログボックスを作るには、AutoLISPとは違うDCLという言語で書く必要があります。
ユーザー入力の部分をダイアログボックスできます。DCLで書くのは”見た目”の部分。ダイアログボックスに伴う”動き”の部分はAutoLISPです。
2つの言語、文法が異なります。そこは合わせてくれたらよかったのに。
DCL (Dialog Control Language) とは?
DCLは、AutoLISPコマンド用にダイアログボックスを作る言語です。
AutoLISPのようにAutoCADにして欲しい動きをプログラミングするのではなく、プログラミングの中のプロンプト部分をダイアログボックスとして表示し、ユーザー入力を得る、“見た目” を作るものです。ダイアログボックスに伴う”動作”の部分はAutoLISPで行います。
getint getstring などを使ってコマンドライン入力でも、コマンドの動作自体は変わりませんが、ダイアログボックスが出てきた方が、何を入力すればよいのかわかりやすいし、特に、ユーザー入力が多い自作コマンドを作った場合、ダイアログボックスを作った方が使いやすいコマンドになります。
DCLでは見た目だけを設定するのでAutoLISPよりはシンプルです。
ただ、ダイアログボックスが付いたコマンドは、AutoLISPの部分は面倒にはなります。
しかし、一度作ってしまえば、使う時はダイアログボックスがあった方が使い勝手断然よくなるし、ダイアログボックス作りは結構楽しい作業です。
拡張子 .dcl
ダイアログ コントロール 言語の拡張子は .dcl です。(AutoLISPは. lsp です。)
サポートファイルの検索パス内にあるフォルダに保存します。
構文
残念ながら、AutoLISPとは、文法が全く異なります。
カッコ
( ) ではなく { } を使います。
タイルと属性
表示させる要素をタイル、タイルに必要な情報を属性と言います。
AutoLISPの関数/引数 が、DCLで言えばタイル/属性といった感じです。
: で始まり、タイル名の後に{ } が来ます。
:タイル名 { 属性 ; 属性 ; }
で、タイルを定義していき、属性を区切るのに ; を使います。
大文字小文字
DCLは大文字小文字を区別するので注意してください。
基本的にタイル名や属性名は小文字です。
タイトルやダイアログボックス名など自分で決められる単語は大文字小文字どちらでもよいですが、ダイアログボックス名とキーは、そのダイアログボックスを使うAutoLISPのコードと大文字小文字合致する必要があります。
コメントアウト
// 以降の文字は改行まで読み込まれません。(AutoLISPだと ; )
/* と */ の間は改行関係なく読み込まれません。 (AutoLISP だと ;| |; )
サポートファイルの検索パスに登録したフォルダ内に保存
開く度にAutoLISPプログラムから呼び出すので、
必ずサポートファイルの検索パスに登録したフォルダ内に保存してください。
サポートファイルの検索パスについては、コチラの記事を。
まとめ
- DCL (ダイアログコントロール言語)は、ダイアログボックスを作る言語
- DCLで作るのは見た目だけで、コマンド動作自体はAutoLISPで作る。
- 拡張子は .dcl
- AutoLISPとは、コード構成のルールが異なる。