jwc_temp.txtの解説(Jw_win)

home index
2002/12/04

0-0.はじめに

この文書を書くにあたっては、Jw_win付属の「jww_smpl.bat」の内容を参考にしています。
たぶん大丈夫だと思うのですが著作権的に問題がありましたら、
mintleaf@mint.freemail.ne.jpまで御連絡ください。即謝ります。

無保証です。使用時は自己責任でお願いいたします。
また、この文書にはJw_winのキャプチャ画像がありますが、この文書は通信費や通信用のパソコン等にかかる実費を除くと、無償で配布しているため、Jw_winの使用条件(4)

(4)サンプルデータ及び画面の使用制限

 添付のサンプルデータまたはプログラムの動作画面を含んだ
ドキュメントを有償で配布する場合は、事前にご相談ください。
には抵触していません。

1-1.jwc_temp.txtとは何か

Jw_winで外部変形を実行する際に一時的に生成されるデータファイル。内容はテキストファイルで、中には図面情報・座標情報などが入っている。
このjwc_temp.txtを任意のプログラムで処理してJw_winに戻すと、その処理がJw_winの画面上で反映される。これが外部変形の仕組みである。
仕様がやや異なるが、原理自体はJW_CAD,HO_CAD,BeDraw、全て同じである。

1-2.jwc_temp.txtの構造

以下は標準的なjwc_temp.txt(REM #jww)の一例。

hq
hk 0
hs 1 100 50 50 60 1 1 1 1 50 50 1 50 50 50 1
hcw 2 2.5 3 4 5 6 7 8 9 10
hch 2 2.5 3 4 5 6 7 8 9 10
hcd 0 0 0.5 0.5 0.5 0.5 1 1 1 1
hcc      1      1      2      2      3      3      4      4      5      5
hn -426.361037254366 -351.966948941264 338.029167859708 283.230545449305
lg1
ly4
lc3
lt1
cn3
cn"$<MS ゴシック>
#
lc5
ci 75.3373227219136 115.997758790544 100 180 270 1 180
lc1
ci -60.9323933523733 55.3750759984233 100 90 180 1 0
lc6
ci -104.0969977274 -146.69408634725 100 180 270 1 0
lc3
ci 89.6920683578585 -24.6787484417169 100 180 270 1 90
#
lg0 11
lgn一階平面
ly0 11
lyn通り芯
ly1 11
lyn壁
ly2 11
lyn柱
ly3 11
lyn断熱
ly4 11
lyn建具
ly5 11
lyn家具
ly6 11
lyn外構
ly7 11
lyn室名
ly8 11
lynハッチ
ly9 11
lyn
lya 11
lyn寸法
lyb 11
lyn記事
lyc 11
lyn
lyd 11
lyn
lye 11
lyn
lyf 11
lyn補助線

一つ目の「#」の行を区切りに上には、軸角・縮尺等の図面データが出力される。
一つ目の「#」より下の行には図形データが出力される。

バッチファイルで「REM #gn」を指定した場合は、二つ目の「#」が出力され、その下にレイヤに関する情報が出力される。

行の各データの区切りは半角スペースかタブを使う。


図面データ

図面に関する情報が出力される。
hd,lg,ly,lc,lt,cn以外は読み込みのみ。

hq(実行チェック)

外部変形プログラムを実行したかチェックする文字。
jwc_temp.txtをJw_winに戻すとき「hq」の記述が残っていると、
例え実際にはプログラムを実行していても、プログラム未実行とみなされる。

file(ファイル名)

現在編集中のファイル名がフルパスで出力される。
バッチファイルで「REM #hf」を指定しているときのみ出力される。
以下編集中ファイルが、c:\ore\hoge.jwwの場合。

file=c:\ore\hoge.jww

hk(軸角)

現在の軸角を出力する。以下、現在の軸角が5度の場合。

hk 5

hs(縮尺)

レイヤグループの縮尺の分母が出力される。以下、例。

hs 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30
縮尺が1/1以上(2/1等)を越える場合は小数になる。
例えば、2/1の場合は「0.5」になる。

hcw(文字幅)

文字列の幅設定を文字種No.1〜No.10まで出力する。

hcw 2 2.5 3 4 5 6 7 8 9 10

hch(文字高さ)

文字列の高さ設定を文字種No.1〜No.10まで出力する。

hch 2 2.5 3 4 5 6 7 8 9 10

hcd(文字間隔)

文字列の文字間隔設定を文字種No.1〜No.10まで出力する。

hcd 0 0 0.5 0.5 0.5 1 1 1 1 1

hcc(文字ペンNo)

文字列の文字ペンNo設定を文字種No.1〜No.10まで出力する。
ペンNoは1〜9で、9は補助線色。

hcc 1 1 2 2 3 3 4 4 5 5

hn(選択範囲始点終点)

範囲選択の始点と終点の座標を出力する。
バッチファイルで、「REM #h1」「REM #h2」「REM #h3」を指定したときのみ出力される。

以下、始点座標が(0,100)、終点座標が(200,300)の場合。

hn 0 100 200 300

hp?(指定点)

指定点の座標を出力する。範囲は「hp1」〜「hp99」で、それぞれバッチファイルの「REM #1」〜「REM #99」に対応する。
以下、「REM #1」で指定した座標が(100,200)の場合。

hp1 100 200

バッチファイルで「REM #1-」と指定した場合は、以下のように出力される。

hp1- 100 200

バッチファイルで「REM #1ln」「REM #1ci」「REM #1ch」と指定した場合は、それぞれ以下のように出力される。

hp1ln 100 200
hp1ci 100 200
hp1ch 100 200

lg?(書込レイヤグループ)

現在の書込レイヤグループを示す。範囲は「lg0」〜「lg9」「lga」〜「lgf」。

ly?(書込レイヤ)

現在の書込レイヤを示す。範囲は「ly0」〜「ly9」「lya」〜「lyf」。

lc?(書込線色)

現在の書込線色を示す。範囲は「lc1」〜「lc9」。

lt?(書込線種)

現在の書込線種を示す。範囲は「lt1」〜「lt9」(通常線種)と、「lt11」〜「lt19」(ランダム線・倍長線色)。

cn?(書込文字種)

現在の書込文字種を示す。範囲は「cn0」〜「cn10」で、「cn0」は任意サイズ文字。
「cn0」の場合は、同じ行に文字列の高さ・幅・間隔・ペンNo情報も出力される。
以下、文字高さ3.5、文字幅3.5、文字間隔0、ペンNo2の場合。

cn0 3.5 3.5 0 2

cn"(文字フォント)

現在の書込文字フォントを出力する。バッチファイルで「REM #jww」を宣言したときのみ有効。Jw_win専用データ。
以下、「MS ゴシック」の場合。

cn"$<MS ゴシック>

図形データ(属性)

jwc_temp.txt(Jw_win)では、図形の属性情報と座標情報が別々になっている。
ここではレイヤ・線色といった属性に関する情報について説明する。

lg?

この行以後の図形データは、ここで指定したレイヤグループに所属するようになる。
範囲は「lg0」〜「lg9」「lga」〜「lgf」。
使用時は縮尺の変更に注意。Jw_win2.50以降、座標値は各レイヤグループの実寸値で扱う。

ly?

この行以後の図形データは、ここで指定したレイヤに所属するようになる。
範囲は「ly0」〜「ly9」「lya」〜「lyf」。

lc?

この行以後の図形データは、ここで指定した線色になる。
範囲は「lc1」〜「lc9」「lc10」。

「lc10」はソリッド図形用のデータで、任意色を指定した場合に使い、任意色の色情報もセットになっている。Jw_win専用データ。
色はRGB形式で指定でき、数値を算出する公式は、

[赤(0〜255)]+[緑(0〜255)*256]+[青(0〜255)*256*256]
となっている。

たとえば、R16,G32,B64の場合は、

16 + (32 * 256) + (64 * 256 * 256)
で、結果は「4202512」となる。
属性の指定は、
lc10 4202512
となる。

lt?

この行以後の図形データは、ここで指定した線種になる。
範囲は「lt1」〜「lt9」(通常線種)と、「lt11」〜「lt19」(ランダム線・倍長線色)。

cn?

この行以後の図形データ(文字列)は、ここで指定した文字種になる。
範囲は「cn0」〜「cn10」で、「cn0」の場合は任意サイズ文字。
文字幅4,文字高さ6,文字間隔2,文字ペンNo.5の任意サイズ文字は、

cn0 4 6 2 5
と表す。

cn(文字フォント)

この行以後の図形データ(文字列)は、ここで指定した文字フォントになる。
以下、「MS ゴシック」の場合。

cn"$<MS ゴシック>

z1〜z5(属性)

次行にある図形データの

の5属性を指定する。"z5"はJw_win専用データ。

複数指定も可で、その場合は数値が小さい順から並べる。
文字データにはハッチ(z1)属性はつけられない。


図形データ(座標)

jwc_temp.txt(Jw_win)では、図形の属性情報と座標情報が別々になっている。
ここでは線・円・文字といった座標に関する情報について説明する。

単線

線の始点(x1,y1)と終点(x2,y2)を区切って記述する。
行頭識別子はないので注意。
例、(100,200)と(300,400)を結ぶ線。

100 200 300 400

外部変形座標には三角形や四角形はなく、単線の集合で形成する。

ci(正円)

Jw_winの正円データは、中心のX,Y座標と半径で表される。
以下、中心点の座標が(100,200)、半径が(300)の場合。

ci 100 200 300

ci(正円弧)

Jw_winで正円弧を表現するには、

の情報が必要。
以下、中心X座標が100,同Y座標が200,半径が300,始角が45度,終角が180度の円弧の場合。
ci 100 200 300 45 180 1 0
語尾の「1」と「0」は、それぞれ偏平率と軸角。正円弧の場合は「1」と「0」固定でよい。

ci(楕円・楕円弧)

Jw_winで楕円を表現するには、

の情報が必要。

「偏平率」は、楕円・楕円弧のX軸半径の割合を1とした場合、Y軸半径の割合をいくつにするか示す。
「軸角」は、傾いた楕円を作図する場合に必要。X軸半径線の角度を与える。
以下、中心X座標が100,同Y座標が200,半径が300,偏平率が1.5、軸角が5度の楕円の場合。

ci 100 200 300 0 360 1.5 5
この場合は楕円なので、始角は「0」,終角は「360」となる。

これを、例えば45度〜75度の楕円弧にしたい場合は、

ci 100 200 300 45 75 1.5 5
と、する。

c?(文字)

Jw_winは文字列を以下の形式で表現する。

文字種類 x1 y1 xv1 yv1 "文字列
文字種類は、以下のどれかを使う。
x1,y1は文字列の左下の座標を示す。
左下以外の基準点で文字列を作図したい場合は、自前で計算して算出する必要がある。

xv1,yv1は、文字列の方向を示すのに必要なデータ。
文字列の左下座標を(0,0)とした場合、右下座標の方向を示す。

「"文字列」には文字列を入れる。先頭に「"」をつける必要がある。

外部変形で作成した文字列の基準点は左下固定となる。任意の設定はできない。

pt(点)

「pt x1 y1」であらわす。以下X座標が100,Y座標が200の点。

pt 100 200

外部変形では仮点の作図はできない。

pl(曲線)

曲線の実体は単線の集合である。以下のように記述する。 前の線の終点座標と、次の線の始点座標は一致させる必要がある。

pl
100 200 300 400
300 400 600 800
600 800 1200 1500
#

2-4.図形データ(座標-JWW専用)

以下はJw_win専用の図形データ。
ソリッド図形の角度は度数法ではなく、ラジアン単位でおこなう。

msg(寸法図形)

寸法図形は「線」と「寸法値」がセットになった図形。

で構成される。

寸法線が(x1,y1)-(x2,y2)、寸法値が(x3,y3,xv4,yv4,"文字列,文字種3)のデータを寸法図形とする場合は、

msg
x1 y1 x2 y2
cn3
cs x3 y3 xv4 yv4 "文字列
#
とする。
3行目の文字種データは省略可。

なお、以下のデータの算出は自前でおこなう必要がある。


また、なぜか外部変形で作図した寸法図形には寸法属性はつかないので、注意。
座標ファイルで扱う場合は、"msg"を"msz"に変更する。

BL(ブロック図形)

ブロック図形は、外部変形では内容の変更や新規作成はできない。
外部変形で取り出せる情報は、

のみ。X座標100,Y座標200,ブロック名が「hogehoge」の場合は、
BL 100 200 "hogehoge
#
となる。BLは大文字なので注意。

sl(線形ソリッド図形)

x1,y1とx2,y2を結ぶ線形ソリッドは
sl x1 y1 x2 y2
で表せる。

sl(三角形ソリッド図形)

x1,y1とx2,y2とx3,y3を頂点とする三角形は、
sl x1 y1 x2 y2 x3 y3
で表せる。

sl(四角形ソリッド図形)

x1,y1とx2,y2とx3,y3とx4,y4を頂点とする四角形は、
sl x1 y1 x2 y2 x3 y3 x4 y4
で表せる。

sc(円ソリッド図形)

sc x1 y1 r1 hp zk a1 a3 f1
円フラグは、 となる。
円ソリッド

se(円周ソリッド図形)

se x1 y1 r1 hp zk a1 a3 f1
円フラグは、 となる。

so/sg(円環ソリッド図形)

so x1 y1 r1 hp zk a1 a3 r2
sg x1 y1 r1 hp zk a1 a3 r2
楕円の場合、"so"を使うと、内円は外円と同じ扁平率になる。
"sg"を使うと、円環ソリッドの厚さが同一となる。
円環ソリッド

2-5.レイヤデータ

レイヤに関する情報は、バッチファイルで「REM #gn」を指定したときのみ出力される。
外部変形で変更できるレイヤ情報は今のところ のみ。レイヤグループ・レイヤの表示状態については情報の取得のみ可能。

レイヤ状態フラグ

数値編集表示P(/)P(X)
00不可非表示なしなし
01不可表示なしなし
11可能表示なしなし
20不可非表示ありなし
21不可表示ありなし
30可能非表示ありなし
31可能表示ありなし
60不可非表示なしあり
61不可表示なしあり
70可能非表示なしあり
71可能表示なしあり
Pはプロテクトレイヤ。

lg(レイヤグループ状態)

lg%x %d

lgn(レイヤグループ名)

書込レイヤグループ名を示す。**************がレイヤグループ名。
lgn**************

ly(レイヤ状態)

ly%x %d

lyn(レイヤ名)

書込レイヤ名を示す。**************がレイヤ名。
lyn**************

3-1.書き出し専用データ

以下はjwc_temp.txtをJw_winに戻す場合にのみ有効な命令。

hd(選択データ削除)

範囲選択されたデータを削除する。

he(エラーメッセージ表示)

作図画面の左上にエラーを表示する。
heエラーが発生しました。

hr(外部変形連続実行)

前回に実行した外部変形を引き続き実行できるようになる。
バッチファイルの「REM #hr」と同機能。

h/(別の外部変形に移行)

h/********.BAT
別の外部変形プログラムの実行に移行できる。
バッチファイルの「h/」と同機能。

h#(注意文表示)

作図画面の左上にメッセージを表示する。
h#処理は完了しました。

by(読み込み倍率指定)

読み込み倍率を指定する。以下2倍の場合。
by 2

home index
D mintleaf@mint.freemail.ne.jp