カスタマイズ‎ > ‎メニュー‎ > ‎

AutoCADメニューの移植

AutoCADには、以下の3種類にメニューがあります。
  • mnu
  • cui (AutoCAD2006以降からサポート)
  • cuix (AutoCAD2010以降からサポート)
Bricscadでサポートしているメニューは以下の2種類になります。
  • mnu
  • cui
cui については、Bricscad でそのままロードすることができます。
mnu については、注意が必要です。


mnuファイルの移植時のポイント

■ プルダウンメニュー

AutoCADでは、以下のようにサブメニューセクションラベルの行にメニューバータイトルを記述できます。

***POP1
**FILE       [ファイル(&F)]
ID_New       [新規作成(&N)...\tCtrl+N]^C^C_new

Bricscadでは、サブメニューセクションラベルはメニューバータイトルと別の行にしなければなりません。

***POP1
**FILE
             [ファイル(&F)]
ID_New       [新規作成(&N)...\tCtrl+N]^C^C_new

■ プルダウンメニュー

メニュー定義キーワードについて
ツーバーセクションは次のように記述します。

***TOOLBARS
**TOOLS1
TAG1 [Toolbar ("ツールバー名", 方向, 表示, X 値, Y 値, 行数)]
TAG2 [Button ("ボタン名", ID 小, ID 大)]マクロ
TAG3 [Flyout ("フライアウト名", ID 小, ID 大, アイコン, エイリアス)]マクロ
TAG4 [Control (要素)]

AutoCADは定義キーワードに、TOOLBAR / BUTTON / FLYOUT / CONTROL というように大文字で記述してもエラーになりません。
Bricscadは Toolbar / Button / Flyout / Control と記述しないとメニューのロード時にエラーが発生します。

フライアウトの記述について
AutoCADはフライアウトのエイリアスが別のメニューファイルであってもボタンイメージが表示されますが、Bricscadは同じメニューファイルの必要があります。

例えば、以下のようなツールバーおよびフライアウトの記述がある場合
AutoCADでは、メニューグループ名が同じであれば、[**TB_ID_LINES]部の記述と
[**TB_ID_CLINES]部の記述が別々のメニューファイルになってもボタンイメージは表示される。
Bricscadでは、リンクが取れず、ボタンイメージが表示されなくなる。

**TB_ID_LINES
                 [_Toolbar("線", _RIGHT, _SHOW, 1, 1, 1)]
ID_CSTM_LINE       [_Button("線", ICON_LINE, ICON_24_LINE)]^C^CCSTM_LINE;
ID_CSTM_CLINE      [_Flyout("色線", ICON_RLINE, ICON_RLINE, _OTHERICON, CUSTOM.TB_ID_CLINES)] 
**TB_ID_CLINES
                 [_Toolbar("色線", _FLOATING, _HIDE, 90, 190, 1)]
ID_CLINES_RED      [_Button("赤", ICON_RLINE, ICON_RLINE)]^C^CCSTM_LINE_RED;
ID_CLINES_BLUE     [_Button("青", ICON_BLINE, ICON_BLINE)]^C^CCSTM_LINE_BLUE;
ID_CLINES_GREEN    [_Button("緑", ICON_GLINE, ICON_GLINE)]^C^CCSTM_LINE_GREEN;


■ メニューマクロ

マクロの記述について
AutoCADでは行末に + を記述して複数行に渡ったマクロ記述ができますが、Bricscadはマクロを一行で記述しなければいけません。

例えば、以下のようなコマンド[OPEN_STAND_DWG]を実行するメニューの場合

***MENUGROUP=CUSTOM
***POP1
**CUSTOM_FILES
                   [プロジェクト(&P)]
ID_OPEN_STAND_DWG  [開く(&O)]^C^C$M=._FILEDIA;1;._CMDDIA;1;+
                                    OPEN_STAND_DWG;._REDRAW;._FILEDIA;$(GETVAR,FILEDIA)

AutoCADでは、実行できますが、Bricscadの場合

コマンドを認識できません "+". 再度実行してください。

というメッセージが表示され、コマンド[OPEN_STAND_DWG]は実行されません。

コマンドの循環処理について
AutoCADではコマンドの前に * を付けるとコマンド循環できますが、Bricscadはユーザ入力のポーズがかからないため使用することができません。

例えば、AutoCADのメニューには、[作成]-[点]-[複数点] というコマンドがあります。このコマンドはメニューの記述は以下のようになっています。

ID_PointMult     [複数点(&P)]*^C^C_point 

このコマンドの記述を Bricscad メニューに適応すると、座標を指示することなく、コマンド[_point]が実行され、他の入力を受け付けない状態になってしまいます。