AutoCADLTScript


 
変換構想
 

 数値地図25000データーをAutoCADLTに変換するにあたり、決めなくてはならないことがある。2Dで扱うか3Dで扱うかということ。純粋2DCADはこの選択肢はないのだが、AutoCADLTは3Dを扱える。GISなら当然3Dが必要条件。ここをターゲットにするなら3Dで決まりだろう。
 連続線を何で作るか。選択は直線の集合、3Dポリライン。地区界などがプロックデーターとして作成してあるので3Dポリラインとしよう。境界データーはX、Yの2Dポリラインとして入力しておいて、AutoCADLT内部で変換という方法もある。データー処理時間とファイルサイズの問題だが、基本的には最初から3Dとしよう。
 以上よりXMLデーターとして読み取ったデーターは,次ぎのように処理をする。
変換前データー
L,B
L,B
変換後データー
3DPOLY
x,y,z
x,y,z
x,y,z
 Zは当面0を一律入力。L、BからX、Yに変換し数学座標のAutoCADLTのためにx、y入れ替えて割り当てる。
 AutoCADLTはスペースを「enter」とみなす設定が一般なので、無だなスペースを挿入しないよう注意が必要。データーの最後は「enter」。これが改行、復帰なのか改行だけでいいのか。やってみないと分らない。
 JavaScriptでは改行コードは¥nを使う。ブラウザ上のHTMLページはこれで問題はない。これをTEXTファイルに保存する。おそらく、この過程でMSwindowsOSは改行コード¥r¥nに自動変換していると推定する。AutoCADLTのScriptはキーボード入力値をファイルにして読ませるというもの。 「enter」は改行、復帰に対応する。この2つの過程の相性といった事だ。 やってみるのが一番早い。


 
XMLデーター変換
 

[閲覧ファイル選択]
23220GKのHTMLファイル----タグ解釈ナシ(xmp)
23220TKのHTMLファイル----タグ解釈ナシ(xmp)






 Msxmlを利用したXMLデータファイル処理サンプル。エデイタで切った張ったをするより、このほうがスマートでしょう。(23220TKデーター変換はうまく行っていませんので注意)

 
大きな問題がひとつ
 

 AutoCADLTのスクリプトは使い慣れているので、問題はクリヤー。予想した事は大体当たっていた。処理を考えなければならない些細な問題はいっぱいあるが、大きな問題がひとつある。
 数値地図25000の場合、道路区間データは7MBにもなる。これは個人レベルのPCでXMLデーターを読めない。メモリーが少ないのだろうフリースする。僕のPCは124MBのメモリー。決して多いとは言わないが、貧弱ではない。じゃあ、200MBにしたらOKかといえば、多分問題は解決しないような気がする。 データー側の問題かMSXMLソフトの問題か。MSXMLを疑って、とうとう最新のMSXML4をインストールした。
 こういう場合は、シンプルなXMLを作って問題を絞り込んで行く。結構時間が掛かるのだが、途中で曖昧にするわけにも行かない。知識としてのXMLならいいのだが、僕にとってはそうではなくなってしまった。少し時間を掛けよう。

2003.11.09
by Kon