ある元栃木の工業人.jp

電子工作、機械設計、ロボットなどのモノづくりから宇都宮まで色々 ※2021:画像消失につき、c.yimgからマイニング&整備中

地理院地図の3Dデータから光学式3Dプリンタ(Form2)で出力した話

f:id:kazu_souri:20210130085553p:plain

2014年にHTML5W3Cから発表され、これまで専用アプリケーション上でしか表現し得なかったようなグラフィカルな表現が、オンラインのウェブブラウザ上で実行できるようになった。
 
国土地理院が提供する 「地理院地図」 もその波に乗ったサイトのひとつである。

国土地理院はかなり初期からネット上で国土の基盤的情報を発信してきた。1:25000地形図の「ウォッちず」、航空写真の「空中写真閲覧サービス」などである。その後、「電子国土」を旗印にしてウェブ上でそれらを統合した情報提供・閲覧プラットフォームの構築が進められていた中で、ブラウザのグラフィック機能を拡張したHTML5WebGLの登場はまさに渡りに船だったに違いない。
 

f:id:kazu_souri:20210130085613p:plain

「ウォッちず」 というなつかしい響き…

さて、地理院地図はその基盤として規格化された各種地図情報の膨大なデータベースが存在する。これは地理院タイルとして構造の片鱗を見ることができるのだが、その中にはメッシュ状の数値標高データも含まれている。従って、現在の地理院地図では画像情報と標高情報から3D表現に優れたWebGLによる三次元の地形表示を行うことが可能となっている。
 
ちなみにウォッちず時代でも『立体視システム』という地形図と標高数値データから生成されたステレオグラムによって、立体的に閲覧できる進歩的なサービスが存在していた。

f:id:kazu_souri:20210130085627p:plain

立体視閲覧サービスとはこんな感じの立体視画像。サービス停止が悔やまれる。
地図閲覧サービス(試験公開)の「立体視システム」の開発

Web環境の劇的な進歩と共に進んだのが3Dプリンタの普及である。業務用として流通していた高価な3Dプリンタが低価格化によって一般市場へ降りてきたことで、アマチュアによる三次元造形手段の確立とデータ規格STLの標準化が進んだ。

電子国土による閲覧プラットフォームと標高データの整備、そして三次元造形データの需要増という環境が揃った以上、3Dプリンタ用の地形STLデータを出力するサービスが搭載されたのは至極尤もな話だろう。

まぁそんなこんなで、長い年月を経て現代技術は、好きな地形を手軽に造形できるという地形趣味人たちの理想に追いついたわけでした(導入が長い)。



 ・ ・ ・



今回は地理院地図3Dから入手したSTLデータを光学式3Dプリンタ:Form2にて出力してみたので、それについて備忘録がてらここに報告する次第。キーポイントはデータの中抜き加工と補修処理。

ところで最近は目次を付けるのが解説系コラムのスタンダードのようだけど、ここを見てる人は藁をも掴む想いの限られた境遇の人だろうから優しくしないフォーマットでそのままいきますよ。

 | 地理院地図からSTLデータを取得する

f:id:kazu_souri:20210130085643p:plain

 
お好みの地形を中心として、お好みの地形表現(地形図、陰影図など)にしたあと、

機能 > 3D > 大 (or 小 or カスタム)

と操作する。これにより下図のようなWebGLによる三次元表示が実行される。ちなみに、標高データの精密さは上図の状態のズームレベルに依存する。つまりあるズームレベルで3Dの小(1024)を実行したときと、その倍にズームレベルを拡大してから3Dの大(2048)を実行したときとでは、表示範囲は一緒でも地形の分解能は倍になる(イメージ)。

f:id:kazu_souri:20210130085656p:plain


これだけでもぐるぐるできて楽しいのだが、注目すべきは下部の「STLファイル」である。着色可能な立派な3Dプリンタをお持ちでない限りはSTLデータで十分である。「ダウンロード」からSTLデータを保存する。

(ところで「ブラウザでぐるぐる回す用のファイルです」という表記はなかなか嫌いではない)

 | 光学式3Dプリンタ用に加工する

プリンタは主に積層造形と光造形とに大別できる。積層造形は自動で内部を空洞(メッシュ状)に構成するので体積の過多はあまり気にする必要はない(もちろん限度はある)。が、しかし光造形は空洞とならずに全て充填するという欠点(利点)が存在する。しかも材料費は安いものでもリッター2万円くらいする。

従って、光学式3Dプリンタで造形する場合は、いかに表面の形状と十分な強度を満たしつつ内部を肉抜きしてコスト低減できるか、というのが課題となる場合が多い。いわゆる最適リブ配置問題である。

地理院地図からダウンロードしたSTLファイルは下図のような形状(標高約1000m地点)であるが、この状態で光造形を行うのはもちろん論外である。

そこで、ここでは中抜きと余計な部分のカットを行う。今回は試行錯誤のすえ「Meshmixer」というAutodesk社のフリーソフトを用いることでこれらを解決した。失敗事例は末部に記載したので暇なら読んでほしい。

Meshmixer - AUTODESK Research
http://www.meshmixer.com/japanese.html

f:id:kazu_souri:20210130085709p:plain

MeshmixerSTLデータをインポートした様子が上図である。表面の形状しか求めていないのに体積が大きく非常に無駄が多い。

まず最初に中抜き加工を行う。
 

f:id:kazu_souri:20210130085729p:plain


編集 > 中抜き

これにより物体内部に空洞が生まれる。なお、「オフセット距離」によって厚みを調整するのだが、2mmくらいで丁度よいように思う。もちろん造形の大きさなどによって変わってくるため、適宜考える必要がある。

また2mmにしては表示されてるの厚すぎない?という意見もご尤もで、ダウンロードしたSTLデータは実寸(150メートル四方)なんだけど、Meshmixer内では150ミリメートル四方に変換されていたりする。これは「解析>単位・寸法」から変更できたりするが、わざわざやる必要も無いような気がする。まぁ、そこはいろいろ上手くやってほしい。

内部が空洞になったら、次は余計な部分のカットを行う。

f:id:kazu_souri:20210130085744p:plain


編集 > 面でカット

これによって、ある水平面から下を全カットすることができる。切れ目はリメッシュされるので穴は空かないし、空洞が破れることで下図のように非常に造形しやすそうな形状を得ることができる。

f:id:kazu_souri:20210130085759p:plain


あとは「エクスポート」でSTLデータを出力する手筈なのだが、その前に3Dデータに乱れがないか確認を行ったほうが良さげだろう。そこで次項ではそれについて記載する。

 | データの乱れを整形する

例えば河川や険しい地形なんかだと、ノイズが反映されて不自然な地形になっていることがある。下図はその例であるが、特に構造物もない渓谷に丘ができてしまっている。

f:id:kazu_souri:20210130085816p:plain


このような場合、

選択 > (特定の部位を選択する) > 削除と充填

から修正することができる。もちろん違う方法もあるがここでは取り扱わない。上図を修正した結果が下図である。恐らくこの方がより自然と思われる。

f:id:kazu_souri:20210130085825p:plain

次に、垂直に近いような険しい崖や渓谷などではギザギザが生じやすい。これはジャギーとかエイリアスとか呼ばれるもので、離散的な均等サンプリングに基づくメッシュ構造のために十分な分解能が得られていないことが原因である。あまりにギザギザしていると造形に支障が出かねないので、少し改善した方が良さそうである。

f:id:kazu_souri:20210130085856p:plain

このような場合、

選択 > (特定の部位を選択する) > 再メッシュ

からあるていどギザギザを緩和することができる。これが正確な地形なのか?と言われると答えに窮するが、まぁ自分が納得できる程度に収めるのが良いような気がする。

f:id:kazu_souri:20210130085908p:plain

 | 光学式3Dプリンタへ送信する

ここまでの過程ほ経て、下のようなSTLデータを得ることができる。
 
ここから先は造形する3Dプリンタによって作業内容はまちまちであるが、ここではForm2での実行の様子について軽く触れる程度に留めておこうと思う。
 
Form2ではデスクトップアプリとしてPreFormというソフトウェアが用意されている。これはSTLのインポートから印刷設定、サポート編集、配置などが行えるシンプルかつ高機能なソフトウェアである。そこに先のSTLデータをインポートした様子が下図となる。
 
先に書いたように、このSTLデータは一辺が150メートルという巨大なものなので、アプリケーション上で拡大縮小を行って調整するかたちとなる。今回は一辺を50ミリメートル程度に収めているが、ここらへんは皆さんのお好みになると思う。リッチな人には是非とも大きく作っていただきたい。

f:id:kazu_souri:20210130085938p:plain

 

 | 造形する

f:id:kazu_souri:20210130085955p:plain

造形結果は上の写真の通り。左が栃木県の日光華厳渓谷と第一いろは坂、右が奈良県下北山の池原ダム。どちらも河川地形だが、性質は大きく異なっていて興味深いところがある。

f:id:kazu_souri:20210130090027p:plain

こちらが池原ダム付近。穿入蛇行を利用したダムの様子がよくわかる。

f:id:kazu_souri:20210130090014p:plain

こちらが華厳渓谷付近。左岸の僅かな緩斜面に刻まれた第一いろは坂の九十九折が確認できる。

Form2は色の出力ができないため、造形結果はもちろん単一色となる。今回は白レジンにしたため、立体的なレリーフマップというわけである。
 ・ ・ ・
 
 
以上、地理院地図の3Dデータから光学式3Dプリンタ(Form2)で出力した話でした。
 

 | おまけ:試行錯誤のよもやま話

ここから先は前述の手順に至るまでの試行錯誤の過程について軽く記載する。
 
肉抜きと無駄の削減をすることが目標であったわけだが、最初の目論見はSTLデータを3DCADへ取り込んでシェル(中抜き機能)を使えば楽勝じゃねーのというものだった。実際にSolidWorksへ取り込んだ結果が下図。真っ黒なのは全てラインである。
 

f:id:kazu_souri:20210130090058p:plain

軽く整形してからシェルを実行してみる。既に激重である。
 

f:id:kazu_souri:20210130090111p:plain

ダメでした。
 
そもそもCADというのはプリミティブな形状の組み合わせと関数によって複雑な形状を表現することに特化したアプリケーションである。それに対して標高データというのは全てがユニークな値であり、データ処理量としては非常に多量なものであるわけだ。この点を考慮すると、Sculptrisのような3Dモデリングソフトのほうがユニーク形状の処理は得意なのかもしれない。
 
3DCADを使うという誤った認識を拭えていなかったことから、次の目論見はSTLデータ量を削減してCADに取り込もうというもの。使ったのはMeshLabというフリーソフト
 

f:id:kazu_souri:20210130090126p:plain

しかし頂点数の削減を行ってもエラーのある形状となる場合が多く、断念。MeshLabは使わないほうが良さそうである。そこで出会ったのが前述のMeshMixer。こいつは非常に優秀で、頂点数の削減もかなり見事にやってのけた。

さすがAUTODESK!
 
で、頂点数を減らしてCADに取り込んだものの、やはり処理が重くてダメでした。
 
そうこうしているうちにMeshMixerの機能に慣れてくると、どうも中抜き機能が結構優秀そうだ、ということと、水平面でカットする機能があるぞ、ということでCADを使う考えを撤廃。今回のコラムの手法に至ったわけでした。
 
 
 
 ・ ・ ・
 
 
 
今回はこんな感じになりました。地形に興味があって、なおかつ光学式3Dプリンタを所有しているという類まれなる奇跡的な条件に合致する人にしか需要のない記事ではあったけれども、何かしら参考になればと思う。
 
以上。