ME10マクロのページです
(本 文)

2004.01.03 更新


使ってのバグリポート待ってます。

    マクロの使い方
    バラメータとは
    補助メニューの作り方
    最後の補助メューへ戻るには
    環境の設定を変更するには
    正しいマクロが途中で終了する場合



マクロの使い方


ファィルを組み込む】
 1.ここから、必要なマクロファィルを取り出し、エディタ等でファィルを作って下さい。
   このファイルには、複数個のマクロが収容できます。(適当なファィル名でOK)
 2.あなたのコンピュータのディレクトリー(フォルダ)に格納して下さい。
 3.ME10のシステムが入っているディレクトリー(フォルダ)の中にある startup ファィルの最後に下記の呪文を書き込みます。
   1ファイル毎に1行が必要です。(順番は気にしなくても構いません。)
   Mf_layout.ma ファイルのある場所が E:\ME10\MACRO なら、この1行は次のようになります。

   INPUT ('E:\ME10\MACRO\Mf_layout.ma')

  (あまり詳しくない方は、すべてのマクロの INPUT文を書いて下さい。)


【使ってみる A】
  1.Mf_layout.ma ファイルの中に下記のマクロが有れば、コマンドを直接入力します。
    測定補助メニューを出すなら、Sm_screen_meas_1 と入力して下さい。
    下書き線の十字線を描くなら、Ma_cline_cross と入力して下さい。

【使ってみる B】
  1.ツールBOXに登録する。



バラメータとは


マクロを呼び出す場合に、必要なデータのことです。
マクロに引き続いて、入力又は、半角のスペース(区切り)を空けて書き込みます。
いくつのデータが必要かは、マクロによって決められています。
もちろん 内容も決められています。

使い方:テキストの[文字列の連結]を例に取ります。

 Ma_unite 1

このように書きます。ここでマクロ名 [Ma_unite] の後ろに少し離れて書かれている、[1] がパラメータです。
このマクロは、{0} が コピーをし、[1]が移動連結なので、この場合は、移動連結となります。

さてマクロの中を見ましょう。[PARAMETER] の文字が見えます、これがパラメータの正体です。
後に続く[Erase] がマクロの中で使われるパラメータのデータを判別する変数名です。
尚 パラメータはマクロによっていくつでも使用できます。


【マクロの例】


{ 文字列の連結
2000.05.14-2000.05.19}


DEFINE Ma_unite
PARAMETER Erase     {引用文字の削除=1}


LOCAL Txet_modify_point {変更文字列の指示位置}
LOCAL Txet_modify_text  {変更する文字列}


 −−以下は省略−−




補助メニューの作り方


ツールボックスで不便を感じている方は、補助メニューを作りましょう。
 【 】内は、サンプルです。使われる場合は、【】を外して下さい。

 1.補助メニューに名前を付けます。この名前はME10で使われているいかなる名前とも合わないものにして下さい。


  調べ方。
    次のコマンドを入力して、全てのマクロをファィルにします。
    SAVE_MACRO ALL E:\ME10\MACRO\all_macro.ma 
    ( E:\ME10\MACRO\all_macro.ma はME10が作るファィルの場所と名前です。適宜変更して下さい。)
    内容は、エディタ等で調べて下さい。


  【Sm_screen_assist_1】

 2.枠の割付を決めます。
    横を2列にする場合は Layout_body_5  が使えます。
    横を3列にする場合は Layout_body_10 が使えます。
    割付を変えたい場合はメニュー割付Layout_body_51を参考にして、縦棒の位置を変えて下さい。
  名前も変えて下さい(Layout_body_51 が枠の名前です)。

  【2列としたいので、Layout_body_5 を利用し、マクロを作りません。】


 3.メニュー枠の定義をします。
    レイアウト名定義と表示を 参考にして下さい。
    マクロ内の { から } までは、メモとして扱われます。
    コマンド、バラメータ等の区切りは、半角のスペースです。(全角と間違わないように!)


  【{ 私のメニュー1 2000.01.01}
DEFINE Sm_screen_assist_1_layout
CURRENT_MENU 'Sm_screen_assist_1'
CURRENT_SCREEN 1
MENU_LAYOUT
Layout_body_5
Menu_home_point_down
END
LET Sm_screen_assist_1_layout_name 'Sm_screen_assist_1'
END_DEFINE 】


 4.メニュー枠の名前変換を定義します。
    レ イアウト名定義と表示を参考にして下さい。


  【{ 私のメニュー1 2000.01.01}
   DEFINE Sm_screen_assist_1_layout_name
    Sm_screen_assist_1_layout
   END_DEFINE 】


 5.メニューの内容を決めます。
    下記の5個を 私のメニュー1 に登録するとします。
      計算メニュー
      下書き線・中心点と角度・テキスト
      下書き線・中心点と角度・R
      作成中のファィルを消去
      インプット


  【{ 私のメニュー12000.01.01}
DEFINE Sm_screen_assist_1
{Sm_screen_assist_1 はマクロの名前です。}
LET Lastmen 'Sm_screen_assist_1'
{私のメニュー1を記憶}
MENU_BUFFER ON
CURRENT_MENU Sm_screen_assist_1_layout_name
{メニュー枠をセット}
T_clear_menu_1
{メニュー内を初期化}
Menu_control_icons
{1段目の移動、消すなどの記号をセット}
MENU Colo0 Bcol5 CENTER '私のメニュー1' '' 1 3
{メニューのタイトルです。半角では15文字まで!}
MENU Colo0 Bcol0 CENTER '' '' 2 1
MENU Colo0 Bcol0 '' '' 2 2


MENU Colo0 Bcol0 '計算メニュー' 'Sm_screen_meas_1' 3 1
{最初の ''の間はタイトル、次の ''の間にマクロ、コマンド等の実行するものをを入れます。}
MENU Colo0 Bcol0 '下書・芯・文' 'Ma_cline_center_angle_text' 3 2
MENU '' '' 4 1
MENU Colo0 Bcol0 '下書・芯・R' 'Ma_cline_center_angle_r' 4 2
MENU '' '' 5 1
MENU '' '' 5 2
MENU Colo0 Bcol0 CENTER 'インプット' 'INPUT Fbt_dtabs_all_on 0' 6 1
{CENTER は文字をメニュー枠の中央に表示します。}
MENU '' '' 6 2
MENU Colo0 Bcol2 '作成中消去' 'EDIT_PART TOP DELETE ALL CONFIRM END' 11 1
{Bcol2は 目立つようにメニューを赤色にしました。}
MENU '' '' 11 2

END_DEFINE 】


 6.完成です。
   出来た、これらのマクロを適当な名前のファィルに書き込みます。
   インプットで読み込むか、startup ファィルに INPUT 文を書き込みます。
   (ME10に INPUT で読み込まれるファィルなら、startup ファィルで無くてもOKです。)

   E:\ME10\MACRO に Mf_my_menu.ma の名前で保存したなら、この1行は次のようになります。

   【INPUT ('E:\ME10\MACRO\Mf_my_menu.ma')】


 7.使ってみる。

  【使ってみる A】
   コマンドを直接入力します。Sm_screen_assist_1と入力して下さい。
  【使ってみる B】
   ツールBOXに登録します。
  【使ってみる C】
   他のメニューの開いている所にタイトル【私用1】とコマンド Sm_screen_assist_1 を書き込みます。
   書き込み方は、メニューの内容を決めます。 のMENU の行を参考にして下さい。



最後の補助メューへ戻るには


 たとえば「作 図 1」から「作 図 2」に変更して、「図形編集 1」等の他の補助メニューへ行き、元の「作 図 2」メニューに戻るには、「作 図 1」、「作 図 2」の順に戻る作業を繰り返す必要があります。


 面倒と感じている人は、最後の補助メニューを記憶するようにしましょう。
 ここでは、「作 図 1」のメニューを例とします。 他に関係するメニューは「作 図 2」と「スプライン」です。
 (注)文の中に出てくる鍵括弧は、見やすくするだけですので、入力に使う場合は省いてください。


 1.現在のME10内のマクロを調べます。

   取り出し方。
    次のコマンドを入力して、全てのマクロをファィルにします。
    「SAVE_MACRO ALL E:\ME10\MACRO\all_macro.mac」
    ( E:\ME10\MACRO\all_macro.mac はME10が作るファィルの場所と名前です。適宜変更して下さい。)


 2.エディタ等でタイトルを検索してメニューのマクロを調べます。
   「作 図 1」を検索します。
   「MENU Colo0 Bcol5 CENTER '作 図 1' '' 1 3」が見つかりました。
   (この行で「作 図 1」が画面に表示されているタイトルです。
    最後の「1 3」がタイトルの位置を示します。もし 「1 3」と違えば他を探してください。)
   残りの「作 図 1」、「スプライン」も同じようにして、調べます。

   (注)8行戻った、「DEFINE Sm_create_1」がマクロ名です。つまりメニューもマクロで出来ています。
      後の「END_DEFINE」までがマクロです。


 3.見つかったマクロを1つのファィル入れて、保存します。。
   ファィル名は適当につけて下さい。この例では、「Mf_menu2_1.mac」とします。
   内容は、「Sm_create_1」、「Sm_create_2」、「Sm_create_3」の3マクロです。


 4.見つかったマクロに記憶する行を書き込みます。
   最後のメニューを覚えるマクロ名を決めます。この例では、「Gl_last_menu_create」とします。
   「作 図 1」を例に取ると、「LET Gl_last_menu_create Sm_create_1」となります
   書き込む位置は、「LET Lastmen 'Tm_create_1'」の次がよいと思います。

   その他のマクロにも書き込みます。
    「LET Gl_last_menu_create Sm_create_2」<−(「作 図 2」の例)
    「LET Gl_last_menu_create Sm_create_3」<−(「スプライン」の例)


 5.記憶からメニューを選択するマクロを作ります。
   戻ってきた場合のメニューを選択する、マクロ名を決めます。この例では、「Ma_last_menu_create」とします。
   このマクロを先ほどのマクロファィルに追加します。


  【{ 記憶メニュー選択・作図 2000.01.01
   }
   DEFINE Ma_last_menu_create
    IF (Gl_last_menu_create = 'Tm_create_1') {もし作図1なら}
    Tm_create_1
    ELSE_IF (Gl_last_menu_create = 'Tm_create_2') {もし作図2なら}
    Tm_create_2
    ELSE_IF (Gl_last_menu_create = 'Tm_create_3') {もしスプラインなら}
    Tm_create_3
    END_IF
   END_DEFINE】
   (マクロ内の「{」から「}」までは、注釈として扱われます。)


 6.メインメニューを改造します。
   最初に作った、全てのマクロをファィルからメニューのマクロを探します。
   このマクロを先ほどのファィルに追加します。
   「MENU Colo0 Bcol5 '作 図' 'Tm_create_1' 1 1」の Tm_create_1を Ma_last_menu_create に入れ替えます。
   ファィルを保存して下さい。

   調べ方
    先ほどの「全てのマクロをファィル」から調べます。
    ME10の画面の右端にある、メニューの言葉で検索します。
    私は、「Dsp_menu」のマクロ名で見つかりました。


 7.最後の仕上げです。
   Startup 又は custom.mac に次の2行を追加します。

   「LET Gl_last_menu_create Sm_create_1」<−最初のメニューの記憶(作図1)
   「Ma_last_menu_create」<−−−−−−−−−ME10が最初に選択する、メニュー(作図1)


 8.完成です。



環境の設定を変更するには


ME10は、最初から色などの[環境]が決められている場合があります。
何かを変更したいと思っている人は、ME10の現在の環境を変更しましょう。
 【】内は、サンプルです。使われる場合は、【】を外して下さい。

 1.環境ファィルをME10から作成します。
   次のコマンドを入力してからファイル名(ENV.MAC等)を入力して、環境をファィル化します。

   【SAVE_ENVIRONMENT】


 2.ファイルの中を編集します。
   (解りにくい場合は、ENV.MACRO を参照して下さい。解る範囲でコメントが書かれています。)


 3.ファィルを保存して下さい。


 4.最後の仕上げです。
   Startup 又は custom.mac に INPUT文 を追加します。
   注 環境を指定するファィルですので、出来るだけ Startup にして下さい。
     書き込む位置は、オリジナルの内容の最後で、後から書き込んだ内容の最初が良いでしょう。


 5.再立ち上げで、変わらない様でしたら、この後のマクロで変更されていると考えられますので、コマンドをキーにして、マクロをの書き込まれているファィルを探して対策を行います。
   (強引に変えたい場合は、 Startup の最後に INPUT文を移動して下さい。マクロが再び実行されると、元に戻りますが!)



正しいマクロが途中で終了する場合


ME10は、マクロが増えすぎると、メッセージを出さずに、マクロを終了させる事があります。


1.確認
  INPUT文で、読み込んだ不要なマクロを読み込まないようにして、再起動させましょう
  INPUT文の最初に { を記入し、最後に } を書き込んで、コメント化しましましょう。
  こので正常にマクロが作動する場合は、マクロの入れすぎが考えられます。
  この場合は不要なマクロを入れないか、外しましょう。


2.対応方法1
  1.の確認で行ったように、INPUT文を読み込まないようにしましょう。
  必要な時に読み込みましょう。
 使い終わったら、外しましょう。(面倒ですが!)


3.対応方法2
  必要な時に組み込んで使用すれば、外すマクロを作りましょう。

  a.必要なマクロが入った、ファィルを全て、確認します。
  b.組込用のマクロを作ります。
    この中には、INPUT文を書き込み、マクロに入った、ファィルを読み込むようにします、
    これらの文に引き続いて、実行するマクロ文を書き込みます。
  c.取り外しのマクロを作ります。
    この中には、INPUT文で読み込んだ、ファィルの中にある、マクロで取り外すマクロを調べます。
    このマクロを取り外す文を書き込みます。

     例:Ma_stamp_drawを 取り外したい場合。

      DELETE_MACRO Ma_stamp_draw

  d.実行するマクロの最後に、取り外しのマクロの文を書き込みます。
  e.今まで実行していた、マクロの代わりに、組込用のマクロを実行します。


参考例:(ファィルにすれば、実行可能です。)

   実行マクロファィルの内容(SAPLE.MAC)
DEFINE Ma_aa
DISPLAY 'test'
Ma_zz         {書き込んだ取り外し用マクロ}
END_DEFINE

   組込用マクロファィルの内容(IN_OUT.MAC)
DEFINE Ma_aa      {組み込むマクロ}
INPUT SAPLE.MAC    {読み込むマクロファィル}
Ma_aa         {実行するマクロ}
END_DEFINE

DEFINE Ma_zz      {取り外すマクロ}
DELETE_MACRO Ma_aa   {INPUT文で組み込んだ SAPLE.MAC 内のマクロ}
END_DEFINE

   例を実行してから、コマンドラインから Ma_aa と入力しても、エラーになります。
   つまり、マクロは取り外されたことになります。



気をつけて作りました、使用してのトラブルに責任は持てませんが、
自由にお使い下さい。(伏見 表



お願い:どなたかME10を条件無しで、「使っても良いよ」言われる方が有れば、連絡下さい。
    宜しくお願いします。