「S造の施工図を鉄骨ファブに作図指示するため、または、ササラ受鋼材の位置や階段有効幅の確認等をするために、討議検討図面を作成したい。踏み面、蹴上、段数等を入力して現寸図を作るための方法を考えてくれ」との相談があり考えてみた。各種変数をtxtファイルに格納してAWKコードで作ろうかと思い浮かんだが、ファブの担当者がコードを理解し保守メンテできないため諦めた。エクセルの関数や計算式なら理解しやすいことから、エクセルで各種サイズの変数を事前指示することで座標値計算をし、JWWの座標データに変換することでJWWで図形を描く外部変形を作ってみた。_末広町さんのご厚意でご紹介

1.エクセルで座標値を計算しjwwが読み込めるファイルデータ形式で書き出す
jwwでは外部データ取込に座標ファイルデータ読込機能がある。私の今回の試みでは、エクセルからtxtファイル作成時にjwwの文字列データ形式に変換できなかったため外部変形で処理した。(cv %lg %lg %lg %lg “文字列の「”」の処理をエクセルだけで実現できなかったため、awkでエクセルで吐き出した「”」を消去し、jwc_temp.txtに渡して実現した。)
jwwで読み込むためのデータ形式を予めテンプレート行に作っておき必要に応じて必要な行にコピペして使うためのマクロを作った。データ形式は線・点・文字等多くあるのでサブメニューを右クリックでホップアップさせて必要な形式を選択できるようにメニューにマクロボタンを配置した。



txtファイルへの変換保存するマクロはホップアップメニューの最下端に配置した。マクロを実行すると文字形式は”ch 0 0 1000 0 ””p0基準点”の様に不要な「”」が付く。これを次工程のgawkで消去する。
2.jwwでエクセルで書き出したtxtファイルを読み込み修正完成する
jwwでは外部変形のkaidan.batを起動させて、エクセルで書き出したzahyou_crd.txtをgawkで読込み、置換処理をしてjwc_temp.txtに渡す。これによりjwwがエクセルの図形データを読み取っている。図形が表示されたら必要な処理をjwwで行い完成させる。階段の段一つ一つの描画等はjwwでの複写貼付けの方が処理が速いためで、今回のエクセルシートでは線・点・寸法・文字一つ一つの行をコピペしなければならない。マクロを組んでいないので段数の可変に対し段数分対応していないものです。このアプリは仕組みを理解していただくためのものでもあります

エクセルブックの保守メンテナンス:
エクセルシートのD列の内容がtxtファイルに書き込まれます。D列セルには各セルで計算した値をjwwで読み込めるように計算式が入っています。通常時は非表示で使います。改良して使う場合はマクロ(txt_file作成)の列記述も修正してください。
Open SavePath For Output As #1
LR = .Cells(Rows.Count, 4).End(xlUp).Row ‘最終行を取得 4がC列です
‘値を書き込む
For i = 102 To LR
Print #1, Cells(i, 1)
Next i
‘保存して閉じる
Close #1
3.外部変形の仕込み方等
お試しは下記をDLしてください。
フォルダーの配置
kaidan.zipを解凍し、c:\jww\gaihenの中にフォルダkaidanを入れる。実行するbatファイルはkaidan.batです。パスは c:\jww\gaihen\kaidan\kaidan.batとなります。c:\jwwにパスが通っていて、gawk.exeが入っていることが前提です。
パスの通し方、gawkの仕込み方はこちらのpage→ 外部変形導入
