3Dプリンタで立体地図(6)やっとほぼ完成!

しばらくいろいろアイデアを出したり、ソフトの使い方を探ったりしていたが、なんとか思い通りに近いものが出来そうなのでまとめておく。(赤字が追加部分)

標高データのダウンロード 国土地理院のページ(5mメッシュ、10mメッシュ)
3Dデータへ変換 1)  基盤地図情報閲覧コンバートソフト(国土地理院)
2) xmlファイルを読み込んで、シェープファイル(xyz)へエクスポート
3) Excelで標高データのx、y座標を入れ替え、IDの削除。
Exceldでの最大読み込み行数(104万8576行)以上の場合はVBAを使って1行づつリード&tライトする基盤地図情報メッシュ変換でも可能か?(OBJ、VRMLなどに変換、図郭ごとに書き出す)
STLへ変換 無償3Dスキャンデータ処理ソフトウェアRapidform XOM
適宜データを間引きして軽くする。
サーフェイスデータが生成される。サーフェースに厚みつけてSTLファイルとして書き出す
データの追加・修正 netfabb で 厚みづけした地形図を読み込み、それに合うように「BOX」をクリート、切り取る部分を重ね合わせてそれぞれをSTLとして書き出す。meshlab で2つのSTLデータを読み込み、ブーリアン処理を行う
 3Dプリント 標高のデータを、2倍~5倍程度に拡大したほうが立体感が出やすい。

では、赤字部分のまとめを・・・

Rapidform XOMでExcelで変換済みのXYZファイル(今回は1/100にデータの値を縮小)を読み込み、スキャンモードからメッシュ化する

再びスキャンモードに入り、メニューから「厚み付け」を選択。適当な厚みを持たせる

厚みは持った(Solid化)が側面がフラットでない。

底面もでこぼこ・・・これでは3Dプリントが上手くいかない。とりあえずSTLで書き出す。


netfabb で読み込み大きさを確認する。

標高差のイメージを合わせるため「Z方向」を2倍から4倍程度に拡大する。

「Edit」から「Create Primitives」を選択

 

Boxを選択し、大きさを地位図よりやや小さめに設定する。

立体地形をBoxの領域で切り取る位置に移動して重ねる。

うまく重なった状態でそれぞれをSTLとして保存する。


※netfabbのフルバージョンだと この状態から、オブジェクト同士のブーリアン演算が簡単に行える。フリーバージョンはデモのみ可能

あぁ、本当ならこれで完成なのに・・・結果を反映できない。仕方ないのでmeshlabを使う。

2つのSTLファイルを読み込んで ・・・・ 「CSG Operation」を選択

重ね合わせた2つのオブジェクトを確認。演算を「Intersection」(交差)選択し「Apply」をクリック
しばらく演算が行われ、結果が新しいレイヤーとして完成する。

演算結果のレイヤーのみを表示させ、STLとしてエクスポートする。これでで^他は完成だ!

3Dプリントでサポート材を使用しないように、横に立てて造形データを生成。

造形中!完成までやく20時間・・・・さてさてどうなることか、楽しみだ。