画像ボタンタイルは、画像タイルによく似ています。
違いは、クリックをしたときに色が変わります。
関数action_tile、もしくはタイルにaction 属性を付けてアクションを設定して処理と紐づけして、何かを実行するボタンとして使うのが一般的です。
事前準備
この記事では、スライド (SLD ファイル)を使ってダイアログボックスに画像を表示させる方法についてです。
表示させるスライドを用意し、SLIDE-Aという名前で、サポートファイルの検索パス内のフォルダに保存してください。
スライドの作り方についてはコチラの記事を。
画像ボタン タイル image_button
画像ボタンダイアログボックス
見た目は画像ボタンと同じです。
違いは、画像をクリックすると一瞬色が反転します。
ボタンタイルと同じように、アクションを付けて、画像をクリックしたときに実行する処理と紐づけして使います。
DCL プログラム
Test_ImageButton:dialog {label= "Image Dialog Box";
:image_button {key="A"; height=10; width=10; color=250;}
ok_cancel;
}
:image_button {key=”A”; height=10; width=10; color = 250;}
画像ボタンタイル image_button を置き、キーを”A”に設定しました。
用意したタイルは正方形なので、タイルの幅と高さをどちらも10にしました。
色はAutoCADのインデックスカラーの番号を入れるか、AutoCADの”オプション”で設定されている色を使うことができます。
例えば、color = graphics_backgroundにすれば、現在のスペースの背景に指定している色になります。
ただ、例えば、今回は白色の文字で書かれたスライドを用意しましたが、背景を白色に設定してあるAutoCADで開くと、見えなくなります。
なので、AutoCAD設定を使うのではなく、色を番号で指定した方が、どんな設定でも同じように開くのでいいと思います。
DCLは、以下のAutoLISPプログラムで呼び出すので、JagaDCL.dclという名前で、サポートファイルの検索パス内のフォルダに保存してください。
AutoLISP プログラム
(defun c:test (/ dcl_id Act)
(setq dcl_id (load_dialog "JagaDCL.dcl")) ;
(if (not (new_dialog "Test_Image" dcl_id))
(progn
(princ "***ダイアログボックスが見つかりません***")
(exit)
));if
;-----------------------------------------------------------
(start_image "A")
(slide_image 0 0 (dimx_tile "A")(dimy_tile "A") "SLIDE-A")
(end_image)
;-----------------------------------------------------------
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
;-----------------------------------------------------------
(setq Act (start_dialog))
(unload_dialog dcl_id)
;-----------------------------------------------------------
(princ))
これが、先ほどのDCLを開いてダイアログボックスを表示させるAutoLISPです。
画像ボタンの時と全く同じです。
画像を表示させる部分はこの部分です。
(start_image "A") (slide_image 0 0 (dimx_tile "A")(dimy_tile "A") "SLIDE-A") (end_image)
(start_image “A”)
まず、関数 start_image から始まります。ここに、DCLで指定したキーを入れて下さい。
(slide_image 0 0 (dimx_tile “A”)(dimy_tile “A”) “SLIDE-A”)
そして、関数 slide_image を使って、スライドを指定します。
最初の引数は、タイルの左上からの横方向のオフセットです。
2番目の引数は、タイルの左上からの縦方向のオフセットです。
3番目の引数はスライドの幅です。
4番目の引数はスライドの高さです。
そして、5番目は、スライドの名前を入れます。
ここでは、タイルいっぱいに表示させます。
なので、タイルの左上ピッタリに付けるので幅も高さも0。
スライドの幅と高さは、関数 dimx_tileと、dimy_tileを使いました。
dimx_tile は、タイルの X方向の長さ(幅)
dimy_tileは、タイルの Y方向の長さ (高さ)
です。どちらも引数として、タイルのキーを入れます。
(end_image)
画像表示タイルの設定が終わったら、end_image で閉じます。
start_image と end_imageは、セットで使うので忘れないでください。
まとめ
- image_button は画像タイル。
- 画像タイルとほぼ同じ。違いは画像をクリックしたときに一瞬色が変わる。
- image タイルのAutoCAD側の設定は、(start_image “キー”) と (end_image) の間でする
- slide_image でスライドを表示させる。
- slide_image の引数は、左上の縦、横の開始位置、スライドの幅、高さ、スライド名。
- (dimx_tile “キー”) で、タイルの幅を得ることができる。
- (dimy_tile “キー”) で、タイルの高さを得ることができる。
Comments