1.2.1 マクロコマンドの作成

マクロコマンドを新規に作成する手順を次に示します。

[図データ]

上の手順に沿って,次に示す垂直線を作成するマクロコマンドを作成してみます。

[図データ]

直線を作図するには,ビジュアル・アイコンの直線コマンドを使います。直線コマンドで決まった長さの垂直線を作図しようとすると,次の操作が必要になります。

これから作成するマクロコマンドでは,基準点と長さを入力するだけで垂直線が作図できるようにします。

<この項の構成>
(1) 編集開始
(2) 引数定義
(3) 変数定義
(4) 図形作成
(5) 保管
(6) 編集終了
(7) メニューカスタマイズ

(1) 編集開始

あらかじめ用紙を設定してから,マクロコマンドの編集を開始します。

1. メニューバーの[マクロ(M)]メニューで[マクロ編集]を指定します。
[マクロ編集]の詳細については,「2.4 マクロ編集[マクロ(M)/マクロ編集]」を参照してください。
2. コマンドエリアに次のように入力します。

hline<Enter>

これがマクロコマンドの名称になります。
[図データ]
3. マクロ図形かどうか問い合わせがあります。
マクロコマンドの場合は,何も入力しないで<Enter>を押します。
[図データ]
4. マクロ編集ダイアログが表示されます。
[図データ]

(2) 引数定義

マクロコマンドで使う引数を定義します。このマクロコマンドでは,基準点と長さを入力すると,垂直線が作図できるようにします。

5. マクロ編集ダイアログの[ツール]ボタンを押して,マクロ編集ツールメニューを表示します。
[図データ]
6. マクロ編集ツールメニューの[引数]ボタンを押してから,コマンドエリアに次のように入力します。

10.bp.p(キジュンテン)<Enter>

ここでは,垂直線の基準点を入力する引数を定義しています。
最初の10はステートメントの最初の行であることを示します。
次のbpは引数の名称です。
次のpは,この引数で入力するのが図面上の点であることを示します。
最後の(キジュンテン)は,このマクロコマンドを実行するときキジュンテンというガイダンスを表示してbpへの入力を促すことを示します。
ただし,メニューカスタマイズの中でガイダンスを指定した場合は,その内容が優先されます。
[図データ]
7. 図面上の任意の位置で点(*)を指示します。
引数に実際にデータを入力するのは,完成したマクロコマンドで作成された形状が意図したものになっていることを確認するためです。また,実行時に省略できるオペランドを設定した場合は,ここで入力した値を省略時仮定値とします。
[図データ]
8. マクロ編集ツールメニューの[引数]ボタンを押してから,コマンドエリアに次のように入力します。

20.len.r(ナガサ)<Enter>

ここでは,垂直線の長さを入力する引数を定義しています。
最初の20はステートメントの2行目であることを示します。
次のlenは引数の名称です。
次のrは,この引数で入力するのが実数であることを示します。
[図データ]
9. コマンドエリアに次のように入力します。

50<Enter>

[図データ]

(3) 変数定義

作成中のマクロコマンドでは,基準点と長さを入力するだけで垂直線を作図しようとしています。このため,マクロコマンドの中で使う直線コマンドに基準点と,基準点から指定した長さだけ垂直方向に離れた点(終点)を入力して直線を作図することにします。ここでは,基準点の情報と長さの情報から終点の情報を作るため,変数を定義します。

10. マクロ編集ツールメニューの[変数]ボタンを押してから,コマンドエリアに次のように入力します。

x.r=xcor(&bp)<Enter>

ここでは,XCORという関数を使って基準点の情報(&bp)からX座標の情報だけを取り出します。
取り出した情報はxという名称の変数に実数(R種パラメタ)の形で格納します。
これで,終点のX座標の情報ができました。
関数の詳細については,「4. マクロで使える関数」を参照してください。
[図データ]
11. マクロ編集ツールメニューの[変数]ボタンを押してから,コマンドエリアに次のように入力します。

y.r=ycor(&bp)+&len<Enter>

ここでは,YCORという関数を使って基準点の情報(&bp)からY座標の情報だけを取り出します。
取り出した情報に長さの情報(&len)を加算します。
得られた情報をyという名称の変数に実数(R種パラメタ)の形で格納します。
これで,終点のY座標の情報ができました。
[図データ]
12. マクロ編集ツールメニューの[変数]ボタンを押してから,コマンドエリアに次のように入力します。

ep.p=pnt(&x:&y)<Enter>

ここでは,PNTという関数を使って,X座標の情報(&x)とY座標の情報(&y)から終点の情報を作ります。
得られた情報をepという名称の変数に図面上の点(P種パラメタ)の形で格納します。
これで,終点の情報ができました。
[図データ]

(4) 図形作成

ビジュアル・アイコンのメニューなどを使って,目的の形状を作成します。

形状の作成には,保管してあるマクロコマンドやマクロ図形も使えます。マクロの中でほかのマクロを使うことをマクロのネストといいます。

13. ビジュアル・アイコンで親メニューの直線と子メニューの直線を指定します。
[図データ]
14. コマンドエリアの「点・基準方向・角度・基準要素」に次のように入力します。

&bp<;>

[図データ]
15. コマンドエリアの「点」に次のように入力します。

&ep<Enter>

すると,垂直線が作図されます。
[図データ]

(5) 保管

作図されたものが最初に意図していた形状であることを確認したら,マクロコマンドを保管します。

16. マクロ編集ダイアログの[保管]ボタンを押します。
17. 保管ダイアログが表示されます。マクロ名には最初に入力した名称が表示されているので,よければ[OK]ボタンを押します。
これで,作成したマクロが保管されました。
[図データ]

(6) 編集終了

マクロコマンドの編集を終了します。

18. マクロ編集ダイアログの[終了]ボタンを押します。
これで,マクロコマンドの編集を終了しました。

(7) メニューカスタマイズ

ここまでの手順だけでも作成したマクロコマンドを実行できますが,頻繁に使うことを考えて,ビジュアル・アイコンとして登録します。

表示するビジュアル・アイコンとして,ビットマップファイルをあらかじめ作成して保管しておきます。インストールフォルダ¥hicad¥etc¥bitmapsに既にあるビットマップファイルを参照しながら,同じ大きさのビットマップファイルを作成します。作成したビットマップファイルは任意の名称で,インストールフォルダ¥hicad¥etc¥bitmapsに保管しておきます。ここではu_hline.bmpという名称にします。

19. メニューバーの[環境(C)]メニューで[メニューカスタマイズ...]を指定してメニュー編集ダイアログボックスを表示させます。
20. ビジュアルメニューを選択し,[編集]ボタンを押します。
[図データ]
21. ビジュアルメニュー編集ダイアログボックスが表示されます。
22. 切り替えメニューからユーザ1を選択します。
ユーザ1とユーザ2はユーザが自由に内容を編集できる切り替えメニューです。先ほど保管したマクロ「hline」をユーザ1の親メニューに登録します。
23. [新規追加]ボタンを押します。
[図データ]
24. 新規追加ダイアログボックスが表示されます。
25. メニュー種別から「親メニュー(コマンド)」を選択します。
これは,親メニューに直接コマンドを対応させるためです。
26. [OK]ボタンを押します。
[図データ]
27. ビットマップ設定ダイアログボックスが表示されます。
28. ビットマップファイルのリストからu_hline.bmpを選択して[OK]ボタンを押します。
これで,マクロコマンドをどのようなビジュアル・アイコンで表示するか設定します。
[図データ]
29. コマンド設定ダイアログボックスが表示されます。
30. マクロ指定を選択して,リストからhlineを選択します。
31. [OK]ボタンを押します。
これで,先ほど選択したビットマップファイルに対応するマクロコマンドを設定します。
[図データ]
32. ビジュアルメニュー編集ダイアログボックスに戻ります。
33. メニュー位置のリストから<hlineを選択して,[コマンド編集]ボタンを押します。
[図データ]
34. コマンド編集ダイアログボックスが表示されます。
ここでは,マクロコマンドで入力するオペランドの数などを設定します。
35. マクロコマンドで入力する項目が,基準点と長さの二つなので,オペランド数に2を入力します。オペランド数は,マクロコマンドで定義した引数の数と合っていなければなりません。
36. マクロコマンドを誤って実行した場合でも図面を元の状態に戻せるよう,回復抑止モードの「回復できる」をチェックします。
37. [実行可能モード]ボタンを押します。
[図データ]
38. コマンド実行可能モードダイアログボックスが表示されます。
ここでは,どのような状態のときにマクロコマンドを実行できるようにするかを設定します。
39. コマンドの実行できるモードで,次のモードをチェックします。
  • 用紙が一枚以上設定されている
  • マクロコマンド編集モード
  • マクロ図形編集モード
  • マクロ図形展開モード
用紙がなければ作図できませんし,ほかのマクロの中でもこのマクロコマンドを使えるようにするため,このように設定します。
40. [OK]ボタンを押します。
[図データ]
41. コマンド編集ダイアログボックスに戻ります。
42. [オペランド編集]ボタンを押します。
43. オペランド編集ダイアログボックスが表示されます。
ここでは,オペランドごとにパラメタ種別やガイダンスを設定します。
44. 一つ目のオペランドは基準点です。パラメタ種別で点指示パラメタをチェックします。
45. オペランドメニュー種別で点指示(マクロ図形配置)を選択します。
46. パラメタ省略のチェックを外します。
これは,基準点の入力が省略できないことを示します。
47. ガイダンスに基準点と入力します。
省略できないオペランドなので,[ ]は付けません。
48. [要素種別ピックモード]ボタンを押します。
[図データ]
49. 要素種別ピックモードダイアログボックスが表示されます。
50. ピック可能形状要素で文字列と塗りつぶし図形以外のすべてをチェックします。
51. [OK]ボタンを押します。
[図データ]
52. オペランド編集ダイアログボックスに戻ります。
これで基準点のオペランドの編集が完了しました。
53. [[図データ]]ボタンを押します。
二つ目のオペランドは長さです。ほかの要素の長さも参照できるように,要素指示パラメタと文字入力パラメタをパラメタ種別でチェックします。
文字入力パラメタには実数を選択します。
54. オペランドメニュー種別で長さ指定を選択します。
55. パラメタ省略のチェックを外します。
これは,長さの入力が省略できないことを示します。
56. ガイダンスに長さと入力します。
省略できないオペランドなので,[ ]は付けません。
57. [要素種別ピックモード]ボタンを押します。
[図データ]
58. 要素種別ピックモードダイアログボックスが表示されます。
59. ピック可能形状要素で直線だけをチェックします。
60. [OK]ボタンを押します。
[図データ]
61. オペランド編集ダイアログボックスに戻ります。
62. [OK]ボタンを押します。
63. コマンド編集ダイアログボックスに戻ります。
64. [OK]ボタンを押します。
65. ビジュアルメニュー編集ダイアログボックスに戻ります。
66. [OK]ボタンを押します。
67. メニュー編集ダイアログボックスに戻ります。
68. [OK]ボタンを押します。

これでマクロコマンドの作成とビジュアル・アイコンの登録が完了しました。