2013年7月12日金曜日

DIESEL式のマクロ(縮尺・用紙サイズ設定)

メニューの中にDIESEL式のマクロを組めば、結構効果的な処理が実現できます。

そのためには、結構複雑なマクロになることもあります。そこで、設定や処理の各部分について説明して、マクロの流れを理解していこうと思います。

では、前回の「縮尺・用紙サイズ設定のメニュー作成」で作成した部分メニューの構文について説明しましょう。


◆ DIESEL式なしのマクロ


最初は、「初期設定 A1-S100」という名前で記述したマクロ部分です。


^C^C_LIMITS;0,0;84100,59400;_rectang;0,0;84100,59400;_setvar;dimscale;100;;textsize;300;;ltscale;100;;userr1;100;_CHPROP;L;;LA;Defpoints;;^C^C_ZOOM;A;




このマクロは、標準のコマンドを使用する部分から成り立っており、DIESEL式は使われていません。

部分部分に区切って構文の意味を解説しましょう。

^C^C
これはキャンセルを意味します。
何か実行中のコマンドがあっても終了させます。
_LIMITS;0,0;84100,59400;
コマンド LIMITS で作図領域を設定します。左下点が 0,0 で、右上点は A1サイズの縮尺1/100 の値=84100,59400 です
_rectang;0,0;84100,59400;
コマンドrectangで上記の作図領域にポリラインを作成します。
_setvar;dimscale;100;
システム変数のdomscale(寸法の尺度)100に設定します
;textsize;300;
最初の「;」は同コマンドの繰返しを意味し、ここではsetvarを実行。
システム変数の textsize(文字高さ)を300に設定します。(実質3mm)
;ltscale;100;
最初の「;」は同コマンドの繰返しを意味し、ここではsetvarを実行。
システム変数の ltscale(線の尺度)を100に設定します。
;userr1;100;
最初の「;」は同コマンドの繰返しを意味し、ここではsetvarを実行。
システム変数の userr1 を 100 に設定します。
(userr1 は、多くのCADアプリで縮尺の保管に用いられています)
_CHPROP;L;;LA;Defpoints;;
CHPROPコマンドを実行し、最後に作成されたオブジェクト、つまり
領域を表すポリラインの画層をDefpointsとします。
^C^C
ここで、一旦キャンセルを実行します。(念の為であり無くてもOK)
_ZOOM;A;
ZOOMコマンドを実行し、作図領域を全画面表示します。



◆ DIESEL式を使用したマクロ


次に、DIESEL式を用いたマクロとして、「初期設定 A1 縮尺入力」をみて行きましょう。

^C^C_setvar;userr1;\_LIMITS;0,0;$M=$(*,$(getvar,userr1),841),$(*,$(getvar,userr1),594);-insert;BORDER;0,0;$(*,$(getvar,userr1),841);$(*,$(getvar,userr1),594);0;_setvar;ltscale;$M=$(getvar,userr1);;textsize;$M=$(*,$(getvar,userr1),3);_setvar;dimtxt;3;;dimscale;$M=$(getvar,userr1);_CHPROP;L;;LA;Defpoints;;^C^CZOOM;A;


\」は入力待ちの記号で、「\」の直後には「;」などの実行終了記号の記述は不要です。
$M=$(」以後「)」で閉じる部分までがDIESEL式です。


^C^C
これはキャンセルを意味します。
何か実行中のコマンドがあっても終了させます。
_setvar;userr1;\
システム変数の userr1 の値を入力させます。(縮尺を設定させる)
_LIMITS;0,0;$M=$(*,$(getvar,
userr1),841),$(*,$(getvar,
userr1),594);
作図領域を設定します。左下点が 0,0 で、右上点は X方向Y方向
それぞれが841 および 594の縮尺倍の値とします。
-insert;BORDER;0,0;$(*,$
(getvar,userr1),841);$(*,
$(getvar,userr1),594);0;
ブロック BORDER を挿入します。
挿入基点は 0,0 で、倍率はX方向、Y方向それぞれが841 および 594の縮尺倍の値で、Z方向は0です。
これで作図領域が示されます。
_setvar;ltscale;$M=$
(getvar,userr1);
システム変数の ltscale(線の尺度)を縮尺値とします。
;textsize;$M=$(*,$(getvar,
userr1),3);
最初の「;」は同コマンドの繰返しで、 setvarを実行。
システム変数の textsize(文字高)を縮尺の3倍に設定。
;dimscale;$M=$(getvar,
userr1);
最初の「;」は同コマンドの繰返しで、 setvarを実行。
システム変数の dimscale(寸法の尺度)を縮尺値に設定。
_CHPROP;L;;LA;Defpoints;
CHPROPコマンドを実行し、最後に作成されたオブジェクト、つまり
領域を表すポリラインの画層をDefpointsとします。
^C^C
ここで、一旦キャンセルを実行します。(念の為であり無くてもOK)
_ZOOM;A;
ZOOMコマンドを実行し、作図領域を全画面表示します。


今後も使用するマクロについては分解して解説を加えて行きますので、今全て理解できなくても大丈夫です。
まずはこの形式に慣れるところから始めて下さい。

次回は再びカスタマイズに戻り、別のマクロをご紹介して行きます。



メニューカスタマイズのノウハウを駆使して開発した「AutoCAD LT」 対応の建築・設備設計支援ツール『CustomARCH LT』シリーズを発売中です。
製品詳細については下記でご紹介しています。
    
CustomARCH LT 建築
    
CustomARCH LT 電気設備

0 件のコメント:

コメントを投稿