DWFの座標系を調べてみる。この画像の座標データは上のinfoで表示する。 ピクセル単位のWindow座標は、objectタグで指定したwidth=400、 height=300に対応する。これがWHIPオブジェクトの窓スペース。 DWF図面の最大範囲を指すDrawingExtentsで縦41603、横41603の範囲を読み取れる。 DWGでは、左下(-50、-50)、右上(50、50)、縦100、横100の四角を 範囲指定してDWF変換した。41603/100=416.03が変換率。 座標原点はDWFの場合左下が(0、0)のようだ。 DWFファイル内のオブジェクトは、すべてこのDrawing座標で定義されている。 これを、ファイル空間座標と呼ぶ。 CurrentViewはこのDWF図面最大範囲のどこをクリッピングしているかで決まる。 拡大すれば図面範囲の領域内座標どなり、縮小して図面領域がWindow窓スペースの一部となれば 、Top、Botomm、Left、Rightの座標値は最大範囲値を超える値となる。 整理すると、 CurrentViewはDWFファイル空間座標(原点は初期画面の定義域左下)による、 Window窓のTop、Botomm、Left、Rightの値。 となる。 上の画像を拡大、縮小、移動して、下のinfoをクリックでCurrentViewの変化を確認できる。それ以外は拡大、縮小、移動で変化しないことが分かる。 次に、元の図面、DWGの座標とDWFの座標の関係がどうなのかを見てみよう。 この場合、変換率は上で調べた。座標原点の関係が分かればいい。多分、UNITタグの最後の数値がそれだろう。javaScriptにComputeCoordinateメソッドが定義されている。ソース (DWG、0番)、 DWF(1番)、Window(2番)の間で座標変換ができる。 できるはずなのだが、WHIP3.1、WIN98、IE6の環境でうまく機能しない。残念だ。 DWFのファイル空間座標がつかめたので、ADDメソットでDWFに書き込みをしてみよう。これまで座標系を確認してきたのはこのためだった。確認実験をしよう。上のADDLIEボタンには以下のソースコードがリンクしてある。
DWFはAutoCAD図面の閲覧、印刷のためのファイルフォーマット。図面を書くことはできない。という常識は嘘のようだ。「動く」ページを書けるWebクリエータはjavaScriptで、もらった図面に書き込みができる。DWFの構造を理解できるWebクリエータはDWFからDXFコンバータをスクリプトで作れる。これが正解のようだ。ただしDWFはASCIIセーブされているのが前提であるが。 |