11月25日発売 書籍『Arduinoと3Dプリンタでロボットを作ろう』を出させて頂きました!

【Curaテクニック】造形途中にフィラメントをチェンジしたり、造形物内にモノ(ナットや磁石など)を封入する方法!

前回、スライサーソフトUltimaker Curaのスクリプトを使い特定のレイヤー(高さ)毎にノズル温度や印刷速度など各種パラメーターの変更を行う方法をご紹介しました。
テスト出力やベンチマークを取る場合、また造形物の特定部分だけパラメーターを変更して出力する際などで便利に使えました。

【Curaテクニック】フィラメントベンチマークに最適!高さ(レイヤー)を指定して各種パラメーターの変更を行う方法!

今回は同様にCuraのスクリプトを使い造形途中にフィラメントを交換し多色出力させたり、造形物内に何かモノ(磁石やナットなど)を仕込む方法をご紹介したいと思います。

具体的にはCuraのスクリプト『Pause at height』を使って上記を実現させてみたいと思います。

造形途中にフィラメントの色を変えたり造形物内に磁石やナットなどを仕込む方法!

Ultimaker Curaは3Dプリンタをやられている方なら一度は使ったことがあるスライサーソフトだと思います。
私は現時点ではスライサーソフトはこのCuraしかまだ使ったことがなく、3Dプリンタを含めその使い方や設定方法などまだまだ勉強している段階です。

そしてCuraには便利なスクリプトが多数用意されています。
今回は『Pause at height』というスクリプトを使ってみたいと思います。

造形途中にフィラメントをチェンジして多色出力させたり、造形物の中にナットやマグネットなどを仕込んだりと面白い造形が出来るようになります。
応用次第で他にもいろいろと便利に使える場面は多いと思います。

造形途中にフィラメントをチェンジして多色出力してみる

造形途中にフィラメントの交換が出来れば面白い造形物が作れるようになります。

現在私は2台の3Dプリンタを使い楽しんでいます。
Artillery Geniusという機種では、このフィラメントチェンジ機能が標準で搭載されています。
この機能を使えば造形途中で色の違うフィラメントに交換しこのような造形物を作ることも可能となります。

【3Dプリンタ】Artillery Geniusレビュー!基本性能は非常に高い機種となるようです!
3Dプリンタで作るTIEファイター(タイ・ファイター)フィギュア。完成度高いです!【Thingiverse】

これホント便利な機能なんですよねー!
単色での造形に比べリアリティーが増し一気に楽しいものが出来上がります。

しかしこれをもう1台のEnder3 V2でやろうと思うと綺麗に出力するのはなかなか大変となります。
もともとこのようなフィラメントチェンジ機能が標準で付いていないEnder3 V2(他のEnder3シリーズの機種でも同様です)では、造形途中に強制的に一時停止させてフィラメントを交換することも可能なんですが、停止中はノズルがその位置で固定され造形物に接触しているので溶かしてしまったり、フィラメントを交換後再開させるとノズル内に残ったフィラメントと色が混ざり何層か混ざったフィラメントが排出され・・・
綺麗に仕上げるにはこの方法ではなかなか難しくなってきます。

そこで今回はCuraのスクリプト『Pause at height』を使ってこれを実現させてみたいと思います。
私が使っているEnder3 V2を例に解説していきますが、他の機種でも基本的な設定方法は同様で問題ないかと思います。

フィラメントを交換するタイミングを確認しておく

それではCuraのスクリプト『Pause at height』を使ってフィラメントを交換するタイミングや交換時のノズル内の余分なフィラメント排出などを設定してみたいと思います。

その前に、まずは色を切り替えるタイミングを事前に確認しおきます。
今回こちらのモデルを例にやってみたいと思います。
スーパーマリオに登場する1UPキノコで、白と緑のフィラメントを使い分けて造形させると非常に可愛く出来上がります!

参考 1-UP Mushroom CoasterThingiverse

まず通常通りスライスさせます。
ここから色を切り替える(フィラメントをチェンジさせる)タイミングを確認しておきます。
このモデルでは14レイヤー目から色をチェンジさせると上手くいきそうです。

フィラメントを交換するタイミングが確認できたら、今回の本題となるスクリプトの設定をやっていきます。

スクリプト『Pause at height』の設定

フィラメント交換のタイミングが確認できたらスクリプトを設定していきます。
Curaのスクリプトとは、簡単に説明すると特定の機能や設定を付けスライスする事によりGコードにそれらを反映(記述)するというものとなります。

Curaのスクリプト設定は、【拡張子】→【後処理】→【G-codeを修正】へと進むとスクリプト設定画面となります。(Curaは日本語表記にしています)

【スクリプトを加える】をクリックし、

『Pause at height』を選択します。

こちらがデフォルトで設定されている内容となります。
このスクリプトを使いフィラメントを切り替えるタイミングや停止時のプリントヘッドの位置、フィラメント排出量などを設定していきます。

設定項目がいろいろとありますが簡単な英語表記なので内容を理解するのは簡単です。
必要事項のみピックアップし少し解説しながら設定していきたいと思います。

MEMO
Curaのバージョンアップにより設定項目やUI等変更されている場合があります。

スクリプト『Pause at height』の設定項目

スクリプト『Pause at height』の設定項目を簡単に見ておきます。
文章で書いてしまうと少し難しそうですが、実際設定してみると非常に簡単です。

Pause at

一時停止させる位置を高さ(mm)かレイヤー番号で指定します。

  • Height:高さ(mm)で指定する
  • Layer Number:レイヤー番号で指定する

フィラメントをチェンジするタイミングを先ほどレイヤー番号を事前に調べておいたので今回はLayer Numberを選択。

Pause Height(Layer)

一時停止させるレイヤー番号(または高さmm)を指定します。
上記Pause atでHeightを選択した場合は高さ(mm)単位で指定する形となります。

先ほど事前に調べておいたモデルでは14レイヤー目から色を切り替えます。
つまり13レイヤー目が完了後、造形を一時停止させたいのでここでは13を指定します。(14ではないのでお間違えのないように!)

Method

この項目は個人的に非常に悩まされました。
デフォルトではMarlin(M0)が選択されています。
MarlinファームウェアにはM0という一時停止コマンドがあります。
このコマンドを使って今回やっているスクリプトの設定値をGコードに反映させるというものなんですが・・・

しかしEnder3の場合、Marlin(M0)を選択するとどうも上手くこのスクリプトが機能してくれませんでした!
このMethod項目には他にも選択出来る項目がいくつかあります。
Ender3 V2の場合はBG(M25)を選択しないと上手く機能させることが出来ないようです。

MarlinのM25コマンドは「SDプリントの一時停止」コマンドとなりますが、Ender3シリーズの機種の場合はSDカードのGコードを読みながら印刷しているのでこの停止コマンドを使わないと上手くいかないということのようですね。

Ender3系の機種をお使いならBG(M25)を選択して下さい。(その他機種では確認できていません)

Disarm timeout

タイムアウトする時間を設定することが出来ます。
設定時間が経過すると自動的に出力が再開されますが、フィラメントチェンジでは次のフィラメントを用意したりと・・・いろいろと時間がかかるので特に設定する必要はないかと思います。

0を設定しておくと、プリンター本体の[Print再開]ボタンを押すまで停止しています。

Park Print Head X(Y)

Park Print Head X Yは一時停止時にプリントヘッドを指定位置まで移動させることが出来ます。
デフォルトではX:190.0/Y:190.0が設定されています。
特に変更する必要はありませんが、後述するフィラメント排出時にプリントヘッドが手前にある方が作業がしやすいので今回はX:0/Y:0に設定しました。

Retraction(Speed)

リトラクション(引き戻し)の設定です。
フィラメントをチェンジし一旦ノズル内のフィラメントを排出する場合などは特に考える必要はないかと思います。

そうではなく、一時停止によりフィラメントを交換しない場合など(造形物内にものを封入する場合など)では、再開後フィラメントのダマ?など出来る場合があるようなので一応このくらいで設定しておけば問題ないようでした。

(参考値)
Retraction 3.0mm
Retraction Speed 25.0mm/s(デフォルト値)

Extrude Amount

停止時、フィラメント交換を行う際のフィラメントの排出量を指定します(mm)。
新しいフィラメントに交換するとノズル内に前のフィラメントが少し残っています。
出力再開後に色など混ざってもいい場合は0.0mmでいいのですが、色が混ざってしまうのが嫌な場合は排出量(mm)を指定することによりノズル内に残ったフィラメントを排出する事が出来ます。

通常30mmほど排出すれば問題ないかと思います。
後述しますが、例えば赤フィラメントから白フィラメントにチェンジする時など色の濃いフィラメントの場合は多めに設定しておくと再開後の色が混ざったフィラメントの排出が抑えられるかと思います。

Standby Temperature

停止中のノズル温度を指定することが出来ます。
私は停止中も高温状態で維持する設定(200℃など)で使っています。

しかし、造形中にプリンターから離れる場合などでこのスクリプトが動作し一時停止になる場合、長時間高温状態にしておくのはあまり好ましくありません。
そのような場合は0℃など低温に設定しておくのがいいかと思います。

Display Text

停止中にディスプレイに表示させるテキスト文となりますが、Ender3 V2標準ファームでは設定しても使えませんでした。

G-code Before Pause(G-code After Pause)

スクリプトが機能する時(停止する前後)に動作させるGコードを挿入する事が出来ます。
Gコードに関してあまり詳しくない方は空白で問題ありません。

例としてビープ音を鳴らすコードM300がありますが、これを入れておくと停止時に音を鳴らすことが出来るので便利かと思います。

実際に設定してみる

スクリプト『Pause at height』の設定項目が分かったところで実際に設定し動作させてみたいと思います。
先ほどの1UPキノココースターを使って設定してみます。

以下の設定で出力させてみました。
停止ポイントにレイヤー番号13を指定しています。
13レイヤー目の造形が終わると一時停止します。
そして停止時にプリントヘッドがX:0/Y:0(ベットの左前)の位置に移動するように指定しています。
またフィラメントの排出量は30mmとし、ノズル温度を200℃にキープさせています。
停止時にビープ音を鳴らすGコード(M300)も入れています。

スクリプトの設定が完了しメイン画面に戻ると、現在適応されているスクリプトの数を確認することが出来ます。(複数スクリプトを適応させることも出来ます)
あとは通常通りスライスしてプリントするだけです。

実際にこの設定で動かした動画が以下となります。
13レイヤー目を造形後、ビープ音が鳴りプリントヘッドが移動し一時停止します。
フィラメントを交換後、本体の【Pirnt】ボタンで再開させます。
その際に設定した30mm分フィラメントが排出されて14レイヤー目から印刷が再開されます。(排出されたフィラメントを巻き込まないように注意が必要です!)

綺麗な1UPコースターが完成しました!
単色出力よりも断然いいですよね!

スクリプトは複数適応する事も可能です

上記ではスクリプトを1つ設定してフィラメントをチェンジするポイントを1ヶ所のみ指定しました。

同様の手順で適応させるスクリプトの数を増やしていけば、単一のモデルデータでもチェンジさせるポイントを増やしこのような造形も出来ます。

上記は私が作ったカラーコーンのデータを使って出力させてみました。
よろしかったら使ってテストしてみて下さい!

参考 Mini Traffic Color ConeThingiverse

単純に停止させる指定レイヤー番号を変えたスクリプトを複数適応させているだけで、先ほどと同様の手順でスクリプトを増やしていくだけなので簡単です!

MEMO
赤フィラメントは次の白フィラメントに色が移りやすいので、フィラメントの排出(Extrude Amount)を先ほどより少し多くしています!

造形物内にモノ(ナットや磁石など)を封入する方法!

今回使ったスクリプト『Pause at height』は上記のようなフィラメントチェンジ以外にも使うことが出来ます。
次に造形物内にナットや磁石など何かモノを封入させる方法をご紹介します。
アイデア次第でいろいろと応用が出来ます。

こちらは先ほどのカラーコーンの底面に磁石を封入出来るようにモデリングしたものとなります。
造形中に上手く一時停止させることが出来れば、造形物内にモノを埋め込むことも簡単に出来ます。

このように磁石のサイズをくり抜いたものをモデリングで作っておきます。
あとは先ほどの手順でスクリプトを使い造形を一時停止させてあげれば綺麗に封入する事が出来ます。

この場合のスクリプトの設定ですがこのようにしました。

先ほどとほぼ同じですが、フィラメントの排出(Extrude Amount)は必要ないので0としています。
また、停止時の作業がしやすいようにプリントヘッドの位置はX:190.0/Y:190.0(造形物の右後ろ)にしました。

上手く造形でき、見事にマグネットを造形物内に封入する事が出来ました!

これは3Dプリンタだから出来る技となり、非常に楽しい使い方ですよね。
冷蔵庫にメモを貼り付けるミニコーンの出来上がりです!

またナットの封入なんかも簡単に出来るので造形物の幅が広がりそうです。

スクリプトの削除を忘れないように

設定したスクリプトは削除するまで残っています。
別の造形物を出力する際はこのままだと適応されてしまうので、必要なければ削除を行って下さい!

最後に!

Curaのスクリプトは大変便利です!
手作業でGコードに追加で記述していくのは大変ですからね。
比較的簡単にフィラメントのチェンジや造形物にモノを封入するといった作業が出来るようになります。

さすがに同一レイヤーでフィラメントの色を変えたりというのは複数台のエクストルーダーやノズル(プリントヘッド)が必要となりますが、高さ方向(Z軸方向)に関してはかなり融通の効くスクリプトで便利に使える場面は多いと思います。

今回はCuraのスクリプト『Pause at height』を使った一例をご紹介しました。
アイデア次第でいろいろと応用ができ面白い造形が出来るかと思います。

1 COMMENT

イトウ

初めまして エンダー3s1Plusで挑戦しようとしています なかなか出来ないです sonic Padを間に入れて動かしているため出来ないでしょうか?

返信する

イトウ へ返信する コメントをキャンセル