2013年4月8日月曜日

3Dプリンター用のソフトウェアまとめ

3Dプリンターを動かすためには何種類かソフトが必要です。3Dデータを作成するCADまたは3DCGソフト、3Dデータを3Dプリンターの制御コードであるG-Codeに変換するスライサー、スライサーの操作やプリンターへのデータ送信等のUIを提供するフロントエンド、プリンターに組み込まれ、G-Codeを解釈してモーターやヒーターをコントロールするファームウェア等です。

この辺、調べたときに分かりづらかったのでメモ的にまとめてみました。

1. 3Dプリンターのワークフロー

先ず最初に、3Dプリントしたい形状のデータを作成する必要があります。これには3DCADまたは3DCGソフトを使用します。(データ共有サイトからDLしたり3Dスキャンして生成する方法もありますが今回は除きます)

Workflow

ワークフロー

H25.4.8追記 画像が正しくアップされていなかったのを修正しました。ご迷惑をおかけしました。



 作成した3Dデータは.STLと呼ばれる形式で出力します。STLは3Dプリンターで出力する際の事実上の標準形式になっています。

STL形式で出力したファイルを、今度はReplicatorGなどのフロントエンドソフトに読み込みます。フロントエンド(後述するスライサーと区別するため、この記事では便宜上そう呼びます)はユーザーがSkeinforgeなどのスライサー(G-Code生成プログラム)を操作するためのGUIを提供したり、3Dプリンターへ印刷命令を出したりします。モデルのサイズや位置、向き(角度)などを操作できるものもあります。

フロントエンドソフトにSTL形式のデータを読み込んだら、印刷解像度などを設定し、3Dプリンターの制御コードであるG-Codeを生成します。このとき、G-Codeの生成処理そのものはフロントエンドソフトではなくスライサーと呼ばれるプログラムが行います。ユーザー側からは分かりにくいのですが、独立した別のプログラムで処理されているのです。そのため、フロントエンドソフトは複数のスライサーを切り替えられるものが多いです。

Toolpath

STLはモデルの形状を定義したデータですが、G-Codeはエクストルーダーのツールパスを定義したデータです

スライサーが生成したG-Codeは印刷前にフロントエンドソフトでエラーチェックが行われます。問題が無ければG-Codeは3Dプリンターへ送信され、印刷が始まります。ただし、G-Codeは一度に送信されるのではなく逐次送信されているようです。そのため、PCがスリープすると印刷が途中で停止してしまいますし、PC側の負荷が高い状態になると送信が滞って印刷品質に悪影響を与える可能性があります。

3Dプリンターに送られたG-Codeは3Dプリンターの制御プログラムであるファームウェアが解釈して実行します。原点からある点までエクストルーダーを移動させろ、というのがG-Codeですが、ファームウェアはそれを解釈してモーターをどれだけ回転させるかを指示したり、エクストルーダーや印刷プラットフォームの温度をコントロールしています。

2. 3DCAD・3DCGソフト

3Dデータの作成に使用するソフトは大きく分けてCAD系とポリゴンモデラー系の2種類にわかれます。CAD系のソフトは一般に正確な寸法・形状でデータを作り込む事が得意です。3Dプリントするためのデータとしても相性がいいのですが、生物などの有機的な形状を作成する事は不得意です。

代表的なソフトはAutodesk 123DやSketchUp、MoIなどになります。

一方、CG系のソフトは正確な寸法・形状のコントロールは不得意な事が多いようですが、自由自在に形状を操る事ができます。ただし、形状を編集している間にデータの一部が損傷して(面に穴が開いたりする)3Dプリント時に悪さをする事があります。

Blenderが無償で利用できる3DCGソフトとして有名ですが、その他にも沢山あります。

CAD、CGソフトともに、こちらのブログ記事でいろいろ紹介されています。SCULPTRIS使ってみたいなー

3. スライサー

G-Codeを生成するスライサーですが、ソフトによって生成するG-Codeが微妙に異なります。そのため印刷品質も変わってきます。フロントエンドソフトから使用するスライサーを選択できることが多いので、異なるスライサーを試すのも楽しいでしょう。

a. Skeinforge

RepRap系の3Dプリンター用に開発されたスライサーです。今回紹介する中では一番古いと思われます。PythonスクリプトであるためG-Codeの生成速度が遅く(複雑なモデルだと数十分〜数時間かかる)、設定も複雑怪奇なため最近ではSlic3rなどの方が人気がある様子です。

しかし、生成するG-Codeの品質はSkeinforgeが一番良いという評価も聞きます。複雑怪奇ではあるものの細かな設定も可能で、コアなユーザーをはじめとして根強い人気があるようです。

速度に関してはPythonインタプリタを標準のものからpypyと呼ばれる高速なものに変更する事で向上することができます。使ってみたところ少なくとも数倍は速くなる印象です。

Skeinforgeseting

悪名高い?Skeinforgeの印刷設定画面

b. Slic3r

Slic3r

Slic3rの画面。GUIで奇麗にまとまっており、設定画面も簡単とは言えないがSkeinforgeよりは取っ付きやすい印象

人気のあるスライサーです。G-Codeの生成が非常に高速で、品質も高いという評判です。独自のGUIがあるため、詳細な印刷設定も比較的容易です。

Replicator2で試そうとしたところ、生成したG-CodeにReplicator2が対応していない命令が含まれている、というエラーが表示されたため断念。ただ、海外ではRep2での使用例があるので設定次第で使えるかもしれません。

c. Makerbot Slicer

Makerbotの公式フロントエンドであるMakerware用のスライサーです。G-Codeの生成速度が非常に高速でSkeinforgeとは比較になりません。

一方で品質がSkeinforgeに比べて劣る(注、個人的にはそこまで違うとは感じていません)、細かい設定ができないないとの話もありMakerbotのユーザーコミュニティーではあまり評価が宜しくありません。ただし、Makerbotは熱心にMakerware(とMakerbot Slicer)の改良を続けているようですので、今後の発展が期待されます。

d. KISSlicer

有償のスライサーです。1ヘッド用は無償で利用できるようです。STLモデルの3D表示、G-Codeのツールパスを3D表示してくれるなどGUIが充実しているのが特徴。

吐出量が多めなのか、他のスライサーに比べてくっきりとした積層痕がでる傾向にあるようです。そのかわり下ダレには強い様子。

4. フロントエンド

a. ReplicatorG

RepG

ReplicatorG

Makerwareと比べるとUIは洗練されているとは言いがたいですが、G-Codeを直接編集できたり、Skeinforgeの設定画面を開けたりと細かな設定が可能です。また、エクストルーダーの位置をコントロールできたり、印刷時間を予想してくれたり、温度情報を読み取ったりといろいろ機能が多いです。

残念なのは複数のSTLファイルを同じ印刷エリアに配置できない事でしょう。そのほか印刷予想時間が当てにならないのも玉に瑕。

標準のスライサーはSkeinforgeですが、Slic3rも選択可能です。MakerbotのフォーラムではSkeinforge + pypyが人気です。

b. Makerware

Makerware

Makerware

今ひとつ評判の良くないMakerbotの公式フロントエンドです。洗練されたGUIを持ちますが、細かな設定ができないこともあって今でもReplicatorGを使っている人も多い様子です。

とは言え、操作性と高速なMakerbot Slicerはなかなか便利で、私はとりあえず印刷する時はこれを使っています。Makerbotによる今後の改良も期待できそうですし、将来的にはもっと評価が良くなるのではないかとも思います。

スライサーはSkeinforgeに変更する事が可能です。ただし、Skeinforge + pypyができない、Skeinforgeへの対応が限定的という話もあるため(未確認)、私はSkeinforgeを使いたい時はReplicatorGを使っています。

c. Cura

Cura

Cura

人気のある3DプリンターUltimakerで主に使用されているフロントエンドです。ReplicatorGのようなGUIをもっています。標準のスライサーはSkeinforge + pypyのようです。ちょっとうらやましい。

d. Printrun

Pronterface

PrintrunのGUI、Pronterface

RepRap系で使われているフロントエンドのようです。Solidoodleなどの低価格機でもよく使われているのを見ます。使った事が無いので使用感は不明。GUIはPronterfaceという名称の独立したアプリになっています。

標準のスライサーはSkeinforgeですが、Slic3rも切り替えられるようです。G-Codeの読み込みもできるので、KISSlicerなどと組み合わせて使用している例も見ます。

e. Repetier Host

こちらもRepRap系で使われているフロントエンドです。Pronterfaceよりも充実したGUIを持っている様子です。スライサーはSkeinforgeとSlic3rを切り替える事ができるとのこと。使った事が無いので詳細不明。

5. Firmware

3Dプリンターを制御するファームウェアですが、ハードウェアと密接に関係する部分だけにMakerbotの製品では公式のものを使用するのが基本でしょう。ただ、オープンハード由来だけあってSailfishという非公式のファームウェアが存在しています。

SailfishはMakerbotの公式ファームよりも先進的な機能を取り込む事が多いようで、コアなユーザーに人気があります。Makerbot Firmwareに搭載されるようになったアクセラレーション機能は、SailfishがMakerbot機向けに実装したのを公式に取り込んだようです。

その他にもMarlinやRepetier FirmwareなどRepRap系自作3Dプリンター用に各種あります。アクセラレーション機能など印刷結果にも影響しますので、とことんされる方は自己責任で試してみるのもいいかもしれません。

(Ref.)

Solidoodle Tips - Slicer Comparison
スライサーの比較記事(リンクはシリーズの一番最初の記事です)。Slic3rやSkeinforge (Cura)、KISSlicerの比較がされています。いろいろな条件でテストしており、各スライサーの得手不得手が伺えて面白いです(英語)

ディヴィジョンエンジニアリングスタッフブログ - KISSlicerで0.1mmピッチ造形
SolidoodleでKISSlicerとSlic3rを比較されています。同ブログではSkeinforgeの設定解説記事などもあり必見です(日本語)

Thingiverse - pypy for Mac OS X
ビルド済みのOSX用pypy。OSXでpypy導入に苦戦する人が続出したため有志がThingiverseにUpしてくれた様子。

3 件のコメント:

  1. こんにちは

    たまたまブログ拝見しました。

    昨年9月に家庭用の3Dプリンターを購入して遊んでいるものです。やっと最近使いこなせるように(?)なってきました。

    最初はSkeinforgeを使用していましたが、
    最近はもっぱらSlic3rを中心に使っています。

    先月やっと作品が完成したので参考までにご紹介します。

    https://sites.google.com/site/tokyovirtualworld/01-model/01-08-samalkand

    3Dプリンター 使いこなせばとても楽しいツールです♪

    返信削除
    返信
    1. こんにちは。コメントありがとう御座います。
      モスクのジオラマは圧巻ですね! 制作過程や3Dプリント関連記事を楽しく拝見しました。

      私はSkeinforgeを使う際はThingiverseで公開されている先人の印刷プロファイルを使用しています。
      ぜひSlic3rも試したいのですが…

      削除
  2. こんにちは、私は3Dプリンター初心者です、解りやすい解説拝見させて頂きました。ありがとう御座いました(^,^)

    返信削除