« ウィンドウタイトルをフルパスに | メイン | 外変データ書出し&編集.bat »

2006年02月01日

●外部変形の仕組み

良く解っているようで、解っていない。外部変形の仕組み。私も正直解りません。(^^ゞ

BATファイルが有って、EXEやAWK、Ruby 等のスクリプトファイルが有るんだって・・
JWWで、BATファイルを選択し実行すると、もの凄いスピードで処理されて目的の作図が完成するんだよ。
いったい、パソコンの中でどんな処理が行われているの?

旨く動いていれば問題ないのですが、「動かない。」って話しになると、この処理がどのように行われているかって事を少しでも理解していると原因の究明に繋がっていくと思います。

簡単に書くと・・

1・JWWで外部変形のBATファイルの指示通りデータを選択する。
  ↓
2・JWWがそのデータをテンポラリファイル(jwc_temp.txt)という名前で書き出し保存します。
  ↓
3・その(jwc_temp.txt)というファイルを、任意のプログラムが見て自分に与えられた処理をする。
  ↓
4・その処理した結果を(jwc_temp.txt)へ書き出して処理された結果に変更する。
  ↓
5・今度は、その変更された内容をJWWが読み込み画面に作図する。

と言った内容です。

こうやって見てみると、この(jwc_temp.txt)という中間ファイルが、うまく書き出されるか?処理されるか?読み込まれるか?
この辺が問題になってくるような気がします。
実際には、もっと細かな作業をしています。特に3番4番の任意のプログラムが行う処理には他の作業も付け加えられます。
この任意のプログラムというのが、EXE、AWK、Ruby になる訳です。
EXEは、単独実行型ですので単体で動きますが、AWK、Rubyは、スクリプト型で他のファイルのインストールが必要です。
詳細は、右サイドバーの「AWKのインストール」「Rubyのインストール」を確認して下さい。

外部変形が動かない原因。
BATファイルの記述内容、各ファイルの設置場所、などが指示した内容とは違った場所に有る為に(jwc_temp.txt)を書き出したり読み込んだり出来ないって原因が多いようです。

コメント

Jw_win.exe → jwc_temp.txtにて
外部プログラムチェック文字"hq"を書き込み
戻ってきた時、この文字があると"未実行 "が
表示されます。
従ってスクリプトでは、この"hq"を消さなくてはいけないんです。

外変の不具合報告は、まず、jwc_temp.txtを
見てみましょう!

▼ 住職さん

そうなんですよね。
上の2番の作業で、JWWが(jwc_temp.txt)へ書き出す時にこの「hq」を実行チェック文字として書き出す。
上の4番の作業で、任意の外部プログラムが無事に処理が済んで(jwc_temp.txt)へ書き出す時にこの「hq」の文字を消す訳です。
ところが、何かの事情で無事に処理が済まない場合は、そのまま残ってしまう。
5番の作業で、JWWが(jwc_temp.txt)を読み込みに行った時に、「hq」が有ると処理が済んでません。という事で実行出来ません。
という事ですよね?

では、その何かの事情ってのは、何?
という事を思いついた時に此処で少しずつ書いていこうかな・・・と思ってます。

長ぁ~い目で(^^ゞ

marusanさん、住職さん、こんばんは。

「外部変形を考える」共同執筆との期待しております。

私も外部変形機能については良く解らない事があります。
REM文記述のデータ選択方法なども位置により機能しない事もありまた理論上正しいと思っても誤動作する事も多々あります。

最期は実際外部変形を実行してみて検証するしかありません。

それにはjww書出しデータの出力様式を確認しなければならない訳です。
特に今回のjww5.00eになってからはSXF対応拡張線も出力対象になっておりその確認が必要となってきています。

SXF拡張線色はjww基本9色と同じように色の要素には無関係のデータとして書き出されますのでこの辺がソリッド任意色と大きく違う処でありまた混乱する一因ともなっているようです。

私は、下記のようなバッチファイルで書出しデータの確認及び読込実験をしております。

@REM 外変データ書出し&編集
@echo off
REM #jww
REM #cd
REM #h1
REM #hc データを範囲選択
REM #g1
REM #zz ハッチ・図形・寸法・建具属性
REM #zw 線幅
REM #e
start /w notepad.exe jwc_temp.txt
rem pause

やはり外部変形はjwc_temp.txtの解析に全てがあるようです。

金桜さん、お疲れ様です。

方々でも話題が出てますが、Jw_cad5の新機能、新データ形式で、外部変形作者さま方の検証作業は大変なようですね。
それに関連するソフトや関係データも再検討を要している様子です。
金桜さんも、ご苦労も察します。siegelさん所での順次のアップを拝見して感心しております。

此処も、何も解らない私にsiegelさんという偉大な助け人が付いてくれて、何とか続けていけるかな?と思ってます。
金桜さんもちょくちょく覗いて助言をお願いしますね。

PS
コメント頂いた、「外変データ書出し&編集」のBATファイルを参考書として新たにエントリー記事にさせて下さい。

marusanさん、住職さん、こんばんは。

昨日は、私の参考BATを記事にして頂き恐縮です。

外部変形という言葉を聞きますとプログラムや
スクリプトの作成といった事がまず頭に浮かびます。
確かに多くの外部変形は外部プログラムにより処理する場合が殆どですがこの為には各種言語をある程度理解使用できる人でないと作成が難しいのも事実です。

しかし、原点に返ってみますと必ずしも外部プログラムを使用しないでも外部変形BATの作成は可能です。

昨日の「外変データ書出&編集」も裏を返せばデータ変更等の外部変形となります。

其のほかにもwindows付属の各種ソフトの起動も外変BATから起動できます。

各種ソフト起動例

@REM 各種ソフト起動
@echo off
goto do%1
REM #jww
REM #cd
REM #hm |①Jww|②Excel|③Word|④メモ帳|⑤ペイント|⑥ 電卓|⑦エクスプローラ|
REM #:1
REM #:2
REM #:3
REM #:4
REM #:5
REM #:6
REM #h0
REM #hr
REM #e
REM #:7
REM #h0
REM #c 表示ドライブ入力 (無指定 全ドライブ表示) :/_
REM #hr
REM #e
:do1
start c:\jww\jw_win.exe > jwc_temp.txt
goto END
:do2
start excel.exe > jwc_temp.txt
goto END
:do3
start winword.exe > jwc_temp.txt
goto END
:do4
start notepad.exe > jwc_temp.txt
goto END
:do5
start mspaint.exe > jwc_temp.txt
goto END
:do6
start calc.exe > jwc_temp.txt
goto END
:do7
start explorer.exe %2 > jwc_temp.txt
goto END

rem ☆参考
rem 上記例では起動方法を/wを除いたstartコマンドを使用しています。
rem この方法ですとソフト起動と同時にDOS窓が閉じます。
rem 但し/wを付けなければならない場合もありますので注意が必要です。
rem
rem ☆注意点
rem ファイルをコマンドラインに設定する場合に於いて該当ファイルま
rem たはフォルダが空白を含む場合はフルパスを" "で括って下さい。
rem
rem ---例---
rem start c:\jww\jw_win.exe "c:\my data\jww file\smple.jww" > jwc_temp.txt
rem

:END

一般ユーザーの方はこの辺から外部変形に挑戦するのも一法だと思います。

コメントする