DWFプログラミング(その4)





 lead

 load
 load
 load

merge/replace
auto










 DWFのWHIP!VBscriptリファレンスを眺め、次のメソッドをピックアップした。
  • streamname
  • loadstreamautomatically
  • mergedwf
  • add
  • Setinsertionscale
  • Setinsertiontranslation
  • addbyref
     何をしたいかと言えば、分割ローディング。ラスターデータにはストリーミング という方法がある。データ転送完了を待たず、届いた部分から再生をして行く方法。 ベクタ画像は、白地図、道路、河川、地名、街区といった項目別にデータを作り、 項目単位で転送表示して合成していく方法が取れる。地図を見る人は、紙の地図の ように、すべてが書き込まれた画像を最初に見て、その中から必要な情報を探し出 すのではなく、白地図を見て次に行政界をダウンロードし、次に地名を合成して行 く。そのほうが目的の位置を探すのに便利だ。河川のデータは必要としない時もあ る。電子地図とは、このような使い方ができるはずだ。紙の地図のイメージに囚わ れているとできないが、電子地図のデータ構造から組み立てれば、自然に発想され るものだ。

     Addについては実験済みだ。ADDbyrefはc++ レベルで生の dwf 高速送信手順。 C知らずの悲しさ。この方法があることだけ覚えておこう。
      Setinsertiontranslation、SetinsertionscaleはAddの時、平行移動とスケール 変換ができる。シンプルなデータを作成するのが第一だが、合成時に微調整は 可能なことは覚えておこう。

  •  
    mergedwf
     

     VBScriptでは次のようにDWFの合成、置き換えができる。
  • MergeDwfをtrueにする。
  • LoadStreamAutomaticallyをtrueにする。
  • この状態でStreamNameの指定ファイル名を新規に設定する。 直ちに指定されたファイルデータが既存DWFに合成される。
  • MergeDwfをfalseにする。 この場合はDWFデータが既存DWFに置き換わる。

    LoadStreamAutomaticallyがfalseだと何も実行されない。と推定される。

    画像の横にコマンドを張りつけ確認実験をした。作ったDWFは、
  • 0画層に白い矩形
  • 1画層に緑の矩形
  • 2画層に赤の矩形
    0、1、2を表示にしてDWGからDWFに出力。
    0のみを表示にしてDWGからDWFに出力。
    1のみを表示にしてDWGからDWFに出力。
    2のみを表示にしてDWGからDWFに出力。
    こうして確認実験用のシンプルなデータを作った。
    コマンドボタンにはClear,StreamNameaが割り付けてある。
    MergeDwfのtrue、falseはクリックで切り替えられるようにしてある。
    Sub LoadMode_OnClick mydwf.mergedwf =Not(mydwf.mergedwf) If mydwf.mergedwf = true Then LoadMode.value="merge" Else LoadMode.value="replace" End If End Sub

     リファレンスの通りの動作をする。分割ローディングは可能だ。 これを利用するDWFデータを作成すればいいだろう。
    ただひとつ、Clear後の最初のLoadでインターナルエラー が発生する。この回避策を見つけておくのが課題だ。


     これらのコマンドはjavaScript版にはない。AutoCADはレジストリへの 書き込みをする。DOS時代はテキストのINファイルだったが、Windows ではバイナリーのレジストリになった。プラットホームのOS仕様だから、 やもう得ない。NetscapeのjavaScriptでは、Cookie以外の 場所にデータを書き込むのは、ご法度。多分、mergedwfのフラッグをレジストリに WHIP!は書いているのだろう。そのためmergedwfは無効 と推定する。mergedwfのフラッグをCookieに書き込んで NetscapeのjavaScriptでも使えるようにすべきと思う。この点が最新版で はどうなっているか、WDFへのAutodeskの熱意が、推測できる ように思う。本気でPDFと戦うなら、見落としてならない戦術要所だろう。
     このページの一部にVBscriptを利用しました。javaScriptを補完するレベルでしかない。 当社はUnix上のapatchシステムで稼動するレンタルサーバーがら 発信しています。このページからサーバー経由でVBscriptを操作することはできません。 セキュテイの問題はないレベルですから、このまま公開いたします。


  • 2004.1.4
    by Kon