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書込線種の変更
z1z5ハッチ・図形・寸法・建具属性

一般的な図形データ

識別子書式
線データ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 y2100行
連続線記法(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# でメッセージング」で配布品質が上がる