トップページへ

 

      線変形マクロ入門 

 

 

 

HO−CADに貼付されている「HOMacro」フォルダの中に

「線記号変形マクロマニュアル.txt」と「変形マクロ例.hoh」があります。

本ページは、これを元にして書いています。

 

 

 

線変形マクロとは

図面内の、指定した線の指定した位置に、線の角度に合わせて図形を貼り付け、

同時に陰線処理も行う、プログラムです。

この、変形する線の角度を取得できることと、陰線処理ができることは、

「図形」コマンドには無い、線変形マクロの特徴です。

 

 

 

線変形マクロの使い方

「変形」>「線変形マクロ」で、一覧表から図形を呼び込みます。

変形する1線を指示>変形する位置を指示 → 図形が貼り付けられます。

または、変形する2線を指示 → 交点に図形が貼り付けられます。

同時に、陰線が消去されます。

 

注1  位置を指示する時に、右クリックを使えば、スナップになります。

 

注2  指示線を1本しか使わないマクロにおいて、貼り付け位置を指定する時に、指示線の上側をクリックすれば、登録した図形を、

指示線の下側をクリックすれば、反転した図形を貼り付けします。

 

注3  指示線を2本使うマクロにおいて、

指示線1は、一覧表の水平線として、

指示線2は、一覧表の垂直線として表示されています。

指示する順序を逆にすると、−90度回転します。

 

 

 

線変形マクロの作り方

線変形マクロは、テキストファイルですので、メモ帳でつくります。

ひとつのテキストファイルに、15個のマクロを記述できます。

テキストファイルは名前を付けて保存できますので、いくらでも作れます。

保存場所は、どこでも構いません。

私の場合は、CH0-CADHOMacro¥マクロファイル となっています。

大文字小文字を区別しません。

大きさを表す数値は、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                このマクロの終了宣言

 

 

以降beginendの間にマクロを書き込みます。

ひとつのマクロファイルに、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の線は、一覧表に表示されるだけです。

am11で指示線の始点が読み込まれていますので、

図面上では、指示線の始点, 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: 指示線の色と同じ色とする

16: 線色を指定する 数値はPenNoを表す

 9: 書き込み線色とする

Type         0: 指示線の線種とする

18: 線種を指定する 数値は線種番号を表す

 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を参照 但し数値は16

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プラス

下線+太字+斜体=103050+=90プラス

Vertical      1: 縦書き  1以外:横書き

PenNo          16

CharSize        文字サイズ 単位はmm 

CharPitch        文字間隔 単位はmm

Layer          0:基準線のレイヤ 9:書き込みレイヤ

Text”         文字列  ” ”で囲む