前回は悩みに悩んで3Dプリンタをとうとう購入するところまでを紹介しました。セットアップは思っていた以上に簡単で、まずは同梱されていたbenchyと2色のサメをプリントしてみました。benchyはだいたい25分くらいでプリントできました。2色のサメもいい感じにでてきました。
また、ThingiverseやPrintables.
3Dプリンタを持つ最大の醍醐味は自分だけの用途にあった形・
今回はその流れについて見ていきます。
3Dモデリングからプリントのパイプライン
私が3Dプリンタ購入に二の足を踏んでいたひとつの理由は
よくあるプログラミングのパイプラインでは、
- ソースコードを人間が記述する
- コンパイラが機械語にコンパイルする
- コンピュータがその命令を実行する
という流れですが、3DPもこれとほぼ同様の流れです。3DPにおいては、
- 3Dモデルを人間がデザインする
- それを3MFないしSTLという形式に変換する
- それをさらにG-codeという機械語にコンパイルする
- 3Dプリンタがそれを実行する
という流れになります。
3DPの場合変換ステップがひとつ多いですが、プログラミングとかなり似ていることがわかるかと思います。
それぞれのステップを逆順に見ていきましょう。
プリンティング
3Dプリンターの動作は基本的にG-codeと呼ばれる命令セットを1行ずつ実行していくことで制御されています。コンピュータにおけるアセンブリコードのようなものと考えてもよいかもしれません。アセンブリコードを手書きするプログラマもいるように、理論的にはG-codeを直接書いて3Dプリンタを制御することも可能です
例えばG-codeでエクストルーダを特定の位置に動かすには、以下のようなコマンドを実行します。
G0 X100 Y100 Z500
G0
がX100
、Y100
、Z500
は それぞれX・
もちろん通常はこのコードを人間が手書きすることは現実的ではありません。例えば私が作った簡単なレゴブロックに互換性のある長いほうの辺が3〜4cmのおもちゃのブロックをプリントするのでさえ4万行近いG-codeが必要となります。この過程は通常ソフトウェアに行ってもらいます。
スライシング
スライシングとは、汎用3Dモデルデータを3Dプリンタが理解可能なG-codeに変換する工程で、3DPではこの役目を担うのがスライサと呼ばれるソフトウェアです。
スライサはモデルデータを解析し、実行環境なども考慮した上で、1層ずつフィラメントを積んでいくためのG-codeを生成します。必要であればサポートと呼ばれる、プリントをたすけるための追加の構造も含めたコードも作成できます。
プログラムにおけるコンパイラが最終的にプログラムが動作する環境ごとに特化したバイナリコードを作成するのと同じく、スライサは対応する3Dプリンタごとに特化されたG-codeを作成します。例えば、プリンタごとにプリントできる最大サイズが違いますし、対応する最高温度もまた違いますので、同じ命令セットに対応していてもそれぞれの3Dプリンタごとに同じG-codeが使えるとは限りません。よって、お使いの3Dプリンタをサポートしているスライサを使うのが重要です。
モデリング
モデリングはいわゆるお絵描きフェーズです。Blender、Fusion360、OpenSCADなどのツールを使ってモデルの形を定義します。
それぞれのソフトウェアには得手不得手がありますので、目的にあったソフトウェアを使いましょう。例えば、いわゆる機械部品のようなものをデザインするには各種制約やパラメトリックな設計が可能なFusion360が向いていますし、いわゆるフィギュアのような形を作るならBlender等の自由度の高いソフトウェアのほうがよいでしょう。
また、ここで重要なことはそれぞれのモデリングソフトウェアはそれぞれ独自の方式でデータを保持しており、お互い互換性がありません。この形のままだと、その後スライサがこれらの独自データ形式を理解しないと処理できなくなってします。これでは困るのでこれらのモデリングソフトウェアで作成したモデルをスライサが理解できる共通の3MFやSTLといった中間形式に変更する必要があります。
STLは長く使われてきたフォーマットで、モデルの形を三角形を敷き詰めた形でデータを保持しています。STLはほぼすべてのスライサが理解できる形式であるのが大きな強みです。3MFはSTLにはない素材や色の指定や回転などの変換を指定できるほか、複数のモデルを一つのファイルに格納できるなどの利点があります。3MFはAutodeskやMicrosoftといった大企業がバックについており、STLに比べればはるかに新参ではあるものの、新しいソフトウェアではほぼ対応されている形式です。
スライサが対応している形であればどちらの形式でも問題ありませんが、とにかく一度この中間形式にしてからスライサにモデルを処理してもらう必要があります。
OpenSCAD ——プログラミングによるモデリング
この流れさえ抑えてしまえば、あとはもうモデルを作り、プリントしていくだけです。この連載ではしばらくOpenSCADと呼ばれるソフトウェアを使ってモデリングについて解説していきます。OpenSCADは覚えることが比較的少ないのと、UIを操作してモデリングするのではなく、プログラミングをすることによって3Dモデルを作成するソフトウェアなため、プログラマにはとっつきやすいのが特徴です。そのため、文章による解説が容易となります。
例えば以下のようなコードをOpenSCADで実行することによって、丸みをおびた箱を造形できます。
次回はOpenSCADを使って私が行った初めてのデザイン、そしてそれを通してOpenSCADの使い方と、3DPとソフトウェアを作ることとの違いについて解説していきます。