Ultimaker Cura / Modify G-Code ChangeAtZ を使ってみる / より簡単に印刷条件を見つけ出す方法

3Dプリンター

使ったことのない新しいフィラメントを購入したときなどに、適切な印刷条件(印刷温度等)を見つけ出すため、複数の条件を一度の印刷で可能にする方法のご紹介です。使うのはChangeAtZという拡張機能です。今日現在まだベータ版であるバージョン4.13のCuraから、ChangeAtZのバージョンも5.3.0に上がりましたので、これを使って説明したいと思います。

概要

ChangeAtZは印刷の条件を高さ方向の範囲で変更することが出来ます。例えば、テーブルから上方10mmから20mmまでの範囲は、印刷温度が200℃、20mmより上は210℃といった感じです。レイヤー数で高さを指定することも出来ます。また、印刷温度だけでなく、ベッドの温度、印刷速度、ファンの速度などいろんな項目を変更できます。一度の印刷で複数の条件を試せるので、適切な条件探しに重宝します。

モデルの準備

ChangeAtZを使って条件を見定めるためには、同じ形状が、変更したい条件の数だけ積み重なったモデルを準備する必要があります。自身でモデリングするのも良いですし、Thingiverse等のサイトからダウンロードすることもでます。この条件選定用のモデルのことを “Temp Tower” とか “temperature calibration tower” と呼ぶようですので、例えば、Thingiverse のサイトで “temp tower” などで検索するといろんなモデルがヒットします。

設定方法

設定ダイアログの出し方

メインメニューを [拡張子] > [後処理] > [G-codeを修正]と進みます。

[スクリプトを加える] をクリックします。

追加したいスクリプトをクリックします。

ChangeAtZが追加され、設定できる項目が表示されます。

設定項目

設定項目を簡単に説明しておきます。

[Enabled]
チェックを入れると有効になり、設定に従いG-codeが追加されます。チェックを外すと何も変更されません。

[Trigger]
条件を変更するきっかけをモデルの高さ(Height)にするか、レイヤーの数(Layer No.)にするのかを選択します。

[Change Height]
[Trigger] を “Height” にしている場合に表示される項目です。条件を変更する高さをmmで指定します。

[Change Layer]
[Trigger] を “Layer No.” にしている場合に表示される項目です。条件を変更する高さをレイヤー数で指定します。

[Apply To]
[Change Height] もしくは、[Change Layer] で設定した層とそれ以降の層を条件変更の対象にする場合は、”Target Layer + Subsequent Layer” を選択し、設定した層の一層のみ条件を変更する場合は、”Target Layer Only” を選択します。

[Output to Display]
チェックを入れると変更内容がLCDに表示されます。対応しているプリンターに限ります。

[Change Speed]
印刷速度と移動速度の両方を変更させます。%で指定します。変更する層に達した直後にM220で指令しますので、変更時の速度に対する割合です。すなわち、初回の変更はデフォルトの速度に対する割合ですが、二回目以降の変更は一つ前に変更した速度に対する割合です。

[Change Print Speed]
印刷速度のみを変更できます。%で指定します。こちらは、M220による制御ではなく、F値を直接書き換えています。初回、二回目以降に関わらずすべてデフォルトに対する割合です。

[Change Flow Rate]
フィラメントの押出し量を設定します。%で指定します。

[Change Flow Rate 1]
エクストルーダーが2個ある場合の1個目のフィラメントの押出し量を設定します。%で指定します。

[Change Flow Rate 2]
エクストルーダーが2個ある場合の2個目のフィラメントの押出し量を設定します。%で指定します。

[Change Bed Temp]
ビルドプレートの設定温度を変更します。設定単位は℃です。

[Change Build Volume Temperature]
バージョン5.3.0から新たに加わった設定項目です。印刷ブース内の温度を変更できます。 設定単位は℃ です。対応したプリンターが必要です。

[Change Extruder 1 Temp]
一つ目のエクストルーダーの印刷温度を設定します。設定単位は℃です。

[Change Extruder 2 Temp]
二つ目のエクストルーダーの印刷温度を設定します。設定単位は℃です。

[Change Fan Speed]
ノズル冷却用のファンの速度を設定します。%で指定します。デフォルト値に対する割合です。

[Change Retraction]
フィラメントの引き戻しに関する設定を変更する場合にチェックを入れます。チェックを入れると次の三つの設定項目が追加表示されます。
 [Retract Style]
 ”Linear” と “Firmware” から選択できます。違いについては勉強不足でよく分かりません。
 [Change Retract Feed Rate]
 引き戻し時のフィラメントの送り速度を設定します。単位はmm/sです。
 [Change Retract Length]
 引き戻し量を設定します。単位はmmです。

設定例

変更項目はたくさんありますが、今回は印刷温度の変更のみ行う単純な例とします。
メーカーの推奨温度が190~220℃のフィラメントを10℃ごとの変更でテストする場合で説明します。

220℃、210℃、200℃、190℃ の4段のモデルを作ることになります。高さ7mmごとに変更することにします。制作したモデルはこんな感じ。

一番下の段は変更前のデフォルト温度で印刷しますので、通常の印刷のようにプリント設定のダイアログで、220℃を設定します。

残りの3段分は ChangeAtZ を使いますので、三つ追加して各段の値を設定していきます。[スクリプトを加える] をクリックすることで複数個追加できます。

ここで注意が必要なのは、設定の順番です。印刷で変更される順番に上から並べます。今回の例では最初の変更は220℃から210℃ですので、210℃の設定を一番上の行に持ってくる必要があります。これを間違えると望み通りの温度設定となりません。

行を入れ替えるには、スクリプト横のボタンで上下に移動させます。

では、まず1行目(モデルでは二段目)の設定です。自分でモデリングしていて高さの情報がはっきり分かりますので、変更のトリガーは高さ (Height) とします。各段の高さが7mmですので、変更する高さは7.2mm(レイヤー高さが0.2mmの場合)です。次の変更まですべてのレイヤーに適応させますので、[Apply To] は、”Target Layer + Subsequent Layer” とします。エクストルーダーが1個の場合は、[Change Extruder 1 Temp] にチェックを入れて、[Extruder 1 Temp] を210℃とします。[Enabled] にチェックが入っていることも確認しておきます。

同様に二行目で200℃の設定をします。高さは14.2mmです。

三行目も同様です。190℃と21.2mmを設定します。

ここまで設定できれば、[閉める] でダイアログを閉じ、通常通りスライスして印刷に進みます。
印刷結果のオーバーハング、ブリッジ、糸引き、フィラメントの過不足、側面の平滑度、文字の解像度などをよく観察し、どの温度が適正か判断します。

注意点

一度スクリプトを追加するとCuraを再起動しても追加されたままとなりますので、意図しないスクリプトが追加される可能性があります。ただ、何らかのスクリプトを追加している場合は、スライスボタンの横にアイコンが現れますので、おそらく気づくと思われます。マウスカーソルを乗せるとその内容が表示されます。[Enabled] のチェックが外れて無効になっていてもこのアイコンは表示されます。また、このアイコンをクリックすることによりダイレクトにスクリプトの設定ダイアログを開くことが出来ます。

スクリプトを削除するには、追加しているスクリプト横の×ボタンをクリックします。

どのタイミングで変更されているか

出来上がったG-codeのどこにどんな形で追加されているのかを一応見ておきます。設定例の初回変更部分を見てみます。レイヤー高さが0.2mmで、変更するレイヤーが7.2mmの層ですので、36層目で変更があるはずです。

レイヤーが変わった直後に温度変更のコードが入っていました。G-code上では、1層目がLayer:0ですので、36層はLayer:35です。今回の例では、10℃の温度差がありますので、36層目の印刷開始からしばらくは、前層の温度からの過渡期となるようです。

温度の高い方が下段にある理由は?

Thingiverse等に置いてある Temp Tower を見てみると、そのすべてが温度の高い方が下方に位置しています。これは何故なのでしょう。一度最高温度まで上げてから低い温度へ変化させるより、低い温度から印刷開始して徐々に高い方へ変更していく方が、プレヒートの時間が短くなって良いじゃないかとか、温度を変更する時も、ファンがあるにしても自然に下がるのを待つよりも、ヒーターで温度を上げる方が早いんじゃないのとか思ってちょっと気になってしまいました。あまりじっくりと調べていませんが、納得のいく理由に行き着いていません。初期層の密着性の問題とかもあるのかもしれません。

2022/01/16 追記
ノズルの温度が下がるのと上がるのでは、どちらが早いのか検証してみました。私の勝手なイメージと全く逆で、圧倒的に下がる方が早かったです。例えば、220℃から230℃まで上がるのに、43秒かかったのに対し、230℃から220℃に下がるのは12秒程度でした。ということで、モデルを作る場合は、温度の高い方が下が正解のような気がします。大変失礼いたしました。

あとがき

さて、今回はModify G-Code の中の ChangeAtZ を使ってみました。1回の印刷で複数の条件を試せますので、良い条件を見つけるための時間節約に役に立ってくれそうです。いろんなパターンのモデルをあらかじめ作っておくと、より便利に使えそうです。

コメント

スポンサーリンク