3DCadで作成した3DモデルをProcessingに取り込む方法

 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 tree;

void setup() {
  tree = loadShape("777.obj");
  tree.scale(0.2);
}

▲最初にPshapeクラスのインスタンスを生成します。loadShape()関数で先ほど出力した「obj」ファイルを取り込みます。.scaleは縮尺です。今回は1/5サイズで表示します。

 これでだけdモデルの取り込みは完了です。

 あと少し操作にも触れておきます。

  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(tree);
  popMatrix();

 位置と向き(姿勢)を支持して3dモデルを表示してます。

 基本的には上記の方法で記事冒頭動画の描写を行ってます。割と簡単な操作で3DCadモデルを活用できるので便利です。

コメント