Skip to content
未検証

外部変形 読み込みデータ仕様 ​

このページでできるようになること ​

外部プログラム(exe/awk/ruby等)が Jw_cad へ結果を返すときに、JWC_TEMP.TXT に書き込むべき 読み込みデータの書式 を体系的に理解できるようになります。書き込みデータ(Jw_cad → 外部プログラム)と書式は大半が共通ですが、読み込み専用の制御コマンド(he エラー表示・by 倍率指定・hd 選択削除等)と、書き込みにはない 連続線・相対座標・極座標による効率的な線データ書式 があります。この記事では読み込み固有のコマンド・連続線3形式(直交/相対/極)・曲線属性化を実例付きで網羅します。

背景: 書き込みデータ(外部変形 書き込みデータ仕様 ※準備中)と読み込みデータでは、hq lc ch ci 等の 基本の識別子は共通 です。違うのは「読み込みでしか使わない制御コマンド」と「複数の点を一気に線でつなぐ効率記法」の有無。本記事では読み込み固有部分に重点を置いて整理します。

Tips: 線データの記法は、外部プログラムが大量の線を出力する場面で コードの簡潔さ・実行速度 に直結します。直交座標(x1 y1 x2 y2)の繰り返しは行数が多くなりがちですが、連続線記法(座標を1点ずつ並べる)を使えば1/2の行数で済みます。


読み込みデータの全体構造 ​

書き込みとの共通/専用の住み分け ​

機能書き込み(Jw_cad → 外プロ)読み込み(外プロ → Jw_cad)
環境設定(縮尺・文字種等)あり(hk hs hcw 等)一部あり(lg ly lc lt の変更)
図形データありあり(書式は共通)
制御コマンドバッチで指定(REM #〜)データ内で指定(he hd by bz 等)
連続線・相対・極座標なし(直交のみ)読み込みでのみ使える効率記法

読み込みデータの典型構成 ​

hq        ← 残っていると未実行扱い(外部プログラムが消す)
he処理エラー  ← エラー表示(任意)
hd        ← 選択範囲を削除
lc2
lt1
ly0
0 0 100 0       ← 線データ(直交)
ci 50 50 25     ← 円データ
ch 0 -10 30 0 "結果   ← 横文字

行頭 # はコメント ​

書き込みデータと同様、行頭 # はコメント行として無視されます。


読み込み専用の制御コマンド ​

hq ── 外部プログラム実行チェック文字 ​

書き込み時に冒頭に置かれる hq を 外部プログラム側で削除しないと、Jw_cadは「未実行」と判断して読み込みを行いません。

対応方法パターン
パターンA結果書き込み前に元のJWC_TEMP.TXTを読み捨て、新規ファイルとして書き直す(hqも消える)
パターンB元のJWC_TEMP.TXTをそのまま読み込みつつ、hq を含まない別ファイルを作って差し替え
パターンC元のJWC_TEMP.TXTを開き、hq 行のみ削除して書き戻す

PERSCの推奨: シンプルさの観点では パターンA(新規作成) が最も安全です。元ファイルの内容を保持する必要がない処理(純粋な作図系外変)では、出力ファイルを新規生成するだけで済みます。

he文字列 ── エラー表示 ​

書式: he の直後にエラーメッセージ。

he処理対象が見つかりませんでした

Jw_cad画面に エラーダイアログ が表示されます。

要確認: s-projects解説によれば「文字列後に改行を入れないと最後の文字が表示されません」。実機で末尾欠落の挙動を確認する必要あり。

hd ── 選択データを削除 ​

バッチの REM #h1〜#h4 で選択された 元の図形を削除 します。

外部変形の典型動作は「選択範囲を削除 → 結果を書き戻す」ですが、hd 行を入れない限り元図形は残ります。意図的に上書きしたいときは hd を必ず入れます。

背景: hd を入れないと 元の図形と新しい図形が二重に存在 することになります。形状変換系の外変(線→曲線、ハッチ→ソリッド等)では hd がほぼ必須です。

hr ── 外部変形の繰り返し指定 ​

外部プログラム側でも繰り返し実行を指示できます。バッチの REM #hr と同等の機能です。

h/ファイル名.BAT ── 別の外部変形への移行 ​

h/次の処理.BAT

現在の外部変形終了後、別のバッチへ処理を移行します。

h#文字列 ── 注意文表示 ​

書式: h# の直後に注意メッセージ。

h#結果が10件を超えました

エラーではない補足情報として表示されます。

by ── 読み込み倍率指定 ​

書式: by倍率

by10

→ 以降の図形が 10倍の大きさ で作図されます。

bz / b0 ── 図面寸法読み込みのON/OFF ​

識別子動作
bz各座標を 図面寸法(縮尺反映後) で読み込む
b0bz の解除(実寸読み込みに戻す)

例: 半径10の円 ci 0 0 10 を、尺度1/10の図面に bz 付きで描画すると、図面上は半径100 の円になります。

lg / lgn / ly / lyn ── 書込レイヤの変更 ​

外部プログラム側から書込先のレイヤグループ・レイヤ・名称を変更できます。

識別子内容例
lg書込レイヤグループの番号変更lg2
lgn書込レイヤグループ名の変更lgn寸法
ly書込レイヤの番号変更ly2
lyn書込レイヤ名の変更lyn寸法

PERSCの推奨: 結果図形を 専用のレイヤに分けて作図 する設計にしておくと、後から結果だけ削除・編集できて便利です。たとえば「外部変形 三斜面積結果」レイヤを lg5 ly0 lgn求積 lyn面積結果 で確保しておく等。


書き込みデータと共通の識別子 ​

以下は書き込みデータと書式が同じため、本記事では一覧のみ示します。詳細は 外部変形 書き込みデータ仕様 ※準備中 を参照してください。

設定変更系 ​

識別子内容
lc書込線色の変更
lt書込線種の変更
z1〜z5ハッチ・図形・寸法・建具属性

一般的な図形データ ​

識別子書式
線データx1 y1 x2 y2
ci円: ci x y 半径 / 円弧・楕円: ci x y 半径 開始角度 終了角度 扁平率 傾き角度

文字データ ​

識別子内容
cn文字種の変更
cn"$<フォント名>文字フォント
cn"$<フォント名>/文字フォントと斜体
cc文字基準点
ch横文字
cv縦文字
cs寸法値
cr半径寸法値
co直径寸法値
cp角度寸法値
ct累寸寸法値
ck日影真北データ
cz日影建物高さデータ
c22.5Dデータ

特殊な図形データ ​

識別子内容
pn点種の変更
pt点データ
pl曲線データ
msg寸法図形データ
sl線形・三角形・四角形ソリッド
sc円ソリッド
se円周ソリッド
so円環ソリッド(扁平率一定)
sg円環ソリッド(幅一定)

連続線データ(読み込み専用の効率記法) ​

外部プログラムから多数の線を出力するとき、x1 y1 x2 y2 を繰り返し書くのは冗長です。読み込みデータでは 座標を1点ずつ並べるだけで連続した線 として作図できます。

基本書式 ​

10 10
10 -10
-10 -10
-10 10
10 10

→ (10,10) → (10,-10) → (-10,-10) → (-10,10) → (10,10) という4辺の線を作図。前の線の終点が次の線の始点 になる仕組みです。

線端部に文字列を作図 ​

座標の後に "文字列 を付けると、線端部に文字列と点が一緒に作図 されます。

10 10 "点1
10 -10 "点2
-10 -10 "点3
-10 10 "点4
10 10

→ 各頂点に「点1」「点2」「点3」「点4」が点付きで作図されます。

線端部に番号を作図(増分指定) ​

座標の後に "数字"+増分 を付けると、最初の数字から増分ずつカウントアップ しながら作図されます。

10 10 "1"+1
10 -10
-10 -10
-10 10
10 10 "

→ 各頂点に「1」「2」「3」「4」と自動採番。増分を省略すると +1 が既定値です。最後の 10 10 " は 空文字列で番号作図をキャンセル(始点と終点が同じため番号が重複しないように)。

文字+数字の組み合わせ ​

数字の前に文字列を入れることもできます(数字の後に文字列を入れると、数字も含めて全部が文字列扱いになる点に注意)。

10 10 "点1"+1
10 -10
-10 -10
-10 10
10 10 "

→ 「点1」「点2」「点3」「点4」と作図。全角数字も使えます。

PERSCの推奨: 求積図の頂点番号自動採番で重宝する記法です。"1"+1 だけ覚えれば多くの場面で使えます。


相対座標による連続線データ ​

絶対座標ではなく、前の線分の終点からの相対距離 で線を作図する記法です。

基本書式 r1 ​

r1
x1 y1
x2 y2
x3 y3
線始点終点
1本目基準点基準点から (x1, y1) 移動した点
2本目1本目の終点そこから (x2, y2) 移動した点
3本目2本目の終点そこから (x3, y3) 移動した点

空行を入れると相対座標モードを解除 できます。

前の線を座標軸とする r11(10の位を1) ​

r11 のように10の位を1にすると、前に作図した線を座標軸とした相対座標 で線を作図します。

r11
10 10
0 20

→ 1本目は基準点から(10,10)。2本目は1本目の方向(45度)を新X軸として、そこから(0,20)の方向に進む線。

背景: 階段・スロープ等、進行方向に沿った繰り返し作図 に向く記法です。建築実務ではあまり使われませんが、外部変形の中でジグザグや螺旋を生成する場面で活躍します。


極座標による連続線データ ​

角度と長さ で線を指定する記法です。

基本書式 k1 ​

k1
θ1 L1
θ2 L2
線始点方向長さ
1本目基準点角度θ1(画面X軸基準)L1
2本目1本目の終点角度θ2L2

空行を入れると極座標モードを解除 できます。

派生指定(数字の桁・符号で挙動変更) ​

指定動作
k1基本(θは度、左回りが正、画面X軸基準)
k2θが 度分秒 の読み込み(例: 30.03033 → 30度3分3.3秒)
k-1θが 右回りで正
k11θが 前線の始点→終点方向 に対する角度(10の位を1)
k21θが 前線の終点→始点方向 に対する角度(10の位を2)

例: 前線基準の極座標 ​

k11
90 10
90 20

→ 1本目は基準点から角度90度(左回り、画面X軸基準)に長さ10。2本目は1本目の方向を新基準として、そこから左90度方向に長さ20。

PERSCの推奨: 多角形の自動生成(n角形・星型・らせん)で重宝します。k11 を使うと 「直前の線の方向から何度曲がるか」 だけで形状が決まるため、図形ジェネレータ系の外変で頻出します。


曲線属性化したソリッド図形 ​

複数のソリッド図形を 曲線属性化して、ひとつの図形として扱える ようにする記法です。

基本書式 pl ​

pl
sl -10 -10 0 -10 0 0 -10 0
sl 10 10 0 10 0 0 10 0

→ 2つの四角形ソリッドを1つの曲線属性図形として作図。空行または r0 を入れることで解除 できます。

背景: ソリッドを多数組み合わせて1つのデザイン要素を作るとき(例: 複雑な記号・ロゴマーク)、曲線属性化しておくと 後から1クリックで全体を選択・移動・削除 できて便利です。


実務での使い方 ★PERSC独自 ​

連続線記法でコードを短くする ​

外部プログラムから100本の線を出力する場面を考えると、直交記法と連続線記法では行数が大きく違います。

記法100本の線を出力するための行数
直交記法(x1 y1 x2 y2)100行
連続線記法(x y を1点ずつ)101行(始点+100点)

数だけ見ると同等ですが、前の線の終点と次の線の始点が一致する場合(多角形・つながった折れ線)に連続線記法が圧倒的に短くなります。閉じた多角形なら、連続線で n 頂点 → n 行で済みます。

bz を使った縮尺感応の作図 ​

bz を入れて図面寸法で読み込むと、図面の縮尺に応じて結果が拡大縮小 されます。同じ外部プログラムを縮尺1/100の図面で使っても1/200で使っても、画面上での見た目(用紙mm)が一定 になります。注釈・記号系の外変では bz を入れる設計が読み手に優しい挙動になります。

lg ly でレイヤ分けの作法 ​

PERSC編集部では、結果図形を 「外変結果専用レイヤ」 に書き出す運用を推奨しています。

シーン推奨レイヤ
求積図結果lg5 ly0(レイヤグループ5の専用領域)
雲マークlg7 ly0(指摘記号専用)
一括変換結果元レイヤと別の ly に書き出し

これにより、結果が気に入らない場合に そのレイヤだけ非表示・削除 で簡単にやり直せます。

he h# でエラー・注意の親切設計 ​

外部プログラム側で異常を検出したときに he でエラーメッセージを返すだけで、ユーザーは原因を把握できます。配布する外部変形では:

  • 入力データが0件 → he対象データが選択されていません
  • 計算結果が異常 → h#計算結果が想定範囲を超えました(例外処理されました)

のような 段階的なメッセージング を仕込むと、ユーザビリティが大きく向上します。

hd の使い分け ​

「元図形を消すか残すか」は外変の性格で決まります。

動作例hd
形状変換(線→ソリッド等)単純化必要
集計・出力(変化なし)図形数集計→テキスト書出不要
注釈追加(元はそのまま)雲マーク・寸法追加不要
一括属性変更(元を消して新色で書き直し)線色一括変換必要

つまずきポイント・対処 ★PERSC独自 ​

Q: 外部プログラムが終わっても「未実行」と表示される ​

→ JWC_TEMP.TXTの 冒頭に hq が残っている ことが原因です。外部プログラムの出力時に hq を含めない、または既存ファイルから hq 行を削除する処理が必要です。最も簡単なのは、出力ファイルを新規作成し直すパターンA(実務節参照)。

Q: 結果が想定の10倍の大きさで作図される ​

→ by 倍率指定が残っている可能性があります。前回の外部変形で by10 を出していると、Jw_cadが現在のセッションでも保持しているケースがあります。新規外変では明示的に by1 を出すか、不要な by を入れない設計にします。

Q: bz を入れたら結果が縮尺の逆数倍になる ​

→ bz は 「読み込んだ座標を図面寸法として扱う」 指定です。尺度1/100の図面に bz 付きで ci 0 0 10 を書くと、図面上は半径1000 の円(実寸換算で1/100)になります。挙動を逆と覚えていないか確認してください。

Q: he メッセージの末尾文字が表示されない ​

→ s-projects解説によれば、he の文字列後に 改行を入れないと最後の文字が表示されない 仕様です。出力時は必ず文字列の末尾に改行コードを入れてください。

Q: 連続線記法で意図しない位置に文字が出る ​

→ 座標の後に " だけ書くと 空文字列で文字作図 が指示されます。番号作図のキャンセル目的で使う場合は問題ありませんが、誤って " を入れると無関係な点が現れます。

Q: 相対座標 r1 を解除できない ​

→ 空行を1行入れる と解除できます。エディタで保存したつもりが空行が消えていることがあるので、エディタの「改行表示」で確認してください。

Q: 極座標 k1 で角度の方向が逆になる ​

→ k1 の角度は 左回り(反時計回り)が正 です。一般的な工学では右回りが正の流派もあるため、k-1 で反転させる必要があるかもしれません。

Q: pl 曲線属性化したソリッドが分解できない ​

→ 曲線属性化されたソリッドは、Jw_cad本体の「属性変更」コマンド で曲線属性を解除すれば個別に分離できます。外部変形のデータ側では r0 または空行を入れて属性化を解除しておくのも一案です。

Q: 大量の線を出力すると Jw_cad が遅くなる ​

→ 連続線記法(x y の繰り返し)に切り替えると、Jw_cad側のパース処理が軽量 になります。直交記法の倍以上の速度差が出ることもあります。

Q: 文字データ後の改行が抜けていて以降のデータが結合される ​

→ ch cs 等の文字データは "文字列 の後にすぐ改行 が必要です。文字列内に改行を入れることもできない(1行に収める)ため、書き込み側プログラムの改行処理を確認してください。


関連項目 ​


まとめ ​

  • 読み込みデータは 書き込みと共通の識別子+読み込み専用の制御コマンド で構成
  • 専用制御コマンドは hq 削除・he エラー・hd 削除・by 倍率・bz 図面寸法・lg/ly レイヤ変更
  • 連続線記法(x y を並べる)で多角形・折れ線が短く書ける
  • 相対座標 r1(前点から)と前線軸 r11 で繰り返し作図が容易
  • 極座標 k1(角度+長さ)と派生(度分秒・前線基準)で多角形ジェネレータが書ける
  • 曲線属性化 pl + ソリッドで複雑な図形を1単位として扱える
  • 自作外変では「結果を専用レイヤに書く」「he h# でメッセージング」で配布品質が上がる

Jw_cadを体系的に学ぶなら — 操作の断片ではなく、実務の作図フローを順番に習得できます。

▶ PERSCのJw_cad講座を見る