3Dプリントのデフォルトを自作する

デフォルトの自作に向いているPrusa Slicer

チェコのPrusa Researchの創設者、Joseph Prusaはもともと、RepRapプロジェクトのプリンタ設計者です。

RepRapプロジェクトの2番めのプリンタであるMendelを大幅に改良したPrusa Mendelは「3DプリンタのT型Ford」と呼ばれ、それまでのRepRapプリンタよりはるかに簡素で製作・改造がしやすくなりました。

現在彼は自分の会社であるPrusa Researchで自分の設計したプリンタを売ってますが、Prusa i3などのそうしたプリンタもまたGPLライセンスオープンソースプリンタでありまたRepRapプリンタの一種であり、それをもっとも上手に作れるのがPrusa Research、と考えればいいです。

このPrusa ResearchでSlic3rを元に開発されたスライサソフトがPrusa Slicerです。

Prusa Slicerは、元のSlic3rよりもわかりやすいインターフェイスと、Slic3rやCuraよりも確立した設定優先順位思想を持っています。

そして使ってみると、前のエントリで書いたような「自分の3Dプリンタの状態に合わせたデフォルトを自分で確立する」ということを強く意識して作られていることがわかります。

まずSlic3r譲りの「プリント設定」「フィラメント設定」「プリンター設定」ですが、これらには「プリセット値」が存在しています。それだけならばCuraにもありますが、Prusa Slicerの場合、各設定の名前(「積層ピッチ」など)が緑字で表示されており、値を変更すると、設定名そのものが赤字に変わります。これによりデフォルト値を強く意識できるようになっています。もともとシステムに仕込んだデフォルト値に自信があるからできることだと思いますが、自分の作ったデフォルトであっても、「元の値」と「実験中の値」を意識することは非常に重要です。

また、設定の保存についても巧妙です。

Slic3rではプリセットは「default」しかありませんから、それぞれの設定に適当な名前を付けて、どんどん保存したり上書きしたりしがちです。また、Curaは設定が分散しており、マシンごと、フィラメントごとの設定がプリント設定に混入しがちです。

Prusa Slicerの場合、プリント設定のプリセットには「0.15mm QUALITY @MINI」のように「この部分には何に依存して変わるパラメータが保存されているか」ということを意識できる名前がついています。このようになっていると、おいそれとプリセットを増やす気にはなりません。

それでは、さまざまな設定を探っていくときの試行錯誤はどこに保存したらいいのでしょうか。Prusa Slicerでは、このために「プロジェクト」という単位を全面に出すようになっています(拡張子.3mf)。

ファイルメニューに「新しいプロジェクト」「プロジェクトのオープン」「最近のプロジェクト」…云々が並んでいることで、ユーザーは、プリント対象物の都合に合わせていろいろと変更したものを保存すべきはこの単位なのだな、と自然に理解できます。*1

この.3mfファイルはSlic3rやCuraでも扱うことができます。Curaもファイルメニューの新規/セーブするデフォルトファイルはプロジェクトですし、Slic3rのOpenメニューは"Open STL/OBJ/AMF/3MF..."で開くことができます。

ただ、これらのソフトではこの形式を全面的に活用しているわけではなく、機能の切り分けが曖昧で、何がどこにセーブされているかがわかりにくいです。Curaのインターフェイスはpreferenceの位置が移動しますし、日本語インターフェイスの翻訳もひどいので、「なにがなんだかよくわからないけど経験的に動いてる」みたいな状況をよく見ます。

たぶん内容的にはどのソフトでも同じようなことができるのですが、設計思想が透徹しているかどうかによって、インターフェイスから得られる理解度は大きく違います。Prusa Slicerはユースケースを設定して設計し直した感じが強いのです。

デフォルトの確立手順

というわけで、Prusa Slicerを使ったデフォルトの確立は次のようなサイクルを回すことで行います:*2

  1. 「プリセット」をデフォルト値として使う。
  2. テストを「プロジェクト」として変更部分をファイル名に反映して保存する*3
  3. 出力物にもナンバリングする(日付・番号をマジック等で書く)
  4. データが集まったら検証する
  5. 検証が進んで確立した設定を、独立したプリセットとして保存する

ベンチマークの出力にも数時間かかるので、なかなか大変です。また、結果の保存と検証にはちょっと手作業が伴います。とはいえ、かなりの部分が仕組みに助けられるので、脳味噌的には非常に楽です。

*1:ちなみに、ベンチマークなどの検証プロセスも、独立の「プロジェクト」として保存します。こうするとカスタムGコードなどを機種非依存な状態で保存できるため、変えたい条件だけが変えられ、めちゃくちゃ便利です。

*2:スタート地点としては既成のプリンタ製品やフィラメントがいくつも登録されているので、それらを使いましょう。Prusaはもちろん、AnycubicやCreality 3D等のプリンタはプリセットが入ってますし、Kingroon KP-3シリーズについてはOriginal Prusa Miniが大きさも構成も似ています(ただしオートレベラーは付いてないのでカスタムGコードの当該部分をコメントアウトする必要があります)。Prusa i3クローンを標榜するブリンタならば、Original Prusa i3から始めればよいでしょう。品質が劣る分は、まずは加速度や最高速を制限します。

*3:こうした検証のプロセスを共有するにもプロジェクトファイルは使えると思います。少なくとも他人が作った.gcodeを自分のプリンタでそのまま走らせるよりは安全ですし、機種依存部分は自分の環境に合わせられるので。