3Dモデルをいろいろ作ってみたい

3Dモデルをいろいろ作ろうとがんばっています。苦労した点、役に立ちそうな情報を発信していきます。

3Dプリント時に使って便利だったもの -プラットフォームシート-

Adventure 3で3D出力を始めて最初の何回かはプラットフォームの上に直接出力を行っていました。プラットフォームに柔軟性があるので造形物が乗ったプラットフォームをとりはずして、端をおさえて板を反らせるとパリっという感じではずれてくれます。

ただ、出力するものが大きくなってプラットフォームと接する底面積が大きくなってくるとこの「板を反らせてパリっ」を何回もそれもけっこう力をこめてやらないといけなくなり、いつかプラットフォームの板を曲げすぎて壊してしまうんじゃないかと心配になってきました。造形物をはがした後にプラットフォームに白くあとが残る(凸凹ではないがアルコールで拭いてもとれない)のも気になりました。

そこで、3Dプリンタのプラットフォームに貼っておくといいという透明シートを試してみました。

3M 3Dプリンタープラットフォームシート(3枚入) ABS/PLA対応 3099AB

f:id:ichidaya:20190525214605j:plain

プラットフォームシートを取り出したところ

使ってみての感想ですが、ラフト(筏)を使う造形であれば絶対使ったほうが良いです。

f:id:ichidaya:20190525220044j:plain

シートを貼っておくと簡単に取り外せる

しっかり造形できていて、それでいて簡単にプラットフォームからはずせます。一度貼ったシートはそのまま何度でも使えます。

使用説明書にはシートを貼ったら垂直方向のキャリブレーションを行うように書かれていましたが、私の場合は貼った状態でもプリンタのノズルとの間に紙1枚がはいるくらいだったのでそのまま使っています。

ラフトを使わない設定にした場合はすべりが良すぎて出力した樹脂が固定されず、造形物がずるずる動いてしまいます。私は今のところは、原則ラフトをつけているので当面このシートを貼り続けて作業をしようと思っています。

Fusion 360でクインジェットのモデリング:試作2号機の組立

あれこれといじってきたクインジェット試作2号機ですが、ここらでいちど出力してみることにしました。Adventure 3が届く前であったこと、けっこう細かい(0.1mm単位)のはめ合わせ行っていたことから、DMM.makeに出力を依頼しました。

f:id:ichidaya:20190523214057j:plain

ナイロン造形されたクインジェット部品一式

組み立ててみるとこんな感じ。

f:id:ichidaya:20190523215020j:plain

組立後のクインジェット

今回、後部ハッチと主翼部分で初めて可動部分のモデリングに挑戦しています。

f:id:ichidaya:20190523215449j:plain

後部ハッチの開閉動作

閉めた状態でまだすき間がある、ハッチが水平ぐらいまでしか下がらない、突っ込みどころはいろいろありますがとにかく動きます。閉めた状態、開けた状態で止めていられるのもこちらの目論見どおりです。

f:id:ichidaya:20190523220900j:plain

翼端部の回転動作

翼端部も設計どおり回転はしてくれます。本当は手を離したら軸と軸受けの摩擦でその角度で止まってほしかったのですが、まあこれはこちらの勝手な期待でした。現状は重力に従って下方向に90度に折れ曲がったかたちになります。ここらへんは次の試作機での改善点ですね。

ZBrushモデリングした試作1号機(左)と並べてみました。2号機はネット上の設定資料を基に1/144スケールでモデリングした結果、1号機より少し大きくなりました。

f:id:ichidaya:20190523224647j:plain

試作1号機との比較

前回、きちんと造形できなかったエンジンの空気取込口のディテイルや尾翼のスジ彫りなども今回は作り込むことができました。

f:id:ichidaya:20190523225526j:plain

尾翼周りのディテイル

 

iPhone Xを3Dスキャナーに

以前にBlogに書きましたが、Captureというアプリを使うとiPhone Xを3Dスキャナーのように使っていろんなものの3次元モデルを取り込むことができます。問題は3次元情報を取り込むのに必要な距離センサーの機能がiPhoneのフロント側カメラにしかついていない(もともとは顔認証に使うことが目的?)ことです。フロントカメラの対象物に向けると自分では画面が見にくいので、対象物を1周してスキャンするのがとてもやりにくいのです。

ネット上には距離センサーは赤外線を使っているので鏡を使ったアタッチメントで反射できるという情報があったので私も作ってみることにしました。

f:id:ichidaya:20190520224556j:plain

iPhone 3Dスキャナー化アタッチメント

上の図のようにiPhoneケースがささるような形状をつくって、赤い面の部分に鏡を貼ってあげればフロントカメラ部分から照射された赤外線は反射されて前方に進み、逆のコースで戻ってくるという仕掛けです。

DMM.makeに出力を依頼(この時点ではまだAdventure 3は届いていなかった)してできあがってきたのをiPhoneに装着したのがこんな感じ。

f:id:ichidaya:20190520230441j:plain

3Dスキャナー完成

鏡は自分で切断しようとしたがうまくいかず、結局業者さんに依頼して切ってもらいました(1枚1000円強のお値段)。

www.e-kagami.com

実はここに至るまでには何度か試行錯誤を繰り返しています。最初はThingiverseで見つけた3Dモデルをケースのサイズに合うように調整して造形してもらったのですが、画像の端の部分で距離情報がとれないとい不具合がありました(下図参照)。

f:id:ichidaya:20190520234103j:plain

画像の右上部分の距離情報がとれていない例

鏡の面積が狭いのが原因ではないかと疑い、鏡部分を広げた3DモデルをFusion 360で自作して試してみました。

f:id:ichidaya:20190521000231j:plain

初期版と改良版の比較

左の初期版は鏡の大きさが4cm×2cmだったのに対して右の改良版では5cm×3cmにしています。下の写真のように改良版では左右の端が切れることなく距離情報を検出できるようになりました。

f:id:ichidaya:20190521214549j:plain

改良版でとりこんだ距離画像

 

3Dプリンター買いました!

 ついに3Dプリンターを買いました。

ゴールデンウィーク明けに配達され、1週間ほど使っていますがとても快調に動作しています。

購入したのはFlashforge社のAdventurer3という製品です。

  • ノズル原点位置のキャリブレーションが不要(簡単)であること
  • ヒートベッドや冷却ファンなど造形中の温度管理の機構をもっていること
  • ノズルや駆動機構がむき出しでなくてしっかりした筐体に収まっていること

といった条件を決めて候補を絞っていたのですが、カタログスペックだけみて判断するのは若干不安でした。決め手は使用されたかたの実感レポートで、ネットでAdventure3の導入記事をチェックした範囲内でトラブルが無かったので決めました。

 

 実際、梱包を開けて30分ほどでテスト用のモデルを出力することができました。

f:id:ichidaya:20190519113901j:plain

外装と外観

それでもいくつか戸惑った点を挙げておくと、

  1. 開梱時の固定箇所のとりはずしが不要だった
  2. フィラメントのロード(かなり強く押し込む必要がある)

 といったところでしょうか。1.についてはWebサイトに写真つきで「これらのナイロンケーブルを取り外しておくように」とわざわざ注意喚起されていたのですが、見つからず「あれっ?」となりました。配送担当者が固定を忘れて発送したのか、今は不要と判断されたのかはわかりません。

2.については「抵抗を感じるまでフィラメントを送りホイールに押込みます。」と書かれていたのですが、フィラメントの先が2つのホイールに挟まれてしっかりと取り込まれていくまで強く押し込む必要があります。

以上の2点をクリアした後は極めて順調でノズル位置のキャリブレーションは全くしないままでテスト用のキューブを造形することができました。

続いてこれまでに作った立体地図パズルのピースを造形してみました。最初は複数の県のピースをまとめて15cm×15cmの範囲内に配置していちどに造形してみたのですがこれだと、造形が上に進むにつれて水平方向に位置ずれが発生し正確に造形ができません。ノズルの水平方向の移動距離が長くなり慣性がついて位置決めが正確にできないのではないかと疑っています。同じパラメータでも1個ずつ造形すればこのような問題は発生しません。

下の写真で赤色のピースは今回Adventure 3で出力した三重県、オレンジ色のピースは以前にDMM.makeに依頼して出力した周辺の府県です。三重県ののピースはAdventure 3の標準解像度で造形していますが、水平方向に関してははめ合わせも有料サービス(確か粉末焼結型)で造形してもらったピースに比べても遜色ないと感じています。

f:id:ichidaya:20190519162556j:plain

はめ合わせの確認

垂直方向の造形については、積層痕による凸凹がノイズとして重なるため微妙な標高の変化ができていないという点は否定できません。安価なFDM型3Dプリンタの限界といったところでしょうか。ただ、解像度もまだ2段階は上げる(出力時間はかかるけど)余地があるし、パラメータをいろいろいじって試してみたいと思っています。

 

 

Fusion 360でクインジェットのモデリング:ディテイルの作り込み

遅々として進まないクインジェットのモデリングですが今回はディテイルの作り込みの一環として主翼と尾翼にスジ彫りを入れてみました(下図の青枠部分)。

f:id:ichidaya:20190429151915j:plain

スジ彫り完成図

スジ彫りのやりかたは下記書籍を参考にしています。

f:id:ichidaya:20190429153117j:plain

参考にしたFusion 360 Masters

 まず、スケッチ平面上に彫りたいスジに沿って線を引きこの線でスジ彫り対象のボディ(今回はクインジェットの主翼部分)を2つに分割します。

f:id:ichidaya:20190429154409j:plain

ボディの分割

説明のため2つに分割されたボディのうち小さくて形が単純なほうをボディA、もうかたほうをボディBと呼ぶことにします。ボディA(下図)を複製したボディを作りこれに操作を加えてスジ彫りのためのツールを作っていきます(ボディAはそのままで保存しておいて後で使います)。

f:id:ichidaya:20190429160600j:plain

ボディA/スジ彫り用ツール

スジ彫り用ツールの切断面に対してシェル操作を適用します。ここで指定する内側の厚さがスジを彫るときの深さになります。

f:id:ichidaya:20190429161505j:plain

スジ彫り用ツールへのシェル操作

シェル操作の結果、ツールは中身をくりぬかれた外殻だけになります。この断面にスケッチを行ってスジ彫りしたい部分だけを独立したジオメトリにします。

f:id:ichidaya:20190429162055j:plain

シェル操作後のツール

上記のジオメトリに対して押し出し処理を行います。このとき指定する距離がスジ彫りの幅になります。

f:id:ichidaya:20190429162818j:plain

外殻部分の押出操作

上記で押し出した部分でボディBを削っていくのですが、ボディBの面が微妙に変化しているのを確実に削るために押出した部分を上下、前後に拡張しておきます。

f:id:ichidaya:20190429163918j:plain

押し出し部分の拡張

スジ彫り用ツールのもう片方の面にも同様の処理を行って完成したスジ彫りツールが以下のような感じになります。

f:id:ichidaya:20190429164229j:plain

完成したスジ彫りツール

出来上がったスジ彫り用ツールを使ってボディBからスジの部分を切り取ります。

f:id:ichidaya:20190429164907j:plain

ボディBに対するスジの切取り

スジ部分が切り取られたボディBに保存しておいたボディAを結合すればスジ部分だけが取り除かれた主翼ボディが完成します。

f:id:ichidaya:20190429165100j:plain

スジ彫り処理の終了




 

 

 

 

 

iPhone Xで3Dスキャンを試す

最近、スマホiPhone XSに乗り換えました。今まで使っていたiPhone5Sで特に不満を感じていなかったのですが、Xの顔認証にはDepth Sensorが使われていてこれを使って3Dスキャンができるという話を(遅ればせながらですが)知って試してみたくなったのでです。

Capture: 3D Scan Anything

Capture: 3D Scan Anything

  • Standard Cyborg
  • 写真/ビデオ
  • 無料

 Captureというアプリの使い方は簡単で

  1. 前面カメラを対象に向けて静止した状態でレコードボタンをクリック
  2. 3,2,1と数字がカウントダウンされるのを待つ
  3. ゆっくりとiPhoneを動かして対象物をスキャン
  4. レコードボタンをクリックしてスキャンを終了

即座に得られた点群データ(Point Cloud)が表示されます。

f:id:ichidaya:20190307182441j:plain

キャプチャーされた点群データ

このデータをローカルにセーブしたり、(無料のアカウントを作成しておけば)クラウドにアップロードすることができます。

クラウドからはOBJやPLYの形式に変換してデータをダウンロードすることはできますが残念ながら点のデータを保存しているだけなのでそのままでは3Dモデリングの材料に使えません。OBJファイルの中身を見ると”v”で始まる点データを表す行と”vn”で始まる法線ベクトルを表す行があるだけで、面を表す"f"で始まる行がありません。ZBrushでこのOBJファイルを読み込もうとしてもエラーになります。

でも、大丈夫。ネットで調べたらポイントクラウドから3Dのメッシュを生成してくれる(それ以外にもいろいろできますが)オープンソースのソフトがあることがわかりました。

CloudCompare - Open Source project

 PLY形式でダウンロードした点群データをこのCloudCompareに読み込みます。

f:id:ichidaya:20190307211124p:plain

点群データの読込み

左上のDB Treeというパネル上で対象の点群データを選ぶと画面上で点群に対して黄色の外接矩形が表示されいろんな処理が行える状態になります。例えばEdit->Segmentで切出しのためのアイコン群が画面右上に表示され、注目部分だけを切り取ることができます。

f:id:ichidaya:20190307211718p:plain

点群データの切出し

さらにPlugins->Poisson Reconで点群データからメッシュ(つまり面)のデータを再構築することができます。

f:id:ichidaya:20190307212425p:plain

メッシュ再構成結果

パラメータが何個かあって実はまだ意味がわかっていないのですが、とりあえずデフォルトのままで上のような結果が得られました。再構築にあたっては法線ベクトルの情報も参照されるようです。何個かの画像を試してみたとき中にはメッシュ再構築の前に法線ベクトルの再計算(Edit->Normals->Compute)や反転(Edit->Normals->Invert)を行っておいたほうが良い結果を得られることがありました。

メッシュ化したデータをFile->Saveでファイル修飾子objやplyを指定して格納すれば面の情報を持った3Dデータが格納されます。ZBrushで読み込むにはOBJ形式のデータが欲しいのですが、CloudCompareで出力したOBJファイルには色の情報が含まれていません(OBJ形式で点の座標といっしょにRGBを記載するのは正式な仕様ではないらしい)。いったんPLY形式で出力してこれをMeshLabで読み込んでOBJ形式で出力するとカラーの情報を含んだOBJファイルを作ることができます。ZBrushでこのファイルを読み込めば色付きのメッシュの3Dモデルが手にはいります。

f:id:ichidaya:20190307215020j:plain

ZBrushに取り込んだ3Dモデル

 あとはうちのわんこがスキャンしている間じっとしていてくれればよいのですが、こちらはまだ解決のめどがたっていません。人の顔を見るとおやつのおねだりでどんどん前にでてきてしまうので。

 

 

 

立体地図を作る -ZBrushで行う作業あれこれ-

近畿地方の7府県について水平方向222万分の1、垂直方向70万分の1の縮尺で立体地図を造形しなおしました。縦方向の高さが横方向よりも3倍ぐらいに強調されていることになります。せっかく立体地図を作るのだから山や谷の凹凸をはっきりさせたい、一方で全国をこの縮尺で作ったとき富士山のコニーデ型のシルエットは残したいという2つの欲求のせめぎあいでこの線に落ち着きました。

f:id:ichidaya:20190302234654j:plain

近畿7府県の立体地図

今回はOpenSCADを使わずに自作のスクリプトでOBJファイルを生成しています。おかげで面積の広い兵庫県などもデータを分割せず一発で生成することができました。また、今回は各ピースの裏側(底面)を少し押し込んだ上(材料を少なくすると若干安く造形できる)で府県名を押し出しで表現しました。

f:id:ichidaya:20190302235725j:plain

近畿7府県(裏側)

後は今まで記録していなかったZBrush作業上の注意点などを..

JAXA国土地理院から取得した地形データをOpenSCADや自作のGenObjスクリプトを使ってそのまま3Dモデルに変換すると、海岸沿いの小さな島が陸地とは別れてしまったり、内陸でも標高が海抜以下の場所に穴が開いてしまったりします。これでは地図パズルのピースとしては都合が悪いので、現状ではOBJファイルをZBrushに取り込んだ後に手作業で修正しています。

下の図で青色で囲った部分は微小部分がピースから別れてしまうので事前に削除しておきます。Subtool->Split->Split To partsで別々のサブツールに分離した後でDel Otherで本体以外のサブツールを削除します。黄緑で囲った部分はメッシュ1個分(計算上0.25mm×0.25mm)の幅でつながっていたり突出している部分です。造形した後での強度が心配なのと他のピースとのはめ合わせに余裕をもたせたいという理由からこれらも削除しています。該当部分をマスクしてから、Subtool->Split->Split Masked Pointsで分離、本体以外の部分を削除します。削除した部分には穴が開いているので、Geometry->Modify Topology->Close Holesで穴をふさぎます。

f:id:ichidaya:20190303133243p:plain

手作業での修正対象の例

(赤枠で囲った)穴が開いている部分については面としては閉じているのでまず穴の4個の側面を削除(ZModeler Polygon ActionsのDeleteを使います)してから上下の穴を塞ぎます。

 底面を少し押し下げた後でText 3D & Vector Shapesのプラグインを使って府県名の文字列を作成、地図本体とMergeします。

f:id:ichidaya:20190303142238p:plain

底面の押込みと名前の付加

 山の部分が四角形のメッシュの単位でカクカクなるのがいやなので最後にスムージングかけています。いろんなやりかたを試していますが、いまのところはResolution=400ぐらいでDynamesh化を行っています。