AutoCADLT2002 Tips−07




  メニュ−ファイルの構造
 AutoCADLTは汎用CADです。機械屋さんも建築屋さんも土木屋さん も使えます。しかし、土木屋さんには必要ない物や、本当は必要な物が 無いことがあります。少しカスタマイズすることが必須だと思います。 ファイル構造はどうなっているの?

 
インストールDIR
 

 標準インストールをした場合、AutoCADLTのインストール先は、 \Program Files¥AutoCADLT2002だろう。この下にDrv, Fonts,Help,Plot Styles,Plotters,Sample,Support,Template,WebDepot とディレクトが作られている。このうちのSupportに管理用ファイルがある。

 ここにはaclt.mns,aclt.mnc,aclt.mnrというファイルがあり、環境 設定の大半がここに記録されている。インストールからのタイムスタンプ を見ると、このファイル以外は現在まで更新されていないことが分る。 確かにそうなのだろう。この背景でPCのレジストリーに動的には多くの 情報が記録されているだろうことは推測される。それと対応して¥Windowsの Profileにもautodeskの項目がありデーターが記録されている。

 ルートディルのaclt2002.cfgがインストール時の設定ファイル。 ¥Supportのaclt.mnuがメニュー初期設定ファイル。 インストールが終り役割を終えている。設定の原本aclt.mnuはタイムスタンプは古いままだ。参照されただけである。何かあったら、又ここから スタートということだろう。

 
aclt.mns  と aclt.mnc と aclt.mnr
 

 aclt.mnuによって作られた環境は、どこのオフィスでも 同じだろう。例えば、ツールバーは 次の 4 つが表示される。
  • Standard[標準]ツールバー
  • Object Properties[オブジェクト プロパティ]ツールバー
  • Draw[作成]ツールバー
  • Modify[修正]ツールバー

 当社は測量業務もする。Inquiry[情報]を追加した。こうした作業で、それぞれのオフィス環境が記録されてゆく。それをフォローしている のがaclt.mns。テキストファイルであるから「メモ帳」 で閲覧できる。
 ヘルプに記述によれば、PC を立ち上げた時の読み込みの仕組みはこうだ。
  • MNS---メニュー ソースファイル
  • MNC---コンパイルされたメニューファイル
  • MNR---メニュー リソースファイル

AutoCAD LT は上記ファイルを次の順序で検索してロードします。
  1. MNSをライブラリ検索手順(オプションの設定)に従って検索。
  2. MNSを見つけたら、同じディレクト内で同じ名前のMNCを検索。同じ日付またはそれ以降の日付の MNS ファイルが見つかると、その MNC をロード。見つからなかった場合は、MNSをコンパイルして、同じディレクトリに新しい MNCを生成し、メモリーにロード。
  3. 手順 1 で MNS が見つからなかった場合は、指定された名前のMNCをライブラリ検索手順に従って検索。そのMNC ファイルが見つかったらそれをロード。
  4. MNSも MNCも見つからなかった場合は、ライブラリ パスで、指定された名前のMNUを検索。このファイルが見つかったら、MNC および MNS ファイルにコンパイルしてから、MNCをロード。
  5. 指定された名前のメニュー ファイルがどれも見つからなかった場合は、エラー メッセージを表示し、別のメニューファイル名の入力を求めるプロンプトを表示。
AutoCAD LT が MNCをコンパイルするたびに、MNRが生成される。このファイルにはメニューで使用されるビットマップが収録されている。

MNS---メニュー ソースファイル。これが環境設定のキーファイル。

¥Supportのaclt.mnsこれを「ベースメニュー」と呼ぶ。カスタマイズは 可能であるが、必要最小限にしておく。少なくとも土木共通仕様 までに留めておくことにしている。情報交換を考えると、共通プ ラットホームがないといけない。
 AutoCAD LT2002にはメニューグループという概念が導入されている。 当社のノウハウでカスタマイズした環境は別ネームで別ディレクトリー で管理して行くことにしている。「ベースメニュー」とカスタムメニューは 切り換えが可能なシステムではある。


 
環境設定キーファイル
 

 メニュー ソースファイルの中身な何だろう。何が記述されて いるのだろう。
 ***section_name 形式のセクション ラベルによって識別される 構造になっている。

セクション ラベル メニュー領域
***MENUGROUP メニュー ファイルのグループ名
***BUTTONSn ポインティングデバイス ボタン メニュー(n は 1 から 4)
***AUXn システムのポインティングデバイス メニュー(n は 1 から 4)
***POPn プルダウン/カーソル メニュー領域(n は 0 から 16)
***TOOLBARS ツールバーの定義
***IMAGE イメージ タイル メニュー領域
***SCREEN スクリーン メニュー領域
***TABLETn タブレット メニュー領域(n は 1 から 4)
***HELPSTRINGS プルダウン メニューやカーソル メニューをハイライト表示したとき、またはカーソルがツールバー ボタンの上を通るときにステータス バーに表示される文字列
***ACCELERATORS ショートカット(アクセラレータ))キーの定義

AUXがマウスに対応。
当社はインテリマウスを使用。
AutoCAD LT でサポートしているIntelliMouse の動作。
操作内容
操作方法
ズームイン/ズームアウト
ホイールを前に回転すると拡大ズームし、後ろに回転すると縮小ズームします。
オブジェクト範囲までのズーム
ホイール ボタンをダブルクリックします。
画面移動
ホイール ボタンを押し下げたまま、マウスをドラッグします。
画面移動(ジョイスティック)
[Ctrl]キーとホイール ボタンを押し下げたまま、マウスをドラッグします。
[O スナップ]メニューの表示
システム変数 MBUTTONPAN を 0 に設定し、ホイール ボタンをクリックします。

メニュー ソースファイル

***AUX1
$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,5),GRIP_),$P0=ACLT.GRIPS $P0=*);
$P0=SNAP $p0=* 
^C^C
^B
^O
^G
^D
^E
^T

***AUX2
$P0=SNAP $p0=* 
$P0=SNAP $p0=* 

***AUX3
$P0=SNAP $p0=* 

***AUX4
$P0=SNAP $p0=* 

[オプション]>[システム]の設定値が反映されている。


BUTTONS、イメージタイル、スクリーン、タブレット等は使用していない。 この領域の設定値は当社システムに特に関係しない。

アクセラレータ キー(ショートカットキー) [F1]キーや、[Ctrl]+[O]を入力してファイルを開いたり、[Ctrl]+[S]を入力してファイルを保存することができます。ショートカットキーは、メニュー項目とツールバーボタンの両方に関連付けられてる。新しいショートカットキーを作成したり、既存のものを修正することもできる。
***ACCELERATORS
ID_Hyperlink   [CONTROL+TOOLBAR+"K"]
[CONTROL+"L"]^O
[CONTROL+"R"]^V
ID_SelAll      [CONTROL+"A"]
ID_Copyclip    [CONTROL+TOOLBAR+"C"]
ID_New         [CONTROL+TOOLBAR+"N"]
ID_Open        [CONTROL+TOOLBAR+"O"]
ID_Print       [CONTROL+TOOLBAR+"P"]
ID_Save        [CONTROL+TOOLBAR+"S"]
ID_Pasteclip   [CONTROL+TOOLBAR+"V"]
ID_Cutclip     [CONTROL+TOOLBAR+"X"]
ID_Redo        [CONTROL+"Y"]
ID_U           [CONTROL+"Z"]
ID_Pickstyle   [CONTROL+TOOLBAR+"H"]
ID_Modify      [CONTROL+TOOLBAR+"1"]
ID_Content     [CONTROL+TOOLBAR+"2"]

 以上のように、aclt.mnsはWindowOSレベルからCADインターフェース までの広範な設定ファイルである。中核はカスタマイズ可能な ***POPと***TOOLBARS領域には違いないが、OSレベルの部分を考えると、 アクセスには十分注意が必要なことが理解できる。 定期的にaclt.mnsのバックアップを作成しておくことにしている。

ファイルのトップ***MENUGROUPセクションにあるグループ名は AutoCAD LT2002のメニューファイル管理用のキーワードとも言える。
2002のメニューファイル管理を司るのが、MENULOAD コマンドだ。 [メニュー カスタマイズ]ダイアログ ボックスを使って、メニューをロードし、メニュー バーを修正する。
注目するのは、ベースファイルと複数の部分メニューファイルが 共存できることだ。別ディレクトリーの別ネームのメニューファイル を合成する機能がある。部分メニューファイルはメニューファイル の全セクションを記述していなくてもいい。部分メニューをロードしてから、「ベースメニュー」のメニュー バーにプルダウン メニューを追加したり、再配置したりできる。これにより、複数のメニューファイルを効果的に使用できる。その キーワードが グループ名である。メニューグループ名とセクション名、タグ名を指定することで、メニュー項目の追加や削除を行う。同じ MENUGROUP 名を重複定義することはでき無い。グループの住民台帳管理 は厳格に行われている。矛盾する MENUGROUP でメニューをロードしようとすると、MENULOAD要求はキャンセルされる。と、ヘルプに記載されている。信じることにする。
AutoCAD LT を起動したとき、前回ロードしたメニューとメニュー バーの設定がレジストリーから呼び出される。8 個までの部分メニューと 16 個までの POPメニューをロードおよびロード解除できる。

 以上より、当社では以下の方針でカスタマイズを継続して行くことにした。
ボタン、イメージ、POPなどの定義が含まれた完全なメニュー定義の「ベース メニュー」は、¥Supportのaclt.mnsとする。定期的 にバックアップを取る。バックアップ保存先は¥Support以外とする。名称はaclt.mns031001のように日付け形式とする。
¥Support以外に部分メニューのディレクトリーを作りマクロ改良 のツールバー部分メニュー保存場所とする。メニューバー部分メニューもこの場所に作りベース メニューへ組込み利用する。
部分メニューのディレクトリーへ パスを通すことも可能であるが、ヘルプ記載のロード手順を 理解すると不完全な部分メニューが 「ベース メニュー」として登録される可能性がある。 パスは通さないことにする。


 
ツールバ−の管理
 

 アイコン、AutoCADではボタンと呼ぶのですが、これを並べておくのが ツールバー。初期設定ではStandardをはじめ4個のツールバーが ある。ここに書き込まれたマクロコマンドを見ながら、マクロの 勉強をしました。ソースを見る一番早道は、ボタンにマウスを合わせて、 右クリック。プルダウンの一番下にカスタマイズがありますからクリック。 こうしておいて、お目当てのボタンを右クリックでプロパテ−でマクロが見れます。
 でも、見るだけにしましょう。自作のボタンは自分のツールバーに 並べておきましょう。

 \mymenuというデイレクトリを新規作成します。mymenu.mnuというTEXTファイルをここに作りました。下のリストの上半分がmymenu.mnu。それをMENULOADで読み込みます。するとmymenu.mnsが出来ます。下半分が mymenu.mns。同時に、mymenu.mnc,mymenu.mnrも出来ているのを確認 しておきましょう。

//
//AutoCADLT menufile
//

***MENUGROUP=MyMneu

//
//AutoCADLT menufile end
//


//
//      AutoCAD LT メニュー ファイル - C:\Program Files\AutoCAD LT 2002\mymenu\mymenu.mnc
//

***MENUGROUP=MyMneu


//
//      AutoCAD LT メニュー ファイルの終わり - C:\Program Files\AutoCAD LT 2002\mymenu\mymenu.mnc
//
この作業は、部分メニューのグループを作るだけの作業のようです。


MENULOADはキーボードから打ち込むのですが、
ツール>カスタマイズ>メニューバーからも入れます。 新たにグループを作るダイアログが上です。参照ボタンで対象mnuファイル を選択、ロードをクリック。警告が出ますが、「すべて置き換え」の チェックが外れているのを確認して「はい」をクリック。


ツール>カスタマイズ>ツールバーから、 新たにツールバーを作るダイアログに入ります。「ツールバー」で名前を決め、新規作成します。この時「ベースメニュー」のacltグループではなくmymenuを 選択します。すると、小さな小さな「ツールバー」が画面にできています。 ちゃんと名前がついているか確認しましょう。「コマンド」タブに切り換え、必要なボタン をドラック&ドロップで2、3入れます。これで自分のツールバーが 出来ました。

いつも手元に置いておきたいボタンは何でしょうか。まず、 そんな物を集めましょう。「複写」、「削除」、「UNDO」、 「REDO」。これは必需品。いつでも手元に引き寄せて 使えば便利でしょう。
それ以外で一つだけと言えば、何にします?「オブジェクト画層を現在画層にする」を僕は選びます。同じ物は同じ画層。これはCADの鉄則です。 CADデーター資産が溜まると、新たに画くより「コピーして複写して」 の作業が増えてきます。この時、「オブジェクト画層を現在画層にする」 を忘れることがよくあります。これは手元に置きましょう。


「連続複写」はよく使います。複写でMオプションなのですが、 Mを忘れがちです。半分くらい終ったら、今更と使いません。 複写でMオプションの一発バージョンが欲しいですね。マクロ を改良しなければなりませんが。

^C^C_copy;\;M;\\^Z
注)最後に^Zを入れてある。
(自動的に入るspace防止)


こうして作り上げた僕専用もツールバー。職人さんの道具箱。
中身に興味あります?

//
//AutoCADLT menufile
//

***MENUGROUP=MyMneu

//
//AutoCADLT menufile end
//


//
//      AutoCAD LT メニュー ファイル - C:\Program Files\AutoCAD LT 2002\mymenu\mymenu.mnc
//

***MENUGROUP=MyMenu

***TOOLBARS
**HAIKIN
ID_haikin_0    [_Toolbar("haikin", _Floating, _Show, 149, 328, 1)]
ID_Erase_0     [_Button("削除", "ICON_16_ERASE", "ICON_16_ERASE")]^C^C_erase 
ID_Copy        [_Button("複写", "ICON_16_COPYOB", "ICON_16_COPYOB")]^C^C_copy 
ID_U_0         [_Button("元に戻す", "ICON_16_UNDO", "ICON_16_UNDO")]_u 
ID_Redo_0      [_Button("やり直し", "ICON_16_REDO", "ICON_16_REDO")]^C^C_mredo 1 
ID_Ai_molc_0   [_Button("選択オブジェクトを現在画層", "ICON_16_MOLC", "ICON_16_MOLC")]^C^Cai_molc 
ID_UserButton_0 [_Button("単一線", "ICON.bmp", "ICON_16_BLANK")]^C^C_line;\\;
ID_Copy_0      [_Button("連続複写", "ICON6334.bmp", "ICON_16_COPYOB")]^C^C_copy;\;M;\\^Z
ID_Arrpol_0    [_Button("配列複写 円形状", "ICON_16_ARRPOL", "ICON_16_ARRPOL")]^C^C_array;_p 
ID_Break       [_Button("部分削除", "ICON_16_BRE2PT", "ICON_16_BRE2PT")]^C^C_break 
ID_ZoomRealt   [_Button("リアルタイム ズーム", "ICON_16_RTZOOM", "ICON_16_RTZOOM")]'_zoom ;
ID_Pan         [_Button("リアルタイム画面移動", "ICON_16_RTPAN", "ICON_16_RTPAN")]'_pan 


***HELPSTRINGS
ID_BREAK       [選択したオブジェクトを 2 点間で分割:  BREAK]
ID_AI_MOLC_0   [選択したオブジェクトの画層を現在の画層に設定]
ID_ZOOMREALT   [現在のビューポートのオブジェクトの表示サイズを拡大/縮小:  ZOOM]
ID_U_0         [直前に実行したコマンドの動作を取り消す:  U]
ID_ZOOMDYNAM_0 [図面内の表示したい部分をダイナミックに指定してズーム:  ZOOM]
ID_REDO_0      [直前に実行した UNDO または U コマンドの動作を取り消す:  MREDO]
ID_ARRPOL_0    [円形状の配列複写を作成]
ID_PAN         [現在のビューポート内でビューを移動:  PAN]
ID_USERBUTTON_0 [始点終点]
ID_ERASE_0     [図面からオブジェクトを削除:  ERASE]
ID_COPY_0      [オブジェクトの複製を作成:  COPY]
ID_COPY        [オブジェクトの複製を作成:  COPY]

//
//      AutoCAD LT メニュー ファイルの終わり - C:\Program Files\AutoCAD LT 2002\mymenu\mymenu.mnc
//

2003.10.10
by Kon