2013年7月26日金曜日

DIESEL式のマクロ(寸法記入 / 線分系作図)

今回は、「寸法記入 / 線分系作図マクロを作る」で作成した部分メニューの構文について説明しましょう。

◆ 「寸法記入」 のマクロ

最初に、「水平・垂直 長さ寸法直列記入」のマクロをみてみましょう。
水平または垂直の長さ寸法を連続して直列に作成するマクロです。作成する画層は「DIM」です。

^C^C$M=$(if,$(eq,$(getvar,clayer),DIM),,-layer;M;DIM;C;1;;;)_dimlinear;\\\_dimcontinue;

このマクロでは、寸法オブジェクトを「DIM」画層に作成します。そのため、現在の画層が「DIM」であるかないかによる処理に対してDIESEL式を用いています。

^C^C これはキャンセルを意味します。
何か実行中のコマンドがあっても終了させます。
$M=$(if,$(eq,$(getvar,clayer),DIM),,
-layer;M;DIM;C;1;;;)
もし現在の画層が DIM であればスルー、そうでなければ画層 DIM を規定色=1(赤)として作成。
_dimlinear;\\\_dimcontinue; dimlinearコマンドを実行し、始点、終点、寸法位置を指示。その直後にdimcontinue(直列寸法記入)を実行。


次は、「平行寸法直列記入」のマクロです。

最初の2点で指示された角度の平行寸法を連続して直列に作成するマクロです。作成する画層は「DIM」です。

^C^C$M=$(if,$(eq,$(getvar,clayer),DIM),,-layer;M;DIM;C;1;;;)_dimaligned;\\\_dimcontinue;


^C^C これはキャンセルを意味します。
何か実行中のコマンドがあっても終了させます。
$M=$(if,$(eq,$(getvar,clayer),DIM),,
-layer;M;DIM;C;1;;;)
もし現在の画層が DIM であればスルー、そうでなければ画層 DIM を規定色=1(赤)として作成。
_dimaligned;\\\_dimcontinue; dimlinearコマンドを実行し、始点、終点、寸法位置を指示。その直後にdimcontinue(直列寸法記入)を実行。
 

◆ 「線分系」 のマクロ

次に、「振分線分」のマクロを検証してみましょう。

振分幅を入力し、選択した既存線分をその両サイドに振分て複写するマクロです。作成された振分線分の画層は現在の画層となります。

^C^C_setvar;ucsicon;0;_offsetdist;\select;single;\dist;_none;@;_per;@;ucs;3;_none;$M=$(getvar,lastpoint);_per;@;;_pickbox;1;_offset;;$(getvar,distance),0;_none;0,0;;_chprop;L;;la;$M=$(getvar,clayer);;_erase;_l;;_offset;;$(getvar,distance),0;_none;$(*,2,$(getvar,distance)),0;;_chprop;L;;la;$M=$(getvar,clayer);;_oops;_pickbox;$(getvar,pickbox);_ucs;_p;

かなり複雑なマクロのように見えますが、割合簡単な部分の集合体であることが理解できるでしょう。

^C^C これはキャンセルを意味します。
何か実行中のコマンドがあっても終了させます。
_setvar;ucsicon;0; システム変数の ucsicon の値を0に設定。(UCSアイコン非表示)
_offsetdist;\ offsetdist (オフセット距離)の値を入力。
select;single;\ 単独のオブジェクトを選択。(線分の選択)
 dist;_none;@;_per;@;ucs;3;_none;
$M=$(getvar,lastpoint);_per;@;;
UCSの原点とY方向を線分選択点および線分方向に設定。
_pickbox;1; pickboxの値を1ピクセルに設定。
_offset;;$(getvar,distance),0;
_none;0,0;;
UCSのX方向に事前に指定された距離でオフセットを実行。
_chprop;L;;la;$M=$(getvar,clayer);; 最後のオブジェクト(オフセット線分)の画層を現在の画層に更新。
_erase;_l;; 最後のオブジェクト(オフセット線分)を一旦削除。(最後に復活)
_offset;;$(getvar,distance),0
;_none;$(*,2,$(getvar,distance)),
0;;
UCSのX方向に事前に指定された距離の2倍でオフセットを実行。
_oops; 最後に削除したオブジェクト(オフセット線分)を復活
_pickbox;$(getvar,pickbox); pickboxの値を元に戻す。
_ucs;_p; UCSの設定を元に戻す。
 
次は、「中間点通過線分」のマクロです。
線分を選択しもう一方の線分までの中間点を通過する位置に、最初に選択した線分を複写するマクロです。

^C^C_snapbase;\_line;$M=$(getvar,snapbase);_per;\;_osmode;640;__dist;$M=$(getvar,snapbase);"$M=$(getvar,lastpoint)";_erase;L;;_offset;"""""""$M=$(/,$(getvar,distance),2.0)""""""";"""$M=$(getvar,snapbase)""";"""""$M=$(getvar,lastpoint)""""";;_osmode;$(getvar,osmode);

ここでは、実行を遅らせるテクニックを学びましょう。

事前の入力値を反映させるために後で評価するDIESEL式を遅らせる必要が生じます。
ダブルクォーテーションで囲むと、その部分の実行を遅らせることができます。
更に遅らせるにはダブルクォーテーションを2つ追加し計3個とします。
更にさらに遅らせる場合は4個追加して合計7個のダブルクォーテーションとします。
更に8個追加の合計15も成立します。

^C^C これはキャンセルを意味します。
何か実行中のコマンドがあっても終了させます。
_snapbase;\ スナップの基点を設定。(最初の線分の端点指示)
_line;$M=$(getvar,snapbase);_per;\; スナップ基点を始点とする線分の終点指示。(もう一方の線分の端点)
_osmode;640; オブジェクトスナップの値を垂線,近接点に設定。
__dist;$M=$(getvar,snapbase);"
$M=$(getvar,lastpoint)";
スナップ基点と最後の点間の距離を取得。直前に実行された線分の終点取得時の値を反映させる為に最後の点部分を1回遅らせる。
_erase;L;; 最後のオブジェクト(線分)を削除。
_offset;"""""""$M=$(/,$(getvar,
distance),2.0)""""""";"""$M=
$(getvar,snapbase)""";"""""
$M=$(getvar,lastpoint)""""";;
オフセットを実行します。

オフセットの距離は事前に取得した距離の半分ですが、1回遅らせて取得した距離を反映させるために2回遅らせなければなりません。

オフセットする元のオブジェクトはスナップ基点で選択されるオブジェクトですが、最初に指示されたスナップ基点を反映させるために1回遅らせなければなりません。

オフセットする方向は線分の終点として指示された点ですが、1回遅らせて取得した点を反映させるために2回遅らせなければなりません。

結果として、最初の点で選択された線分が、線分の終点として指示された点との中間点に複写されることになります。
_osmode;$(getvar,osmode); オブジェクトスナップの値を元に戻します。
これは遅らせる処理をさせない為に、640に設定される以前の値が採用されます。
 

次は、「矢印線分」のマクロです。

指示する2点間に線分を作成し、その始点に矢印のブロックを挿入するマクロです。

^C^C_snapbase;\_line;$M=$(getvar,snapbase);\;-insert;ARROWHED;"$M=$(getvar,snapbase)";"$M=$(getvar,userr1)";;"$M=$(getvar,lastpoint)";

条件として、縮尺の値がシステム変数の userr1 に設定されていなければなりません。
更に、矢印のブロックが、ARROWHED という名前で登録されていることが条件です。

^C^C これはキャンセルを意味します。
何か実行中のコマンドがあっても終了させます。
_snapbase;\ スナップの基点を設定。(線分の始点指示)
_line;$M=$(getvar,snapbase);\; スナップの基点を始点とする線分の作成、(終点が最後の点)
-insert;ARROWHED;"$M=$(getvar,
snapbase)";"$M=$(getvar,userr1)
";;"$M=$(getvar,lastpoint)";
ブロックARROWHEDを挿入。挿入基点はスナップの基点(線分の始点)で、倍率はシステム変数userr1値(縮尺)、挿入角度は最後の点(線分の終点)の方向。


次回は再び実際のコマンド作成に戻ります。
次回更新は8月2日(金)を予定しています。


* * * * * * * * *

メニューカスタマイズのノウハウを駆使して開発した「AutoCAD LT」 対応の建築・設備設計支援ツール『CustomARCH LT』シリーズを発売中です。

製品詳細については下記でご紹介しています。
    
CustomARCH LT 建築
    
CustomARCH LT 電気設備

2013年7月19日金曜日

寸法記入 / 線分系作図マクロを作る (AutoCAD LT プルダウンメニューの作成)

前回に引き続き、AutoCAD LT のプルダウンメニューに独自の項目を追加していきます。

今回はAutoCAD LT に「寸法記入」、「線分系」の項目を追加していきます。


◆ 「寸法記入」メニューを作る

 「寸法記入」 ・・・ 「水平・垂直 長さ寸法直列記入」、「平行寸法直列記入」等をオプション入力             なしで記入できる機能を追加します。



リボンタブの「管理」タブをクリックし、「カスタマイズ」から「ユーザインタフェース」をクリックします。「ユーザインタフェースをカスタマイズ」のダイアログが表示されます。

前回作成した部分メニュー、「MYTOOL」を右クリックし、「新規サブメニュー」を実行します。

作成されたサブメニューの名前を 「寸法記入」 とします。




「新規コマンド」のボタンをクリックし、新たなコマンドを作成します。

右側の「プロパティ」欄で、名前を 「水平・垂直 長さ寸法直列記入」 とします。

続いて、マクロ欄の右端ボタンをクリックし、新たなダイアログで下記の入力をします。

^C^C$M=$(if,$(eq,$(getvar,clayer),DIM),,layer;M;DIM;C;1;;;)_dimlinear;\\\_dimcontinue;

このマクロで、画層「DIM」に水平または垂直の長さ寸法を連続して直列記入します。説明欄には次のようなメモ書きすると良いでしょう。

・「長さ寸法を水平または垂直に記入し、連続して直列寸法を記入」

左下「コマンド」欄の「長さ寸法直列記入」を右クリックし、「コピー」を実行します。

引き続き、左上の 「部分カスタマイズ ファイル」 > 「MYTOOL」 > 「メニュー」 > 「MyTool」 > 「寸法記入」  の位置に貼付けます。


更に、「新規コマンド」のボタンをクリックし、新たなコマンドを作成します。

右側の「プロパティ」欄で、名前を「平行寸法直列記入」とします。

続いて、マクロ欄の右端ボタンをクリックし、新たなダイアログで下記の入力をします。

^C^C$M=$(if,$(eq,$(getvar,clayer),DIM),,-layer;M;DIM;C;1;;;)_dimaligned;\\\_dimcontinue;


このマクロで、画層「DIM」に平行寸法を連続して直列記入します。(\は入力を待ちます)説明欄には次のように記述しましょう。

・「寸法を指示2点間に対し平行に記入し、連続して直列寸法を記入」

同様に、「平行寸法直列記入」を「コピー」し、「寸法記入」 の位置に貼付けます。





◆ 「線分系」メニューを作る

 「線分系」 ・・・  「振分線分」(既存の線分から指定の距離で両側に振り分けた線分を作成)
            「中間点通過線分」(指示2点間の中点に、最初の点上にある線分を作成)                          などの線分作図機能を追加

続いて、線分系のコマンドを定義してみましょう。

引き続き、「MYTOOL」を右クリックし、「新規サブメニュー」を実行します。

作成されたサブメニューの名前を 「線分系」 とします。




「新規コマンド」のボタンから新たなコマンドを作成し、名前を「振分線分」とします。


マクロ欄の右端ボタンをクリックし、新たなダイアログで下記の入力をします。


^C^C_setvar;ucsicon;0;_offsetdist;\select;single;\dist;_none;@;_per;@;ucs;3;_none;$M=$(getvar,lastpoint);_per;@;;_pickbox;1;_offset;;$(getvar,distance),0;_none;0,0;;_chprop;L;;la;$M=$(getvar,clayer);;_erase;_l;;_offset;;$(getvar,distance),0;_none;$(*,2,$(getvar,distance)),0;;_chprop;L;;la;$M=$(getvar,clayer);;_oops;_pickbox;$(getvar,pickbox);_ucs;_p;

このマクロで、指示線分の両側に指定幅の平行線分を振り分けて作成します。

説明欄は、「指示線分の両サイドに振分線分を作成」とします。

左下「コマンド」欄の「振分線分」を右クリックし、「コピー」して、左上の「部分カスタマイズ ファイル」 > 「MYTOOL」 > 「メニュー」 > 「MyTool」 > 「線分系」  の位置に貼付けます。




更に、「新規コマンド」のボタンから新たなコマンドを作成し、名前を「中間点通過線分」とします。

マクロ欄の右端ボタンをクリックし、新たなダイアログで下記の入力をします。

^C^C_snapbase;\_line;$M=$(getvar,snapbase);_per;\;_osmode;640;__dist;$M=$(getvar,snapbase);"$M=$(getvar,lastpoint)";_erase;L;;_offset;"""""""$M=$(/,$(getvar,distance),2.0)""""""";"""$M=$(getvar,snapbase)""";"""""$M=$(getvar,lastpoint)""""";;_osmode;$(getvar,osmode);

このマクロで、指示2点間の中点に、最初の点上にある線分を複写します。

説明欄は、「最初の指示点上にある線分を、次の指示平行線分上の点との中間に複写」とします。

同様に、「中間点通過線分」をコピーし、「線分系」 の位置に貼付けます。


もう一つ、「新規コマンド」のボタンから新たなコマンドを作成し、名前を「矢印線分」とします。

マクロ欄の右端ボタンをクリックし、新たなダイアログで下記の入力をします。


^C^C_snapbase;\_line;$M=$(getvar,snapbase);\;-insert;ARROWHED;"$M=$(getvar,snapbase)";"$M=$(getvar,userr1)";;"$M=$(getvar,lastpoint)";

このマクロで、2点間に線分を作成し、最初の点上に矢印のブロックを挿入します。

説明欄は、「矢印付の線分を作成」とします。上記と同様に、「線分系」 の位置に貼付けます。

但し、 ARROWHED.DWG というブロックがパス設定フォルダ上に存在することが条件です。




左上の「ワークスペース」欄の「AutoCAD LT クラシック」をクリックし、右上の「ワークスペース」欄の「メニュー」に 「MyTool(グループ:MYTOOL)」 が追加されていることを確認します。




一旦ここで、カスタマイズを保存しましょう。まず、[適用(A)]ボタンをクリックし、カスタマイズ実行を待ちます。

引き続き、[OK(O)]ボタンをクリックしダイアログボックスを閉じます。


◆ 使ってみましょう

プルダウンメニューへの項目の追加はひとまずここで完成です。

AutoCAD LTの作図画面で、ワークスペースを「AutoCAD LTクラシック」に設定します。

プルダウンメニューの右端に「MyTool」が追加されていることが確認できるでしょう。
前回作成した 「初期設定」 と併せて 「寸法記入」「線分系」 を使ってみましょう。




プルダウンメニューの「MyTool」からサブメニューをクリックして、それぞれのコマンドを実行することになります。

MyTool」をクリックし、 「初期設定」 の 「初期設定 A-S100」 をクリックすると、必要なシステム変数を所定の値に設定すると共に用紙の領域がポリラインで作成されます。

「初期設定」の各サブメニューからも同様の処理が実行できます。


また同様に、「MyTool」をクリックし、 「寸法記入」 のフライアウトから 「水平・垂直 長さ寸法直列記入」 をクリックすると、指示2点間に水平または垂直の長さ寸法を記入し、更に次の点を指示する都度連続して直列の寸法を記入します。

更に、 「平行寸法直列記入」 も同様に、連続して直列の寸法が作成できます。


「線分系」 のフライアウトから 「振分線分」 をクリックすると、振り分ける幅の入力を待ち、次に指示する線分を両側に振り分けた位置に複写します。

「中間点通過線分」は、指示2点間の中点に、最初の点上にある線分を複写します。

「矢印線分」は、指示2点間に線分を作成し、最初の点上に矢印のブロックを挿入します。 


プルダウンメニュー「MyTool」はこれで完成です。
各マクロの動作を一つづつ試してみて下さい。 

今回は、マクロをプルダウンメニューへ貼付けましたが、ツールバーやリボンにアイコンを追加して同様に貼付けることも可能です。
その際はアイコン(.bmp)を作成する必要がありますが、これもまた機会を改めてご説明していきます。

次回は今回追加した 「寸法記入」、「線分系」 の各マクロの意味を解説していきます。
次回更新は 7月26日(金)を予定しています。

*  *  *  *

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

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 電気設備

2013年7月5日金曜日

縮尺・用紙サイズ設定のメニュー作成 (AutoCAD LT プルダウンメニューの作成)

今回から本格的なメニューのカスタマイズに入ります。

最初はAutoCAD LT のプルダウンメニューに独自の項目を追加してみましょう。


今回から数回に渡って以下のメニューを作成します。

 「初期設定」 ・・・ 図面の縮尺と用紙サイズを一括で設定します。プルダウンメニューから「初期             設定 A-S100」のような項目を選ぶだけで必要なシステム変数を所定の値              に設定すると共に用紙の領域がポリラインで作成されます。
  
 「寸法記入」 ・・・ 「水平・垂直 長さ寸法直列記入」、「平行寸法直列記入」等をオプション入力             なしで記入できる機能を追加します。

 「線分系」 ・・・  「振分線分」(既存の線分から指定の距離で両側に振り分けた線分を作成)
             「中間点通過線分」(指示2点間の中点に、最初の点上にある線分を作成)
                            などの線分作図機能を追加


今回はAutoCAD LT に「初期設定」の項目を追加していきます。

尚、説明はAutoCAD LT 2014を基準にしていますが、AutoCAD LT 2007 以降のバージョンであればほぼ同じ手順でカスタマイズできます。




メニューのカスタマイズ


◆ 部分メニューを作る


リボンタブの「管理」タブをクリックし、「カスタマイズ」から「ユーザインタフェース」をクリックします。
「ユーザインタフェースをカスタマイズ」のダイアログが表示されます。

ではこれからメニューを作成していきますが、最初に、DIESELにオリジナル機能を追加する部分を、部分メニューとして追加します。
これは、後からCADをバージョンアップしたとき等に、作成したものを無駄にせず持ち出せるようにする為です。

「ユーザインタフェースをカスタマイズ」のダイアログの「カスタマイズ」のタブを選択します。
「すべてのカスタマイズ」の表示欄を一番下までスライドさせると「部分カスタマイズ ファイル」の項目が出てきます。

「部分カスタマイズ ファイル」のCUSTOM」を選択し、右クリックします。
「名前変更」選択し、CUSTOMの名前を「MYTOOL」に変更します。


 

「部分カスタマイズ ファイル」の「MYTOOL」の「メニュー」を選択して右クリックし、
「新規メニュー」を選択して
新規メニューを追加します。

  


新規メニューは「メニュー1」という名前で作成されますので、この名前を「MYTOOL」に変更します。
右側の「プロパティ」欄で「エイリアス」を選び、右端の[・・・]ボタンをクリックします。
入力欄が出てきますので、POP1となっている所を POP13に変更します。


MYTOOL」を右クリックし、「新規サブメニュー」を実行します。


  
作成されたサブメニューの名前を「初期設定」とします。


次に、初期設定のコマンドを作成してメニューに加えてゆきます。
  
まず、「コマンド一覧: 」のすぐ下にある「すべてのコマンド」バーの右端、「新規コマンド」のボタンをクリックし、新たなコマンドを作成します。

  

右側に表示される「プロパティ」欄で、名前を「初期設定 A1-S100」とします。


◆ マクロの入力

さて、ここからマクロの入力をしていきます。
入力したマクロの意味については次回以降解説していきますので、今回はとりあえず入力だけして、どんな結果になるかを試してみて下さい。

初めての方はかなり長い、意味のわからない文字列に少々びっくりされるかもしれません。
  
この本文からコピー&ペーストで貼り付けることももちろんできますが、マクロの表現に慣れるためにも、1度は自分で最初から入力してみることをお奨めします。

1文字間違えただけでも思うような結果にならず、間違い探しに延々時間を取られたりするのがプログラミングの世界です。
是非初めの一歩として取り組んでみてください。

では続けます。


続いて、マクロ欄の右端ボタンをクリックし、新たなダイアログ(ロングストリングエディタ)で下記の入力をします。

^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;


改行やスペースなどは入りません。1行として続けて入力します。



次回解説しますが、このマクロで、システム変数の limmin, limmax, dimscale, textsize, ltscale, userr1 の値が設定され、Defpoints 画層に作図領域のポリラインが作成されます。

説明欄には、「縮尺が1/100で作図領域がA1の初期設定をします」と入力しましょう。

左下の「コマンド」欄に「初期設定 A1-S100」ができます。

「コマンド」欄の「初期設定 A1-S100」を右クリックし、「コピー」を実行します。


引き続き、左上の「部分カスタマイズ ファイル」>「MYTOOL」>「メニュー」>「MyTool」>「初期設定」 の位置に貼付けます。


同様に、通常使う用紙サイズと縮尺の組合せによるコマンドを作成してゆきます。

今回は例として以下の組合せのマクロ部分を入力します。
いずれも改行やスペースなどは入りません。1行として続けて入力します。

全て入力するとかなり時間がかかりますので、時々右下の[適用(A)]ボタンをクリックして保存するようにして下さい。


初期設定 A1-S200縮尺が1/200で作図領域がA1)

^C^C_LIMITS;0,0;168200,118800;_rectang;0,0;168200,118800;_setvar;dimscale;200;;textsize;600;;ltscale;200;;userr1;200;_CHPROP;L;;LA;Defpoints;;^C^C_ZOOM;A;


初期設定 A1-S100縮尺が1/100で作図領域がA1)

^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;


初期設定 A1-S50縮尺が1/50で作図領域がA1)

^C^C_LIMITS;0,0;42050,29700;_rectang;0,0;42050,29700;_setvar;dimscale;50;;textsize;150;;ltscale;50;;userr1;50;_CHPROP;L;;LA;Defpoints;;^C^C_ZOOM;A;


初期設定 A1-S20縮尺が1/20で作図領域がA1)

^C^C_LIMITS;0,0;16820,11880;_rectang;0,0;16820,11880;_setvar;dimscale;20;;textsize;60;;ltscale;20;;userr1;20;_CHPROP;L;;LA;Defpoints;;^C^C_ZOOM;A;


初期設定 A1 縮尺入力縮尺は任意入力、作図領域が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);;dimgap;0.5;;dimtad;1;;dimdec;1;_CHPROP;L;;LA;Defpoints;;^C^CZOOM;A;


(区切り線
※ 区切り線は「初期設定」を右クリックして表示されるメニューから挿入できます。
   コマンドの選択を容易にする区分として活用すると良いでしょう。


初期設定 A2-S200縮尺が1/200で作図領域がA2)

^C^C_LIMITS;0,0;118800,84000;_rectang;0,0;118800,84000;_setvar;dimscale;200;;textsize;600;;ltscale;200;;userr1;200;_CHPROP;L;;LA;Defpoints;;^C^C_ZOOM;A;


初期設定 A2-S100縮尺が1/100で作図領域がA2)

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


初期設定 A2-S50縮尺が1/50で作図領域がA2)

^C^C_LIMITS;0,0;29700,21000;_rectang;0,0;29700,21000;_setvar;dimscale;50;;textsize;150;;ltscale;50;;userr1;50;_CHPROP;L;;LA;Defpoints;;^C^C_ZOOM;A;


初期設定 A2-S20縮尺が1/20で作図領域がA2)

^C^C_LIMITS;0,0;11880,8400;_rectang;0,0;11880,8400;_setvar;dimscale;20;;textsize;60;;ltscale;20;;userr1;20;_CHPROP;L;;LA;Defpoints;;^C^C_ZOOM;A;


初期設定 A2 縮尺入力縮尺は任意入力、作図領域がA2)

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


「縮尺入力」の項目で使われている「$M=$(」で始まる式がDIESELといわれる言語の式です。
何を意味しているかは次回以降解説します。

全部入力できたら、一旦ここで、カスタマイズを保存しましょう。
 
まず、[適用(A)]ボタンをクリックし、カスタマイズ実行を待ちます。
引き続き、[OK(O)]ボタンをクリックしダイアログボックスを閉じます。


AutoCAD LTの作図画面で、ワークスペースを「AutoCAD LTクラシック」に設定します。
プルダウンメニューの右端に「MyTool」が追加されていることが確認できるでしょう。

プルダウンメニューの「MyTool」からサブメニューをクリックして、それぞれのマクロを実行することになります。

MyTool」をクリックし、「初期設定」の「初期設定 A-S100」をクリックすると、必要なシステム変数が所定の値に設定されると共に、用紙の領域がポリラインで作成されます。

今回はここまでです。
次回以降は各マクロの意味、「寸法記入」、「線分系」のメニューの追加、IJCAD、BricsCAD上での同様のカスタマイズ等を解説していきます。

今後の予定(順不同)

・ イメージタイルメニューの活用
・ ポップアップメニューの活用
・ ツールバーのカスタマイズ    …等


次回更新は 7月12日(金)を予定しています。



メニューカスタマイズのノウハウを駆使して開発した「AutoCAD LT」 対応の建築・設備設計支援ツール『CustomARCH LT』シリーズを発売中です。

製品詳細については下記でご紹介しています。
    
CustomARCH LT 建築
    
CustomARCH LT 電気設備