ME10マクロのページです
(表示方法)

2001.04.08 更新 



リスト


macro.lzh#(マクロファィルです。)

   1.選択表示の使い方 2001.03.08,2001.01.07
   2.選択表示・全表示 2001.01.07
   3.選択表示・表示終了 2001.01.07
   4.選択表示・文字列削除 2001.01.07
   5.選択表示・パーツ選択削除 2001.01.11,2001.01.07
   6.選択表示・表示開始 2001.03.08,2001.01.07
   7.選択表示・パーツ選択追加 2001.01.07
   8.選択表示・パーツ選択開始 2001.01.07
   9.先頭の数値文字列を数値にする 2001.03.08
   10.選択表示・パーツ群選択削除 2001.03.08
   11.選択表示・パーツ群選択 2001.03.08
   12.選択表示・パーツ群選択開始 2001.03.08
   13.選択表示・要素選択削除 2001.04.08
   14.選択表示・要素選択 2001.04.08
   15.選択表示・要素選択開始 2001.04.08



選択表示の使い方
 1.これらのマクロを使えるようにして下さい。(マクロの使い方を参照)
   下メニューのサンプルが有りますので良かったら使って下さい。

個別のパーツ対象
 2.最初なら Ma_appear_part_begin を使い、パーツを選択していきます。
   (ちらっと、選択したパーツが表示されます。)
   (この場合、以前に選んだ、要素、パーツ、群の選択表示の印は、削除されます。)
   選択を終了をすると[ESC]キーを押してマクロから抜けます。
 3.カレントビューにこれらの選択したパーツだけの表示に変えるには、Ma_appear_part_on を使います。
 4.この表示方法を抜けて、全てのパーツを表示するには、Ma_appear_part_escapeを 使います。
 5.追加をしたい場合は、Ma_appear_part_add を使います。
   パーツが見えない場合は、選んで追加できませんので、下記のいずれかで選択して下さい。
    a.他のビューポートで選ぶ。
    c.一旦選択表示を終了して、再び選び直す。
    b.全表示をさせて、選び、再び表示に戻る。
 6.表示をしたく無いパーツは、Ma_appear_part_kill を使うと、消すことが出来ます。
   選択後の再表示は、Ma_appear_part_on を用います。
 7.Ma_appear_part_word_delは 表示用の属性文字列を無くします。
    表示用の[表示属性文字列]を設定しています。
    選択表示をしている途中で、ファィルをセーブすると、文字列が要素の中に残ります。
    実害はないのですが、気持ちがすっきりしないので、無くすためのマクロです。
 

群表示(指定パーツの子パーツ、孫パーツに向かっての全てのパーツを表示)
 8.最初ならMa_pack_part_begin を使います。
   (この場合、以前に選んだ、要素、パーツ、群の選択表示の印は、削除されます。)
 9.群を追加する場合は、Ma_pack_select を用います。
 10.群を無くする選択には、Ma_pack_kill を用います。
 11.選択後の再表示は、Ma_appear_part_on を用います。

要素表示
 12.最初なら Ma_requisite_begin を使います。
    (この場合、以前に選んだ、要素、パーツ、群の選択表示の印は、削除されます。)
 13.要素を追加する場合は、Ma_requisite_add を用います。
 14.要素を無くする選択には、Ma_requisite_kill を用います。
 15.選択後の再表示は、Ma_appear_part_on を用います。



選択表示・全表示 2001.01.07
}
DEFINE Ma_appear_part_all

  SHOW GLOBAL ALL ON                              {図形を表示}
  SHOW DIMENSIONS ON                              {寸法を表示}
  SHOW VERTEX OFF                                 {頂点を消す}

END_DEFINE



選択表示・表示終了
 2001.01.05
}
DEFINE Ma_appear_part_escape
  LOCAL Sign_word                                 {表示属性文字列}

  LET Sign_word '$$appear_part$$'                 {表示のキーワード}

  Ma_appear_part_word_del                         {表示用の属性文字列を削除}
  Ma_appear_part_all                              {全表示にする}
  CHANGE_CURRENT_INFO Sign_word ''                {今後の描画要素用の表示属性文字列削除}

END_DEFINE



選択表示・文字列削除
 2001.01.05
}
DEFINE Ma_appear_part_word_del

  CHANGE_GLOBAL_INFO '$$appear_part$$' ''

END_DEFINE



選択表示・パーツ選択削除
 2001.01.05-2001.04.08
}
DEFINE Ma_appear_part_kill
  LOCAL Sign_word                                 {表示属性文字列}
  LOCAL Point                                     {選択した点}
  LOCAL Part_id                                   {カレント・パーツのユニークなパーツ名}

  LET Sign_word '$$appear_part$$'                 {表示のキーワード}
  INQ_ENV 7
  LET Part_id ('~' + (INQ 302))                   {カレント・パーツのユニークなパーツ名を保存}

  LOOP
    READ PNT '** 表示を抹消するパーツをクリックして下さい。(選択を終了なら [ESC] キーを押して下さい。) **' Point
    EDIT_PART Point                               {指定パーツに移る}
    CHANGE_ELEM_INFO Sign_word '' ALL             {表示属性文字列の削除}
    EDIT_PART Part_id                             {元のパーツに戻る}
  END_LOOP

END_DEFINE



選択表示・表示開始
 2001.01.05-2001.03.08
}
DEFINE Ma_appear_part_on
  LOCAL Sign_word                                 {表示属性文字列}

  LET Sign_word '$$appear_part$$'                 {表示のキーワード}

  SHOW GLOBAL ALL OFF                             {図形を消す}
  SHOW DIMENSIONS OFF                             {寸法を消す}
  SHOW VERTEX OFF                                 {頂点を消す}
  SHOW GLOBAL INFOS Sign_word ON                  {選択されたパーツの表示}
  ADD_CURRENT_INFO Sign_word END                  {今後の描画要素用の表示属性文字列}

END_DEFINE



選択表示・パーツ選択追加
 2001.01.05
}
DEFINE Ma_appear_part_add
  LOCAL Sign_word                                 {表示属性文字列}
  LOCAL Part_id                                   {カレント・パーツのユニークなパーツ名}
  LOCAL Point                                     {選択した点}

  LET Sign_word '$$appear_part$$'                 {表示のキーワード}

  INQ_ENV 7
  LET Part_id ('~' + (INQ 302))                   {カレント・パーツのユニークなパーツ名を保存}

  LOOP
    READ PNT '** 選択表示をするパーツをクリックして下さい。(選択を終了なら [ESC] キーを押して下さい。) **' Point
    EDIT_PART Point                               {指定パーツに移る}
    ADD_ELEM_INFO Sign_word ALL END               {パーツの全要素に文字列を書き込む}
    EDIT_PART Part_id                             {元のパーツに戻る}
  END_LOOP

END_DEFINE



選択表示・パーツ選択開始
 2001.01.05
}
DEFINE Ma_appear_part_begin

  Ma_appear_part_word_del                         {文字列削除}
  Ma_appear_part_add                              {パーツ選択}

END_DEFINE



先頭の数値文字列を数値にする
  2001.03.04
}
DEFINE Ma_pack_value_head
  PARAMETER Letter
  PARAMETER Separator

  LOCAL Length

  LET Letter (TRIM Letter)                        {先頭のスペースを取り除く}
  LET Length ((POS Letter Separator) - 1)         {数値の文字数を得る}
  LET Letter (SUBSTR Letter 1 Length)             {数値の文字列を切り出す}
  LET Gl_fruit (VAL Letter)                       {数値に変更}

END_DEFINE



選択表示・パーツ群選択削除
  2001.03.04
}
DEFINE Ma_pack_kill
  LOCAL Part_id                                   {カレント・パーツのユニークなパーツ名}
  LOCAL Table_name                                {データのテーブル名}
  LOCAL Select_Part                               {選択されたパーツのユニークなパーツ名}
  LOCAL Select_Part_len                           {ID名の長さ}
  LOCAL Select_Part_queue                         {ID名の数値の文字列}
  LOCAL Select_Part_value_id                      {ID名の数値}
  LOCAL Select_Part_row                           {指定パーツの種類数}
  LOCAL Select_Part_value                         {指定パーツの数}
  LOCAL Data_row                                  {テーブルの一行データ}
  LOCAL Sign_word                                 {表示属性文字列}
  LOCAL Individual_id                             {個別パーツのID}

  LET Table_name '##part_data##'                  {データのテーブル名}
  LET Sign_word '$$appear_part$$'                 {表示のキーワード}
  RESET_PART_NUMBER                               {パーツID番号の整理}
  INQ_ENV 7
  LET Part_id ('~' + (INQ 302))                   {カレント・パーツのユニークなパーツ名を保存}
  CREATE_LTAB 20 1 Table_name                     {内部データテーブルの確保}
  PRT_EDITOR                                      {パーツ・エディを開く}

  LOOP
    READ STRING '** 表示を抹消するパーツ群のTOPをクリックして下さい。(選択を終了なら [ESC] キーを押して下さい。) **' Select_Part
    LET Select_Part_len (LEN Select_Part)         {ID名の長さ}
    LET Select_Part_queue (SUBSTR Select_Part 2 (Select_Part_len - 1))  {ID名の数値文字列の取り出し}
    LET Select_Part_value_id (VAL Select_Part_queue)  {ID名の数値}
    EDIT_PART Select_Part                         {指定パーツに移る}
    PARTS_LIST COUNT_TREE LTAB Table_name         {カレントの全パーツ構造をデータベースに入れる}
    LET Select_Part_row (LTAB_ROWS Table_name)    {指定パーツの種類数}

{指定されたパーツ数の算出}
    LET Select_Part_value 0
    LOOP
      LET Data_row (READ_LTAB Table_name Select_Part_row 1) {テーブルの一行データ}
      Ma_pack_value_head Data_row ' '             {先頭の数値文字列を数値にする}
      LET Select_Part_value (Select_Part_value + Gl_fruit)  {加算}
      LET Select_Part_row (Select_Part_row - 1)
    EXIT_IF (Select_Part_row = 0)
    END_LOOP

{表示用の属性文字列の削除}
    LOOP
      LET Individual_id ('~' + (STR Select_Part_value_id))
      EDIT_PART Individual_id                     {指定パーツに移る}
      CHANGE_ELEM_INFO Sign_word '' ALL END       {パーツの全要素の文字列を削除}
      LET Select_Part_value_id (Select_Part_value_id + 1) {次のパーツ}
      LET Select_Part_value (Select_Part_value - 1)
    EXIT_IF (Select_Part_value = 0)
    END_LOOP
 

    EDIT_PART Select_Part                         {指定パーツに戻る}
  END_LOOP

END_DEFINE



選択表示・パーツ群選択
  2001.03.04-2001.03.05
}
DEFINE Ma_pack_select
  LOCAL Part_id                                   {カレント・パーツのユニークなパーツ名}
  LOCAL Table_name                                {データのテーブル名}
  LOCAL Select_Part                               {選択されたパーツのユニークなパーツ名}
  LOCAL Select_Part_len                           {ID名の長さ}
  LOCAL Select_Part_queue                         {ID名の数値の文字列}
  LOCAL Select_Part_value_id                      {ID名の数値}
  LOCAL Select_Part_row                           {指定パーツの種類数}
  LOCAL Select_Part_value                         {指定パーツの数}
  LOCAL Data_row                                  {テーブルの一行データ}
  LOCAL Sign_word                                 {表示属性文字列}
  LOCAL Individual_id                             {個別パーツのID}

  LET Table_name '##part_data##'                  {データのテーブル名}
  LET Sign_word '$$appear_part$$'                 {表示のキーワード}
  RESET_PART_NUMBER                               {パーツID番号の整理}
  INQ_ENV 7
  LET Part_id ('~' + (INQ 302))                   {カレント・パーツのユニークなパーツ名を保存}
  CREATE_LTAB 20 1 Table_name                     {内部データテーブルの確保}
  PRT_EDITOR                                      {パーツ・エディを開く}

  LOOP
    READ STRING '** 選択表示をするパーツ群のTOPをクリックして下さい。(選択を終了なら [ESC] キーを押して下さい。) **' Select_Part
    LET Select_Part_len (LEN Select_Part)         {ID名の長さ}
    LET Select_Part_queue (SUBSTR Select_Part 2 (Select_Part_len - 1))  {ID名の数値文字列の取り出し}
    LET Select_Part_value_id (VAL Select_Part_queue)  {ID名の数値}
    EDIT_PART Select_Part                         {指定パーツに移る}
    PARTS_LIST COUNT_TREE LTAB Table_name         {カレントの全パーツ構造をデータベースに入れる}
    LET Select_Part_row (LTAB_ROWS Table_name)    {指定パーツの種類数}

{指定されたパーツ数の算出}
    LET Select_Part_value 0
    LOOP
      LET Data_row (READ_LTAB Table_name Select_Part_row 1) {テーブルの一行データ}
      Ma_pack_value_head Data_row ' '             {先頭の数値文字列を数値にする}
      LET Select_Part_value (Select_Part_value + Gl_fruit)  {加算}
      LET Select_Part_row (Select_Part_row - 1)
    EXIT_IF (Select_Part_row = 0)
    END_LOOP

{表示用の属性文字列の書き込み}
    LOOP
      LET Individual_id ('~' + (STR Select_Part_value_id))
      EDIT_PART Individual_id                     {指定パーツに移る}
      ADD_ELEM_INFO Sign_word ALL END             {パーツの全要素に文字列を書き込む}
      LET Select_Part_value_id (Select_Part_value_id + 1) {次のパーツ}
      LET Select_Part_value (Select_Part_value - 1)
    EXIT_IF (Select_Part_value = 0)
    END_LOOP
 

    EDIT_PART Select_Part                         {指定パーツに戻る}
  END_LOOP

END_DEFINE



選択表示・パーツ群選択開始
  2001.03.04
}
DEFINE Ma_pack_part_begin

  Ma_appear_part_word_del                         {文字列削除}
  Ma_pack_select                                  {選択表示・パーツ群選択}

END_DEFINE



選択表示・要素選択削除
 2001.04.07
}
DEFINE Ma_requisite_kill
  LOCAL Sign_word                                 {表示属性文字列}
  LOCAL Point                                     {選択した点}
  LOCAL Part_id                                   {カレント・パーツのユニークなパーツ名}

  LET Sign_word '$$appear_part$$'                 {表示のキーワード}
  INQ_ENV 7
  LET Part_id ('~' + (INQ 302))                   {カレント・パーツのユニークなパーツ名を保存}

  LOOP
    READ PNT '** 表示を抹消する要素をクリックして下さい。(選択を終了なら [ESC] キーを押して下さい。) **' Point
    EDIT_PART Point                               {指定パーツに移る}
    CHANGE_ELEM_INFO Sign_word '' Point           {表示属性文字列の削除}
    EDIT_PART Part_id                             {元のパーツに戻る}
  END_LOOP

END_DEFINE



選択表示・要素選択
 2001.04.07
}
DEFINE Ma_requisite_add
  LOCAL Sign_word                                 {表示属性文字列}
  LOCAL Part_id                                   {カレント・パーツのユニークなパーツ名}
  LOCAL Point                                     {選択した点}

  LET Sign_word '$$appear_part$$'                 {表示のキーワード}

  INQ_ENV 7
  LET Part_id ('~' + (INQ 302))                   {カレント・パーツのユニークなパーツ名を保存}

  LOOP
    READ PNT '** 選択表示をする要素をクリックして下さい。(選択を終了なら [ESC] キーを押して下さい。) **' Point
    EDIT_PART Point                               {指定パーツに移る}
    ADD_ELEM_INFO Sign_word Point                 {要素に文字列を書き込む}
    EDIT_PART Part_id                             {元のパーツに戻る}
  END_LOOP

END_DEFINE



選択表示・要素選択開始
 2001.04.07
}
DEFINE Ma_requisite_begin

  Ma_appear_part_word_del                         {全属性文字列削除}
  Ma_requisite_add                                {パーツ選択}

END_DEFINE



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