STLをG-codeに変換

スライサーとは

STL形式のデータをG-code形式に変換するのに使うのがスライサーというソフトウェアだ。

いくつか代表的なスライサーがあるが、無料で使えるUltimaker Curaに人気があるため、今回はこれを使って説明したい。

ちなみに筆者はUltimaker Curaが苦手だ。普段はSimplify3Dというスライサーしか使っていない。

だから、Simplify3Dを使って説明したいところだが、これは有料で$149(2021年2月25日現在約15,800円)して、気軽に勧められない。

Simplify3Dはとにかく取りやすいサポートを付けてくれることが特徴で、サポートが取りやすい樹脂であるABSで造形する場合、形状にあまり制約がなくなるため、今後も愛用していくつもりだ。

3Dプリンターを使っていて剥がれないサポートに悩むこともあると思うが、それは3Dプリンターそのものの限界ではない。

苦悩に直面したとき、スライサーや樹脂の選択で解決できる場合があることを思い出してほしい。

Ultimaker CuraでG-code形式のデータを作る

スライサーでSTLをスライスして、G-codeとして書き出す。

スライスとは切るということ。なぜこのような用語が使われているかというと、STLで表現された立体をCT検査やMRI検査でやるように輪切りにし、輪切りを積み重ねた形に再構成するからだ。

これが即ちFDM式3Dプリンターでの造形を考慮した手順書になる。

まずはCuraにKINGROON KP3S用の設定を追加するところからやってみよう。

Ultimaker Curaの初期設定

こちらからスライサーであるUltimaker Curaをダウンロードし、インストールする。

Curaには予めメジャーな3Dプリンター用の設定が登録されていて、対応した3Dプリンターなら初期設定はそこから選んでおしまいなのだが、KINGROON KP3Sは残念ながら登録がない。

そこで、Thingiverseにアップロードされているこちらのプロファイルを使用する。

これは、KINGROON公式のスライサーから解析して得たスタートG-code、エンドG-codeを含むとのことだ。

解凍すると以下の三つのファイルが得られる。

  • kingroon_kp3s.stl
  • kingroon_kp3s_extruder_0.def.json
  • kingroon_kp3s.def.json

これをインストールしたCuraに登録する。

設定のテンプレートとして登録するので、ちょっと裏技のような方法になる。

記事執筆時点でのCuraのバージョンは4.8。

バージョン依存なディレクトリは4.8となっているが、この先のバージョンアップに従い変わっていくはずだ。

そこは適宜読み替えてほしい。

macOS版は三つのファイルを以下のように配置する。meshesフォルダが存在しなかった場合は自分で作る。

/Users/ユーザー名/Library/Application Support/cura/4.8/definitions/kingroon_kp3s.def.json
/Users/ユーザー名/Library/Application Support/cura/4.8/extruders/kingroon_kp3s_extruder_0.def.json
/Users/ユーザー名/Library/Application Support/cura/4.8/meshes/kingroon_kp3s.stl

Windows版は三つのファイルを以下のように配置する。meshesフォルダが存在しなかった場合は自分で作る。

C:\Program Files\Ultimaker Cura 4.8\resources\definitions\kingroon_kp3s.def.json
C:\Program Files\Ultimaker Cura 4.8\resources\extruders\kingroon_kp3s_extruder_0.def.json
C:\Program Files\Ultimaker Cura 4.8\resources\meshes\kingroon_kp3s.stl

このようにしてからCuraを起動し、メニュー「Settings>Printer>Add Printer…」から「Add a non-networked printer」を見ていくと「Kingroon>Kingroon KP3S」の項目が増えているはずだ。

image alt

これを選んで「Add」すればOK。

次項「設定の調整」で解説した調整後の設定プロファイルをダウンロードできるようにしておくので、これを使うのでもいいだろう。

積層ピッチ0.2mm、PLA用のプロファイルだ。

若干筆者のカスタムも入っている。

「Preferences…>Profiles>Import」から、この設定を取り込むことができる。

image alt

取り込んだプロファイルはリストの末尾に加わるので、使う場合はそこから選択する。ファイル名がそのままプロファイル名になるようだ。

image alt

設定の調整

最初のスライスに臨む前に設定の調整をする。

画面右に設定項目が並んでいるはずだが、並んでいない場合は現在選択されている設定が表示されているバーをクリックして表示させる。

image alt

「Search Settings」の検索窓の右のハンバーガーメニューをクリックして「All」を選択し、隠れている設定項目を全部表示させる。

設定項目が多すぎて見つからない場合は、「Search Settings」の検索窓に設定項目名を打ち込んで絞り込むといい。

「Flow」は100%に設定したが、以下のキャリブレーション方法で最適値を算出して設定した方がいい。

その方法は以下に書いておいた。

「Flow」が適量より多いと、余った樹脂が悪さをする。

「Flow」は樹脂毎、室温、ノズルの温度、ノズルそのもの、フィラメントのスプールからエクストルーダまでの経路によって変わるので、最終的にどれぐらいノズルから樹脂が出てきたか?というところから逆算して最適な「Flow」を決めるという考え方だ。

ダイレクトエクストルーダーでヘッドが重いため、スピード耐性はあまりないはずだ。「Print Speed」は40mm/sから始めて、クオリティが許せる場合にそれ以上に上げていくといいのではないかと思う。筆者は40mm/sで使っている。

KINGROON KP3Sはダイレクトエクストルーダーなので、「Retraction Distance」は短めの2mmに設定した。

Curaのデフォルトのサポートの設定は問題があるので、はるかぜポポポ氏の設定を必ず取り込む。(下掲の設定例は取り込んである)

無改造のKINGROON KP3Sはパーツクーリングファンによる冷却が足りておらず、風下では造形不良が発生しやすいので、特にPLAではサポートが外しにくいかもしれない。

その場合は「Support Top Distance」、「Support Bottom Interface」の数字を大きくすると改善するはずだ。

改造すれば十分過ぎるぐらい冷却性能を強化できるので、冷却能力が足りないことを嘆く必要はない。3Dプリンターには自分自身を強化する能力があるからだ。

チェックを入れていないとサポート関係の設定が変更できないので、サポートが不要な場合は、いったん設定後に「Generate Support」のチェックを外す。

項目デフォルト変更後
ProfileFineDraft
Flow100最適値
Print Speed6040
Build Plate Adhesion TypeBrimSkirt
Retraction Distance6.52
Retraction Speed2540
Generate Support ✔︎
Enable Support Interface ✔︎
Enable Support Floor✔︎
Support Line Width0.40.26
Support Interface Line Width0.40.3
Support Speed4060
Support Infill Speed4060
Support Interface Speed5065
Support PatternZig ZagTriangles
Support Wall Line Count 1
Connect Support Line ✔︎
Support Density158
Enable Support Brim ✔︎
Support Brim Width8.04
Support Brim Line Count189
Support Top Interface0.10.07
Support Bottom Interface0.10.15
Support Join Distance24
Support Interface Tickness10.6
Support Interface Density10075
Support Interface PatternConcentricZig Zag
Fan Speed Override ✔︎
Use Towers✔︎

さきほども掲載したが、解説した調整後の設定プロファイルを再掲しておく。

積層ピッチ0.2mm、PLA用のプロファイルだ。

若干筆者のカスタムも入っている。

「Preferences…>Profiles>Import」から、この設定を取り込むことができる。

image alt

取り込んだプロファイルはリストの末尾に加わるので、使う場合はそこから選択する。ファイル名がそのままプロファイル名になるようだ。

image alt

STLの読み込みとG-codeへの変換

KINGROON KP3S用の設定の追加、調整が終わったところで、早速STLからG-codeへの変換をする。

ここは定番の3DBenchyを使ってみよう。

中にある3DBenchy.stlを使う。

これをCuraの画面にドラッグ&ドロップする。

Curaの画面では、以下のような操作が有効だ。

  • Shift + ドラッグ
  • Ctrl + ドラッグ
  • スクロールホイール

回転ツールを選択した後で読み込まれたモデルをクリックし、青い矢印をドラッグして船首を冷却ファンの吹き出し口のある左に向ける。

オーバーハングのきつい船首がファンの風上になるようにしたわけだ。

image alt

3DBenchyはサポートなしでどれぐらい出力可能か?ということを見定めるものなので「Generate Support」はオフにする。

ファンの冷却力が問われるので「Fan Speed」は100%に。

「Shell」の中の「Z Seam Alignment」は「User Specified」に。

「Shell」の中の「Z Seam Position」は「Back Right」に。

これで、船首を上にして上から見下ろしたときに、船尾や構造物の右下に継ぎ目が集まる。この3DBenchyをプリントするときだけは、この設定がいいだろう。

画面右下の「Slice」ボタンを押下。

スライスの結果を画面上中央の「PREVIEW」ボタンを押して確認。元の状態に戻すには、その左隣の「PREPARE」ボタンを押す。

image alt

結果を確認したら、画面右下の「Save to File」ボタンで生成されたKK_3DBenchy.gcodeをMicro SDカードに保存。

KINGROON KP3Sに持っていってプリント開始するだけだ。

ほぼノーマルなのにかなり頑張って造形できた。(レベリングは失敗してて底面は潰れた)

image alt
image alt
image alt
image alt

なお、冒頭に書いた通り筆者はUltimate Curaが苦手で普段使っていない。今回紹介した設定はベストのものではないと思われるので、その点ご承知いただきたい。

引き続き、スライサーに関係した基礎知識的なことを書いていく。本来この次からを文章の最初に置いていたが、あまりに冗長なので、Curaでの具体的な手順を先に書いた次第だ。

STL形式のデータとは?

基本的な使い方の流れを踏襲すれば、KINGROON KP3SでG-codeをプリントするところまではできるようになったはずだ。

しかし、3Dプリンターでのプリント用として一般的に手に入るのはSTL形式のデータ。

例えば、筆者がとても好きなデータ共有サイト、Thingiverseからは、無数のSTL形式のデータがダウンロード可能だ。

ここを巡って気に入ったデータをダウンロードし、3Dプリンターでプリントするだけでも3Dプリンターの醍醐味は十分味わえる。

しかし、STL形式のデータはあくまでも立体の形状を表現するデータであって、3Dプリンターのためのデータではない。

G-code形式のデータは、STL形式のデータから変換できる。

G-code形式のデータとは?

G-code形式のデータは、ノズルをどう動かし、樹脂をどう押し出すかを示した手順のデータだ。

3Dプリンターにインストールされたファームウェアによって方言があり、KINGROON KP3SはMarlinベースのG-codeとなる。

プログラミング言語に例えると、関数・メソッド集といったところか。

3Dプリンターは立体を扱えるとても賢い機械だと思いがちだが、実際にはそうではなく、G-codeで書かれた通りの手順を再現するだけだ。

コンピューターならではの臨機応変な対応といったものはなく、ただひたすらG-codeで指示された操作を実直に実行するだけ。

3DプリンターはG-codeを再生する自動演奏のピアノ、もしくはオルゴールのようなものと例えると分かりやすいだろうか。

image alt

だから、3DプリンターにG-codeでどのように指示を与えるかということがとても重要だ。

3Dプリンターのメニューを操作して、設定項目や機能が思いのほか少ないことを不思議に思ったことがあるかもしれない。

それは、ほとんどの動作はG-code内から指示するため、本体側の操作で設定する必要がないからだ。

FDM式3Dプリンターの造形ルールとサポート

本筋からちょっと逸れるが、筆者がこの時期に俯瞰的に知りたかったFDM式3Dプリンター共通の造形ルールについて書いておこうと思う。

薄い樹脂の層を重ねて造形するKINGROON KP3SのようなFDM式3Dプリンターの場合、普通の射出成形によるプラスチック成形品とは違った制約が課される。

土台の上に造形するのが前提

射出成形と違い金型がなく、下から上へと樹脂の層を重ねて造形するため、直下に前の層がないと上の層が造形できないというのが最も基本的な制約。

物が地面へと引っ張られる重力の影響を受けるわけだ。

今造形している層が上の層の土台になる。上の層は、その土台があって初めて造形が可能になる。

例えば富士山のように末広がりの形を下から順に造形するなら、必ず下の層の上に上の層を重ねることになるからFDM式3Dプリンターでの造形に何も問題はない。

image alt

直立した真っ直ぐな柱を造形する場合も、必ず下の層の上に上の層を重ねるからOK。

ただし、柱の高さと比べてベッドとの接地面積が小さい場合は、土台のようなものを付けてグラグラしないようにする。

ベッドと接触している部分に働く癒着する力は、上層の安定した造形に必要だからだ。

それが足りない場合は補う。不要な土台は、造形完了後に切り取るのだ。

造形のために本来不要なものを付けてプリントし、後で切り取るプロセスを踏むのは3Dプリンターでは当たり前の発想と覚えておこう。

image alt

オーバーハングの造形

東京ビッグサイトの逆三角形はどうだろう?

image alt

こういう逆勾配の形状をオーバーハングという。

ノズルのところに付いているパーツ冷却用のフード(パーツクーリングファンシュラウド)の形状とファンの風量によるが、大体45度程度のオーバーハングまでなら問題なく造形されることが多い。

チューニングがうまくいっている3Dプリンターなら、60度程度のオーバーハングでも綺麗に造形できる。

KINGROON KP3Sでも改造によってその領域に到達することは可能。

オーバーハングが汚いからといって、3Dプリンターを買い換える必要はない。単純に冷却の問題だからだ。

東京ビッグサイトの逆三角形は45度以内の逆勾配のように見えるから、冷却をしっかりやれば3Dプリンターでも問題なく造形可能だ。

空中にいきなり造形できない

宙に浮いた立方体はどうだろうか?

image alt

もちろん無理だ。

空中から急に造形を開始できない、というのは考えるまでもなく明白だ。

ブリッジの造形

陸上のハードルのような門型は?

縦の柱の部分はもちろん大丈夫。

image alt

横に渡された部分はブリッジといい、距離が短ければ大丈夫なこともある。

image alt

これもオーバーハング同様、冷却や造形スピード次第で耐性が変わる。

大概は辛うじて造形できるが、下辺の部分は少し下に垂れ下がったように造形されることが多い。

サポートの必要性

人の立像を立てて造形する場合はどうだろう?(このモデルは横に寝かせてプリントすべきだが、説明のためにこのような条件を置いた)

下から順に層を積み上げて造形していくと靴、足と徐々に現れてきて、足の造形が終わる頃に下げた手の指先が突然空中に登場することになる。

手は肩で胴体とつながっているので不思議な感じがするが、肩が造形されるのは手の指の造形のかなり後のことだ。

image alt

この場合、3Dプリンターでの造形は不可能だろうか?

このようなケースに対応するために、サポートというものを使用する。

後で取り外すことを前提に、土台のようなものを地面から造形し、この例でいえば指先の登場を「サポート」するわけだ。

image alt

サポートと本体とは0.1〜0.2mm程度の間隔を開けて、癒着しないようにする。

すべての指の造形が始まったところでサポートの役目はいったん終わるので、そこでサポートの造形は打ち切られる。

人体でいえば首、耳、顎の辺りでサポートが再び必要になるだろうか。

同様に、サポートをブリッジの下を支えるように付ければ、3Dプリンターのブリッジ耐性に頼らずブリッジ部分が造形できるようになるし、45度を超えるオーバーハングが出てきたら、そこにサポートを付ければ3Dプリンターのオーバーハング耐性を超えた造形が可能となる。

サポートを付けるのは、スライサーでやることが多い。

造形ルールまとめ

FDM式3Dプリンターでの造形では……。

  • 土台の上に造形されているか?
  • オーバーハング耐性は大丈夫か?
  • ブリッジ耐性は大丈夫か?
  • サポートによる補助は必要か?

この四つを常に意識することになる。

これにもう一つ付け加えると、「層を積み重ねる方向はどっちか?」これも大事だ。

1層1層は強いが、層と層の間は剥がれやすくなりがちだからだ。

例えば、下図のようなフックのようなものを造形する場合、右のように層と層の間に力のかかる方向で造形してはいけない。

image alt

左のように寝かせて造形すれば、射出成形に負けない強靭なものができる。

Ultimaker CuraとOctoPrintの連携

Ultimaker Curaをネットワーク対応、WiFi対応させる方法がある。

データをMicro SDに保存してカードの抜き差しをしなくてもよくなるほか、KINGROON KP3Sの電源すら入れたり切ったりしなくてよくなる。