コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
GizmoLab 関連
オンラインショップ
CAD&CGブログ
YouTube
GitHub
CAD 系
GizmoTools
AutoLISP
Visual LISP
BricsCADのLISP
GzLib
DCL
OpenDCL
DWG
DXF
CADのコマンド一覧
システム変数
図形の種類
Ver別サポートAPI
CAD用語集
メモ
newLISP
CommonLISP
Script-Fu
Inno setup
JavaScript
ANDROID
Windowsでのファイルハッシュ確認
Prolog
Python
Clojure
Electron
フォント
数学メモ
イメージサイズとメモリ量
blender
Processwire
Win10,11メモ
IIJmio
mediawiki資料
ヘルプ
検索
検索
表示
ログイン
個人用ツール
ログイン
DCLのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
DCL
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{AutoLISP}} [[File:Formsizer.png|thumb|DCLサンプル]]DCL (Dialog Control Language)はダイアログ ボックスを作成するものである。 ダイアログ ボックスは、ダイアログ コントロール言語(DCL)で書かれた ASCII ファイルで定義し、主に LISP プログラムで利用する。 ボタンや編集ボックスなどのダイアログ ボックスの要素を「タイル」と呼び、各タイルのサイズと機能は、個々のタイルの属性でコントロールする。 ダイアログ ボックスのサイズと各部のレイアウトは、最小限の位置情報を使用して自動的に設定される。 AutoCAD の Visual LISP では、ダイアログ ボックスを表示するためのツールを備えている。 AutoCAD互換CADの中でAutoLISP互換を謳っているものは大抵、DCLによるダイアログ表示もサポートされている。 参考:[[バージョン履歴とサポートAPI]] == LISPからダイアログボックスを使用する一般的な手順 == # [[load_dialog]] で DCL ファイルをロードする。 # [[new_dialog]] で、表示するダイアログ ボックスを呼び出す。(この時、new_dialog が返す値を必ずチェックし、呼び出しが失敗していないか確認する。失敗した状態で [[start_dialog]] を呼び出すと、予測できない結果になる可能性がある。) # ダイアログのタイル値やリスト、イメージなどの設定を初期化したり、[[action_tile]] タイルの挙動を設定したりする。この時使用するダイアログ関数は [[set_tile]]、[[mode_tile]]、[[start_list]]、[[add_list]]、[[end_list]]、[[start_image]]、[[vector_image]]、[[fill_image]]、[[slide_image]]、[[end_image]]、[[client_data_tile]] となる。 # [[start_dialog]] でダイアログを呼び出す。この時点でコントロールがダイアログ ボックスに切り替わる。 # (ユーザの操作により アクション(コールバック)内からユーザ入力を処理する。[[get_tile]]、[[get_attr]]、[[set_tile]]、[[mode_tile]] などが処理される。 # ユーザが終了ボタン(あるいは終了処理)を選択したときに [[done_dialog]] が呼び出される。これにより、[[start_dialog]] が値を返す。ここで、[[unload_dialog]] を呼び出し、DCL ファイルをロード解除する。 * 参考: LISPの[[ダイアログ ボックス関数]] サンプルコード <pre class="brush: autolisp;"> ; ALLCONTROL.DCL 内の allct_dlg というダイアログを読み込み表示するサンプル (defun viewdcl ( / dcl_id) (setq dclfile "ALLCONTROL.DCL") (setq dcl_id (load_dialog dclfile)) (if (new_dialog "allct_dlg" dcl_id) (progn ; ダイアログの挙動・設定を記述 ation_tile mode_tile set_tile など (start_dialog) ; ダイアログ表示 (unload_dialog dcl_id) ; ダイアログのアンロード ) (princ (strcat "error:" dclfile "ファイルがみつかりません。")) ) ) </pre> * DCL ファイルには複数のダイアログを保存しておくことが出来るので、メモリに余裕があればすべてのダイアログ ボックスを一度にロードしておき、特定のダイアログ ボックスを逐次 new_dialog にて呼び出すことができる。厳しいメモリ環境を考慮するなら複数の DCL ファイルを作成し、load_dialogと unload_dialog を使用してダイアログ ボックスのセットをメモリから極力削除した形の方法が望ましい。となっているが、今となってはダイアログで消費されるメモリなどたかが知れてるので、ロードしたままでも問題にはなりにくいと思われる。 == タイルの種類 == タイルの種類は、以下の通り。 <div class="mcol3"> ; 標準のボタン (サブアセンブリ) :* [[ok_only]] :* [[ok_cancel]] :* [[ok_cancel_help]] :* [[ok_cancel_help_errtile]] :* [[ok_cancel_help_info]] :* [[errtile]] ; 定義済みのアクティブ タイル :* [[button]] :* [[edit_box]] :* [[list_box]] :* [[multi_edit_box]] *intellicad only :* [[popup_list]] :* [[radio_button]] :* [[toggle]] :* [[slider]] :* [[image_button]] ; 装飾と情報タイル :* [[image]] :* [[text]] :* [[spacer]] :* [[spacer_0]] :* [[spacer_1]] ;文字クラスタ :* [[concatenation]] :* [[paragraph]] :* [[text_part]] ; タイルクラスタ :* [[boxed_column]] :* [[boxed_radio_column]] :* [[boxed_radio_row]] :* [[boxed_row]] :* [[column]] :* [[dialog]] :* [[radio_column]] :* [[radio_row]] :* [[row]] </div> <gallery caption="DCLタイル・ギャラリー" widths="240px" heights="160px"> File:Dcl_boxed_row.png|boxed_row File:Dcl_boxed_column.png|boxed_column File:Dcl_button.png|button File:Dcl_edit_box.png|edit_box File:Dcl_image.png|image File:Dcl_list_box.png|list_box File:Dcl_popup_list.png|popup_list File:Dcl_slider.png|slider File:Dcl_boxed_radio_column.png|boxed_radio_column File:Dcl_boxed_radio_row.png|boxed_radio_row File:Dcl_text.png|text File:Dcl_toggle.png|toggle </gallery> ==DCLファイルの雛形== ひな形です。 dcl_settings の行はDCLの監査機能を有効にしています。 <pre class="brush:autolisp;"> dcl_settings : default_dcl_settings { audit_level = 3; } // HELLO.DCL hello : dialog { label = "サンプル ダイアログ ボックス"; : text { label = "Hello, world"; } : button { key = "accept"; label = "OK"; is_default = true; fixed_width=true; alignment=centered; } } </pre> == タイルの属性 == タイルの属性は、以下の通り。 <div class="mcol2"> {| class="wikitable" ! colspan=2 | 全体の属性 |- ! 属性名 !! 適用タイル |- | [[alignment]]<br /> [[fixed_height]]<br /> [[fixed_width]]<br /> [[height]]<br /> [[width]] || すべてのタイル |} {| class="wikitable" ! colspan=2 | アクションタイルの属性 |- ! 属性名 !! 適用タイル |- | [[action]]<br /> [[is_enabled]]<br />[[is_tab_stop]]<br />[[key]]<br /> [[mnemonic]] || button; edit_box; image_button; list_box; popup_list; radio_button; slider; toggle; radio_column; radio_row |} {| class="wikitable" ! colspan=2 | タイルクラスタの属性 |- ! 属性名 !! 適用タイル |- | [[children_alignment]] <br /> [[children_fixed_height]]<br /> [[children_fixed_width]] || row; column; radio_row; radio_column; boxed_row; boxed_column; boxed_radio_row; boxed_radio_column. |} {| class="wikitable" ! colspan=2 | 特定のタイルで使用する属性 |- ! 属性名 !! 適用タイル |- | [[allow_accept]] || edit_box; image_button; list_box |- | [[aspect_ration]] || image; image_button. |- | [[big_increment]] || slider. |- | [[color]] || image; image_button. |- | [[edit_limit]] || edit_box. |- | [[edit_width]] || edit_box; popup_list. |- | [[fixed_width_font]] || edit_box; popup_list. |- | [[initial_focus]] || dialog. |- | [[is_cancel]] || button. |- | [[is_default]] || button. |- | [[label]] || boxed_row; boxed_column; boxed_radio_row; boxed_radio_column; button; dialog; edit_box; list_box; popup_list; radio_button; text; toggle. |- | [[layout]] || slider. |- | [[list_(DCL)|list]] || list_box; popup_list. |- | [[max_value]] || slider. |- | [[min_value]] || slider. |- | [[multiple_select]] || list_box. |- | [[password_char]] || edit_box. |- | [[small_increment]] || slider. |- | [[tabs]] || list_box; popup_list. |- | [[tab_truncate]] || list_box; popup_list |- | [[value]] || text; all active tiles (except buttons and image_buttons). |} </div> == 互換CADでのDCL表示サンプル == 以下は同じDCLファイルを各互換CADで表示したサンプルである。 見て分かるように、同じDCLでも解釈が異なるため、各コントロールの左右やレイアウトは全く同じにはならない。 <gallery caption="DCL表示の比較" widths="240px" heights="160px"> File:Dcl_ac2011.png|AutoCAD2011 File:Dcl_ijcad7.png|IJCAD 7 File:Dcl_ijcadx.png|IJCADX File:Dcl_bricscadv11.png|BricsCAD v11 File:Dcl_gstercad2011.png|GstarCAD 2010 File:Dcl_zwcad2010.png|ZWCAD2010 </gallery>
このページで参照読み込みされているページ:
テンプレート:AutoLISP
(
ソースを閲覧
)
DCL
に戻る。
検索
検索
DCLのソースを表示
話題を追加