Fusion360(3DCad)で作成した3DモデルをProcessingに取り込んで利用する方法です。
複雑な3DモデルになるとProcessingで準備(作図)するのは割と困難です。が3DCadで作成したモデルをそのまま取り込めればだいぶ楽になる、ということで試してました。
概要
▼取り込み例▼
実際に3Dcad(Fusion360)で作成した3DCadデータ(3Dモデル)を、そのままProcessingに取り込んで利用したものです。
ここまで細かい3D形状を「Processing」で作図しようとすると結構(かなり?)大変かと思います。少なくとも私はいやです・・。
3Dcadであれば元々こういったモデルを作るツールですし、これくらいであれば作成は比較的簡単です。(すくなくともProcessingで作図するよりははるかに簡単です。)
設計時に作成した3DモデルをそのままProcessingへ取り込めれば便利です。今回はその方法です。取り込む方法といっても簡単で、そもそもProcessingは「.obj」形式の3Dモデルが読み込めます。なので3Dcadで作成したデータを「.obj」形式で出力して読み込むだけです。
3Dcad(Fusion360)で「*obj」形式で出力する
3DcadはFusion360を使用する前提です。(*.obj形式が出力できればなんでもいいかと思います)
▲3DCadで3Dモデルを準備します。
▲で「ファイル」ー「エクスポート…」をクリックします。
▲ファイル名を指示、タイプはOBJファイルを選択。保存先を指定して「エクスポート」をクリックすると変換がはじまります。(クラウドで変換しているのですかね??)しばらく待つと完了。これで出力は完了です。
現時点(2019/12)、Fusion360では残念ながら色情報が出力できないようです。3Dモデルを取り扱うフリーソフトも結構あるので、どうしても色が欲しいのであればフリーソフト利用して色付けしてもいいかと思います。
面倒なので今回は色情報無しでいきます。色情報があれば「.obj」と紐ついた「.mtl」形式のファイルが同時に出力されますが、Fusion360では色情報が無いので「.obj」ファイルしか出力されません。がこのままいきます。
Processingで3Dモデル(obj)を取り込む
出力したobjファイルをProcessingで取り込みます。方法もいろいろあるようですが、今回はPshapeクラスを使う方法で行います。
PShape model; void setup() { model = loadShape("777.obj"); model.scale(0.2); }
▲最初にPshapeクラスのインスタンスを生成します。loadShape()関数で先ほど出力した「obj」ファイルを取り込みます。.scaleは縮尺です。今回は1/5サイズで表示します。
これでだけ3Dモデルの取り込みは完了です。
あと少し操作にも触れておきます。
pushMatrix(); lights(); camera(0, 0, 100, 0, 0, 0, 0, 1, 0); translate(-50, 18); rotateY(yaw*PI/180); rotateZ(-roll*PI/180); rotateX(-pitch*PI/180+PI/2); shape(model); popMatrix();
位置と向き(姿勢)を支持して3dモデルを表示してます。
基本的には上記の方法で記事冒頭動画の描写を行ってます。割と簡単な操作で3DCadモデルを活用できるので便利です。
コメント