7.1.1 二つの楕円に接する円弧を作成するマクロコマンド

次に示すような,二つの楕円に接する円弧を作成するマクロコマンドを作成します。

[図データ]

<この項の構成>
(1) マクロコマンドの編集
(2) メニューカスタマイズ
(3) マクロコマンドの実行

(1) マクロコマンドの編集

1. ビジュアル・アイコンで親メニューの楕円と子メニューの長短径楕円を指定します。
あらかじめ用紙を設定しておきます。
ここでは楕円を二つ作成します。
[図データ]
2. 「長径」で,次のように入力します。

60<;>

3. 「短径」で,次のように入力します。

30<;>

4. 「角度」で,次のように入力します。

30<;>

5. 「中心点」で,図面上の点を指示(*)します。
[図データ]
6. 「長径」で,次のように入力します。

50<;>

7. 「短径」で,次のように入力します。

30<;>

8. 「角度」で,次のように入力します。

0<;>

9. 「中心点」で,図面上の点を指示(*)します。
[図データ]
10. メニューバーの[マクロ(M)]メニューで[マクロ編集]を指定します。
ここからマクロコマンドの編集を開始します。
11. マクロ名で,次のように入力します。

eec<Enter>

これがマクロコマンドの名称になります。
[図データ]
12. マクロ図形指示では,何も入力しないで<Enter>を押します。
[図データ]
13. マクロ編集ダイアログが表示されます。
14. マクロ編集ダイアログの[ツール]ボタンを押して,マクロ編集ツールメニューを表示します。
[図データ]
15. マクロ編集ツールメニューの[引数]ボタンを押してから,コマンドエリアに次のように入力します。

10.e1.e(ダエン1)<Enter>

ここでは,楕円1を指定する引数を定義します。
[図データ]
16. 楕円1を指示(#)します。
[図データ]
17. マクロ編集ツールメニューの[引数]ボタンを押してから,コマンドエリアに次のように入力します。

20.e2.e(ダエン2)<Enter>

ここでは,楕円2を指定する引数を定義します。
[図データ]
18. 楕円2を指示(#)します。
[図データ]
19. マクロ編集ツールメニューの[引数]ボタンを押してから,コマンドエリアに次のように入力します。

30.r.r(ハンケイ)<Enter>

ここでは,接円弧半径の引数を定義します。
[図データ]
20. 次の文字列を入力します。

30<Enter>

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

GT(&r:0)<Enter>

ここでは,入力した半径が0以下でないかどうか,関数を使って条件判定するIF文を定義します。
[図データ]
22. ビジュアル・アイコンで親メニューの複写と子メニューのオフセット複写を指定します。
ここでは楕円をオフセット複写します。
[図データ]
23. 「対象要素」で,次のように入力します。

&e1<;>

24. 「間隔」で,次のように入力します。

&r<;>

「方向」で左の楕円の外側を指示して<Enter>を押します。
[図データ]
25. 「対象要素」で,次のように入力します。

&e2<;>

26. 「間隔」で,次のように入力します。

&r<;>

「方向」で右の楕円の外側を指示して<Enter>を押します。
[図データ]
27. マクロ編集ツールメニューの[変数]ボタンを押してから,コマンドエリアに次のように入力します。

a1.r=ecor(&e1)<Enter>

ここでは,関数を使って楕円の位置の座標を取り出す変数を定義します。
[図データ]
28. マクロ編集ツールメニューの[変数]ボタンを押してから,コマンドエリアに次のように入力します。

a2.r=ecor(&e2)<Enter>

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

ee1.e=<Enter>

ここでは,オフセット複写で作成した楕円を変数として定義します。
[図データ]
30. オフセット複写で作成した楕円を指示(#)します。
[図データ]
31. マクロ編集ツールメニューの[変数]ボタンを押してから,コマンドエリアに次のように入力します。

ee2.e=<Enter>

[図データ]
32. オフセット複写で作成した楕円を指示(#)します。
[図データ]
33. マクロ編集ツールメニューの[変数]ボタンを押してから,コマンドエリアに次のように入力します。

ee1.e=elm(eno(&ee1):&a1)<Enter>

ここでは,オフセット複写で作成した楕円のE種パラメタを作成する変数を定義します。
[図データ]
34. マクロ編集ツールメニューの[変数]ボタンを押してから,コマンドエリアに次のように入力します。

ee2.e=elm(eno(&ee2):&a2)<Enter>

[図データ]
35. ビジュアル・アイコンで親メニューの直線と子メニューの点を指定します。
ここでは,オフセット複写で作成した楕円の交点に定義点を作成します。
[図データ]
36. 「位置」で,オペランドメニューから「交点」を選択して,次の文字列を入力します。

&ee1;&ee2<Enter>

[図データ]
37. ビジュアル・アイコンで親メニューの円と子メニューの中心指定円弧を指定します。
ここでは,楕円に接する円弧を作成します。
[図データ]
38. 「中心点」で,オペランドメニューから「定義点」を選択して,定義点を指示(#)します。
[図データ]
39. 「始点」で,オペランドメニューから「垂点」を選択して,次の文字列を入力します。

&e1<;>

[図データ]
40. オペランドメニューから「定義点」を選択して,定義点を指示(#)します。
[図データ]
41. 「終点」で,オペランドメニューから「垂点」を選択して,次の文字列を入力します。

&e2<;>

[図データ]
42. オペランドメニューから「定義点」を選択して,定義点を指示(#)します。
[図データ]
43. ビジュアル・アイコンで親メニューの削除と子メニューの削除を指定します。
ここでは,オフセット複写で作成した楕円と定義点を削除します。
[図データ]
44. 「削除対象」で,オフセット複写で作成した二つの楕円を指示(#)して,<Enter>を押します。
[図データ]
45. 「削除対象」で,定義点を指示(#)して,<Enter>を押します。
[図データ]
46. マクロ編集ツールメニューの[END IF]ボタンを押してから,コマンドエリアに次のように入力します。

y<Enter>

入力した半径を条件判定するIF文をここで終了します。
[図データ]
47. マクロ編集ダイアログの[保管]ボタンを押すと,保管ダイアログが表示されます。
ここでは,作成したマクロコマンドを保管します。
48. [OK]ボタンを押します。
[図データ]
49. マクロ編集ダイアログの[終了]ボタンを押します。
これで,マクロコマンドの編集を終了しました。

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

表示するビジュアル・アイコンとしてu_eec.bmpという名称のビットマップファイルをインストールフォルダ¥hicad¥etc¥bitmapsに保管しておきます。

50. メニューバーの[環境(C)]メニューで[メニューカスタマイズ...]を指定してメニュー編集ダイアログボックスを表示させます。
51. ビジュアルメニューを選択し,[編集]ボタンを押します。
[図データ]
52. ビジュアルメニュー編集ダイアログボックスが表示されます。
53. 切り替えメニューからユーザ1を選択します。
保管したマクロ「eec」をユーザ1の親メニューに登録します。
54. [新規追加]ボタンを押します。
[図データ]
55. 新規追加ダイアログボックスが表示されます。
56. メニュー種別から「親メニュー(コマンド)」を選択します。
57. [OK]ボタンを押します。
[図データ]
58. ビットマップ設定ダイアログボックスが表示されます。
59. ビットマップファイルのリストからu_eec.bmpを選択して[OK]ボタンを押します。
[図データ]
60. コマンド設定ダイアログボックスが表示されます。
61. マクロ指定を選択して,リストからeecを選択します。
62. [OK]ボタンを押します。
[図データ]
63. ビジュアルメニュー編集ダイアログボックスに戻ります。
64. メニュー位置のリストから<eecを選択して,[コマンド編集]ボタンを押します。
[図データ]
65. コマンド編集ダイアログボックスが表示されます。マクロコマンドで入力する項目が,楕円1,楕円2,および接円弧半径の三つなので,オペランド数に3を入力します。
66. マクロコマンドを誤って実行した場合でも図面を元の状態に戻せるよう,回復抑止モードの「回復できる」をチェックします。
67. [実行可能モード]ボタンを押します。
[図データ]
68. コマンド実行可能モードダイアログボックスが表示されます。
69. コマンドの実行できるモードで,次のモードをチェックします。
  • 用紙が一枚以上設定されている
  • マクロコマンド編集モード
  • マクロ図形編集モード
  • マクロ図形展開モード
70. [OK]ボタンを押します。
[図データ]
71. コマンド編集ダイアログボックスに戻ります。
72. [オペランド編集]ボタンを押します。
73. オペランド編集ダイアログボックスが表示されます。
楕円1と楕円2の入力は省略できないことにします。
74. 一つ目のオペランドは楕円1です。パラメタ種別では要素指示パラメタだけをチェックします。
75. オペランドメニュー種別で要素選択を選択します。
76. パラメタ省略のチェックを外します。
77. ガイダンスに楕円1と入力します。
78. [要素種別ピックモード]ボタンを押します。
[図データ]
79. 要素種別ピックモードダイアログボックスが表示されます。
80. ピック可能形状要素で楕円だけをチェックします。
81. [OK]ボタンを押します。
[図データ]
82. オペランド編集ダイアログボックスに戻ります。
83. [[図データ]]ボタンを押します。
二つ目のオペランドは楕円2です。パラメタ種別では要素指示パラメタだけをチェックします。
84. オペランドメニュー種別で要素選択を選択します。
85. パラメタ省略のチェックを外します。
86. ガイダンスに楕円2と入力します。
87. [要素種別ピックモード]ボタンを押します。
[図データ]
88. 要素種別ピックモードダイアログボックスが表示されます。
89. ピック可能形状要素で楕円だけをチェックします。
90. [OK]ボタンを押します。
[図データ]
91. オペランド編集ダイアログボックスに戻ります。
92. [[図データ]]ボタンを押します。
三つ目のオペランドは接円弧半径です。ほかの要素の長さも参照できるように,要素指示パラメタと文字入力パラメタをパラメタ種別でチェックします。文字入力パラメタには実数を選択します。
93. オペランドメニュー種別で長さ指定を選択します。
94. ガイダンスに[接円弧半径]と入力します。
95. [要素種別ピックモード]ボタンを押します。
[図データ]
96. 要素種別ピックモードダイアログボックスが表示されます。
97. ピック可能形状要素で次の項目をチェックします。
  • 直線
  • 円弧
98. [OK]ボタンを押します。
[図データ]
99. オペランド編集ダイアログボックスに戻ります。
100. [OK]ボタンを押します。
101. コマンド編集ダイアログボックスに戻ります。
102. [OK]ボタンを押します。
103. ビジュアルメニュー編集ダイアログボックスに戻ります。
104. [OK]ボタンを押します。
105. メニュー編集ダイアログボックスに戻ります。
106. [OK]ボタンを押します。

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

(3) マクロコマンドの実行

二つの楕円に接する円弧を作成するマクロコマンドを実行します。あらかじめ用紙を設定しておきます。

1. ビジュアル・アイコンで親メニューの楕円と子メニューの長短径楕円を指定します。
ここでは,マクロコマンドを実行するために,楕円を二つ作成します。
[図データ]
2. 「長径」で,次のように入力します。

80<;>

3. 「短径」で,次のように入力します。

50<;>

4. 「角度」で,次のように入力します。

25<;>

5. 「中心点」で,図面上の点を指示(*)します。
[図データ]
6. 「長径」で,次のように入力します。

60<;>

7. 「短径」で,次のように入力します。

20<;>

8. 「角度」で,次のように入力します。

15<;>

9. 「中心点」で,図面上の点を指示(*)します。
[図データ]
10. 切り替え用メニューでユーザ1を選択します。
11. ビジュアル・アイコンで二つの楕円に接する円弧を作成するコマンドを選択します。
[図データ]
12. 楕円1の入力で,図面上の楕円を指示(#)して<;>を押します。
[図データ]
13. 楕円2の入力で,図面上の楕円を指示(#)して<;>を押します。
[図データ]
14. 接円弧半径の入力で,次のように入力します。

40<Enter>

[図データ]
実行結果は次のようになります。
[図データ]