Appearance
外部変形 読み込みデータ仕様
このページでできるようになること
外部プログラム(exe/awk/ruby等)が Jw_cad へ結果を返すときに、JWC_TEMP.TXT に書き込むべき 読み込みデータの書式 を体系的に理解できるようになります。書き込みデータ(Jw_cad → 外部プログラム)と書式は大半が共通ですが、読み込み専用の制御コマンド(he エラー表示・by 倍率指定・hd 選択削除等)と、書き込みにはない 連続線・相対座標・極座標による効率的な線データ書式 があります。この記事では読み込み固有のコマンド・連続線3形式(直交/相対/極)・曲線属性化を実例付きで網羅します。
背景: 書き込みデータ(外部変形 書き込みデータ仕様 ※準備中)と読み込みデータでは、
hqlcchci等の 基本の識別子は共通 です。違うのは「読み込みでしか使わない制御コマンド」と「複数の点を一気に線でつなぐ効率記法」の有無。本記事では読み込み固有部分に重点を置いて整理します。
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 | 各座標を 図面寸法(縮尺反映後) で読み込む |
b0 | bz の解除(実寸読み込みに戻す) |
例: 半径10の円 ci 0 0 10 を、尺度1/10の図面に bz 付きで描画すると、図面上は半径100 の円になります。
lg / lgn / ly / lyn ── 書込レイヤの変更
外部プログラム側から書込先のレイヤグループ・レイヤ・名称を変更できます。
| 識別子 | 内容 | 例 |
|---|---|---|
lg | 書込レイヤグループの番号変更 | lg2 |
lgn | 書込レイヤグループ名の変更 | lgn寸法 |
ly | 書込レイヤの番号変更 | ly2 |
lyn | 書込レイヤ名の変更 | lyn寸法 |
PERSCの推奨: 結果図形を 専用のレイヤに分けて作図 する設計にしておくと、後から結果だけ削除・編集できて便利です。たとえば「外部変形 三斜面積結果」レイヤを
lg5ly0lgn求積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 | 日影建物高さデータ |
c2 | 2.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本目の終点 | 角度θ2 | L2 |
空行を入れると極座標モードを解除 できます。
派生指定(数字の桁・符号で挙動変更)
| 指定 | 動作 |
|---|---|
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行に収める)ため、書き込み側プログラムの改行処理を確認してください。
関連項目
- 外部変形の基本(使い方とバッチ起動) — 外部変形の概念とJWC_TEMP.TXT介在の仕組み
- 外部変形バッチファイルのコマンド一覧 ※準備中 —
REM #〜のバッチコマンド網羅 - 外部変形 書き込みデータ仕様 ※準備中 — Jw_cadから外部プログラムへ渡されるデータ書式
- 外部変形プログラムの導入 — 配布物の導入手順
- 座標ファイルの書式仕様 — 図形データ書式の参考
- 日影図 ※準備中 —
ckczを使う標準添付外変 - 2.5D(立体表示・アイソメ図) ※準備中 —
c2識別子の解説
まとめ
- 読み込みデータは 書き込みと共通の識別子+読み込み専用の制御コマンド で構成
- 専用制御コマンドは
hq削除・heエラー・hd削除・by倍率・bz図面寸法・lg/lyレイヤ変更 - 連続線記法(
x yを並べる)で多角形・折れ線が短く書ける - 相対座標
r1(前点から)と前線軸r11で繰り返し作図が容易 - 極座標
k1(角度+長さ)と派生(度分秒・前線基準)で多角形ジェネレータが書ける - 曲線属性化
pl+ ソリッドで複雑な図形を1単位として扱える - 自作外変では「結果を専用レイヤに書く」「
heh#でメッセージング」で配布品質が上がる