プログラムで作る3Dモデル

今回やること。

今回は、
プログラミングで卓上ゴミ箱を作る!
に挑戦しようと思います。

今まで私は3Dプリント用のデータをfusion360のようなマウスで線を引くタイプの3DCADで作成していましたが、今回はプログラミングでデータを作成して、3Dプリントしたいと思います。

ねらい

今回の取り組みで私が確認したかったことは、以下の通りです。

  • 簡単かつ効率的にモデリング可能か?
    関数やループを利用して、感覚的な作業や面倒な繰り返し作業を省きたい。
  • 3D_CADデータを資産化できないか?
    作って終わりではなく、過去のソースを再利用して、手軽かつスピーディーに新しい物を作りたい。
  • どんな感じ?
    その他、メリットや新たな発見を得て、視野を広げたい。

こんなのを作ります。

以下のような、シンプルな卓上ゴミ箱です。

本体部

f:id:Nao6165:20211016002214p:plain

蓋部

f:id:Nao6165:20211016002249p:plain

開発環境

手順

ざっくりと言うと、次の手順で作っていきます。以下でもう少し詳しく説明します。

  1. Solid Pythonでコーディング
  2. OpenSCAD用モデル生成コード出力
  3. OpenSCADにてstlファイル作成
  4. 3Dプリンタで印刷

1. Solid Pythonでコーディング

3Dモデル出力するためのソースコードを、Pythonの文法に従って、プログラミングしていきます。私はインターフェース2021年10月号を参考にしましたが、SolidPythonの文法については次のリンクが参考になります。

Welcome to SolidPython’s documentation! — SolidPython 0.1.2 documentation

VisualStudioCodeでもりもり書いていき、

f:id:Nao6165:20211017114254p:plain

Git/GitHubで管理します。バックアップを行方不明にせず、一瞬で簡単に過去のソースコードに戻れるので便利です。

f:id:Nao6165:20211017114504p:plain

f:id:Nao6165:20211017114916p:plain

今回使用したリポジトリのリンクになります。

GitHub - Nao6165/3D_Print_Data-MiniTrashCan: 3D Print data of a MniTrashCan

2. OpenSCAD用モデル生成コード出力

作成したソースコードをビルドして、OpenSCAD用の3Dモデル生成コードを出力します。

Google Colaboratoryにて、SolidPythonをインストールしてビルドを実行しました。

使い方は次のリンクが参考になります。

Google Colabの使い方 | Interface – CQ出版

Google Colaboratoryに新しいプロジェクトを作り、

!pip install SolidPython

でインストールして、作成したソースコードをコピペして実行するとOpenSCAD用の3Dモデル生成コードが出力されます。

f:id:Nao6165:20211024133400p:plain

3. OpenSCADにてstlファイル作成

自PCにてOpenSCADを開き、Google Colaboratoryにて出力されたコードをEditor画面にペーストします。Editorの1行目にfn=36;[1]を追加した上で、STLファイルを作成します。

[1]: OpenSCADが円弧を36分割して演算してくれ、カクカクな円弧が滑らかになります。数値を大きくするほど滑らかになりますが、演算に時間がかかります。 

f:id:Nao6165:20211017125748p:plain

4. 3Dプリンタで印刷

OpenSCADによって出力されたSTLデータを3Dプリンタで印刷します。

f:id:Nao6165:20211017171035j:plain

出来上がり!

f:id:Nao6165:20211017110602j:plain

ここまでやってみて

思ったことを、挙げていきます。

  • ソースコードから完成図(寸法・形)へのイメージが難しい。
  • 不規則で複雑な形状をモデリングするのは手間がかかる。
  • ソースコードをきれいに纏める手間が必要。
  • 一度、ソースコードをきれいに纏めてしまえば、何度でも再利用できる。
  • プログラミングに慣れれば、模様などの幾何学的な形状を簡単に作れる。
  • ソースコード(テキスト)なので、軽量かつGit使用可で、管理が楽。

まとめ

初心者(私)がモデリングする場合はコーディングが完成するまでが大変ですね。自分の頭の中に図面がないと作れませんし、プログラムの組み方も考えないといけません。

ですが、一旦、ソースコードをきれいに纏めてしまえば、資産として活用できます。後からパーツを付け足してバージョンアップしたり、関数や処理の一部を流用して別のものを作ったりと。また、SolidPythonやOpenSCADには便利な関数やライブラリが用意されているようなので、これらを活用できるのも良いと思います。

また、その他に思ったことは、幾何学的な形状を作る場合は便利ですが、フィギュアのような不規則で複雑な一点ものを作る場合には向かないことですね。言うまでもないことかもしれませんが (^-^;

利用シーンによりますが、使い方に慣れ、資産化することによって、効率的な開発を実現できるのではないかと思いました。

参考