線変形マクロ入門
HO−CADに貼付されている「HOMacro」フォルダの中に
「線記号変形マクロマニュアル.txt」と「変形マクロ例.hoh」があります。
本ページは、これを元にして書いています。
線変形マクロとは
図面内の、指定した線の指定した位置に、線の角度に合わせて図形を貼り付け、
同時に陰線処理も行う、プログラムです。
この、変形する線の角度を取得できることと、陰線処理ができることは、
「図形」コマンドには無い、線変形マクロの特徴です。
線変形マクロの使い方
「変形」>「線変形マクロ」で、一覧表から図形を呼び込みます。
変形する1線を指示>変形する位置を指示 → 図形が貼り付けられます。
または、変形する2線を指示 → 交点に図形が貼り付けられます。
同時に、陰線が消去されます。
注1 位置を指示する時に、右クリックを使えば、スナップになります。
注2 指示線を1本しか使わないマクロにおいて、貼り付け位置を指定する時に、指示線の上側をクリックすれば、登録した図形を、
指示線の下側をクリックすれば、反転した図形を貼り付けします。
注3 指示線を2本使うマクロにおいて、
指示線1は、一覧表の水平線として、
指示線2は、一覧表の垂直線として表示されています。
指示する順序を逆にすると、−90度回転します。
線変形マクロの作り方
線変形マクロは、テキストファイルですので、メモ帳でつくります。
ひとつのテキストファイルに、15個のマクロを記述できます。
テキストファイルは名前を付けて保存できますので、いくらでも作れます。
保存場所は、どこでも構いません。
私の場合は、C¥H0-CAD¥HOMacro¥マクロファイル となっています。
大文字小文字を区別しません。
大きさを表す数値は、mm単位です。
角度を表す単位は、度です。
コメントは#に続けて記述します。
マクロファイルの構成
hoh 1行目に記述します。
線変形マクロであることを宣言します。
begin“名称” このマクロの開始宣言とマクロ名です。
“名称”が一覧表の名称になります。
Scale(0,0,0) 一覧表での表示範囲と図面での表示方法
Select(0,0) 指示線の加工と一覧表の中心線の表示方法
Line(0,0,0,0,0,0,0,0) 線描画実行関数
Arc(0,0,0,0,0,0,0,0,0.0) 円描画実行関数
必要により、その他の関数も書き込む
end このマクロの終了宣言
以降beginとendの間にマクロを書き込みます。
ひとつのマクロファイルに、15個のマクロを書くことができます。
15番以降のマクロは無視されますので、
別のファイルを作って、その中に書き込みます。
マクロ例
「変形マクロ例」フォルダにある、○印を描くマクロです。
クリップボード経由で、コピーしました。
コメントを編集していますが、マクロはいじっていません。
begin "[--O--]3.0R" # マクロ開始宣言とマクロ名
Scale(10,6,0) # 横10 縦6 図面寸法 基点中央
Select(9,0) # 指示線消去 中心線端−端
# am X1 Y1 X2 Y2 cl tp ly # マクロを解り易くするためのコメント
Line( 11, -10, 0, -3, 0, 0, 0, 0) # 線を消去したので描き加える左側の線
Line( 12, 3, 0, 10, 0, 0, 0, 0) # 線を消去したので描き加える右側の線
# am X1 Y1 r as ae pp cl lt ly # マクロを解り易くするためのコメント
Arc( 0, 0, 0, 3, 0, 360, 1, 0, 0, 0) # 描く3Φの丸
end
注 X1=-10,X2=-3,で指定されている7mmの線は、一覧表に表示されるだけです。
am=11で指示線の始点が読み込まれていますので、
図面上では、指示線の始点, X2=-3,間に線が引かれます。
Line2も始点と終点の違いはありますが、同じです。
実行関数
Scale(MaxX,MaxY,Mode,OriginX,OriginY)
一覧表への表示範囲と、図面での表示方法を、指定する
MaxX,MaxY 一覧表への表示範囲
Yの値は0にすると、自動調整される(のではないか?)
Mode 図面での表示方法 0:図面寸法 1:実寸法
OriginX,OriginY 一覧表の枠中心からのオフセット
指定しなければ、中央になる
Select(DeleteFlag,DispSize)
変形する線を指定する 最大2本指定できる
DeleteFlag 指示線の加工 0:何もしない 1:伸縮する 9:消去する
DispSize 一覧表の中心線 0:端から端まで 1:端から中心まで
注 伸縮は、原点または面取り位置まで伸縮します。
Line(AssignMode,X1,Y1,X2,Y2,Color,Type,Layer)
線を描く
AssignMode 0: 指示線と無関係
10: 指示線1の角度に追従する
11: 指示線1の始点を始点とする
12: 指示線1の終点を終点とする
13: 指示線1の始点終点を始点終点とする(線復元)
20: 指示線2の角度に追従する
21: 指示線2の始点を始点とする
22: 指示線2の終点を終点とする
23: 指示線2の始点終点を始点終点とする(線復元)
99: 一覧表用データとする(図面には書き込まれない)
X1,Y1,X2,Y2 線の始点と終点の座標
Color 0: 指示線の色と同じ色とする
1〜6: 線色を指定する 数値はPenNoを表す
9: 書き込み線色とする
Type 0: 指示線の線種とする
1〜8: 線種を指定する 数値は線種番号を表す
9: 書き込み線種とする
Layer 0: 指示線と同じレイヤ
9: 書き込みレイヤ
LnCut(AssignMode,X1,Y1,X2,Y2,CutLength)
X1,Y1,X2,Y2で表される基準線にクロスする線の右側を、指定する長さで消去する
X1,Y1,X2,Y2で表される基準線まで、クロスする線を伸縮する
AssignMode 0: 指示線と無関係な伸縮基準線になる
10: 指示線1の角度に追従する
11: 指示線1の始点を基準線の始点とする
12: 指示線1の終点を基準線の終点とする
13: 指示線1の始点終点を基準線の始点終点とする
20: 指示線2の角度に追従する
21: 指示線2の始点を基準線の始点とする
22: 指示線2の終点を基準線の終点とする
23: 指示線2の始点終点を基準線の始点終点とする
X1,Y1, X2,Y2 基準線の始点終点
CutLength 消去する長さ 0:線伸縮
注 部分消去または伸縮される線は、(指示線とは限らず?)、
基準線とクロスする線全てが対象になります。
Arc(AssignMode,X0,Y0,r,ArcStart,ArcEnd,Proportion,Color,Type.Layer)
円・円弧を描く
AssignMode 0: 指示線と無関係
10: 指示線1の角度に追従する
20: 指示線2の角度に追従する
30: 指示線1、2の角度を始角終角とする(丸面取り?)
99: 一覧表用データとする(図面には書き込まれない)
X0,Y0 円弧の中心
r 半径
ArcStart 円弧の開始角 円の場合は0
ArcEnd 円弧の終了角 円の場合は360
Proportion 円弧の扁平率 0〜2の範囲 1で真円
Color 線色 Lineを参照
Type 線種 Lineを参照
Layer レイヤ Lineを参照
Corner(Mode,Length,Color,Layer)
面取りする
Mode 0:辺面取り 1:円面取り
Length 辺:辺寸法 円:半径寸法
Color 線色 Lineと同じ
Layer レイヤ Lineと同じ
Dot(AssaignMode,X1,Y1,Color,Layer)
点を描く
AssignMode 0: 指示線と無関係
10: 指示線1の角度に追従する
11: 指示線1の最寄の端点に描く
12: 指示線1の始点終点に描く
20: 指示線2の角度に追従する
21: 指示線2の最寄の端点に描く
22: 指示線2の始点終点に描く
99: 一覧表用データとする(図面には書き込まれない)
X1,Y1 点の座標
Color 点色 Lineを参照
Type 点種 Lineを参照 但し数値は1〜6
Layer レイヤ Lineを参照
Call(CommandNo,Param1,Param2)
コマンドを呼び出す(今のところ、図形コマンドのみ?)
CommandNo 22:図形呼出
Param1 3:JWC図形読込 3以外:HOC図形読込
Param2 ?
注 本マクロはよく判りません。
確かに図形を読込できましたが、
角度を指示線に合わせる方法と、
基点を合わせる方法が判りませんでした。
Text (AssignMode,X1,Y1,Angle,Position,Vertical,PenNo,Size,Pitch,Layer,Text)
GetTxt(AssignMode,X1,Y1,Angle,Position,Vertical,PenNo,Size,Pitch,Layer,Text)
Textは、書き込む文字が固定している
GetTextは、書き込む文字を、マクロ実行時入力する
AssignMode 0: 指示線と無関係
10: 指示線1の角度に追従する
20: 指示線2の角度に追従する
99: 一覧表用データとする(図面には書き込まれない)
X1,Y1 基点座標
Angle 角度 単位は度 0は指示線に追従
Position 基点位置1:左下 2:中下 3:右下 4:右中 5:右上
6:中上 7:左上 8:左中 9:中央
下線は 10プラス
太字は 30プラス
斜体は 50プラス
下線+太字+斜体=10+30+50+=90プラス
Vertical 1: 縦書き 1以外:横書き
PenNo 1〜6
CharSize 文字サイズ 単位はmm
CharPitch 文字間隔 単位はmm
Layer 0:基準線のレイヤ 9:書き込みレイヤ
”Text” 文字列 ” ”で囲む