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

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

3Dプリンタを使うようになり当ブログでもいろいろとご紹介するようになりましたが、スライサー(Curaを使っています)の設定方法などもご紹介できればと思い、これからいろいろと書いていこうと思います。

今回はスライサーソフトUltimaker Curaで便利に使えるレイヤー(高さ)毎に各種パラメーターを変更して出力する方法をご紹介したいと思います。

具体例としては、高さ5mmから10mmの間は長いブリッジ形状となっているので印刷スピードを落としたりFAN回転数を上げたり・・・こんな感じで出力途中でパラメーターを変更出来るため便利に使える場面は多いかと思います。

Curaのスクリプトを使った方法となりますが、新しいフィラメントを購入した際のパラメーター設定などベンチマークを取る際にも便利に使えると思います。

【Ultimaker Cura】高さ(レイヤー)を指定して各種パラメーターの変更を行う方法!

スライサーソフトCuraのスクリプトを使い、造形物の高さ(mm)やレイヤー(レイヤー番号)を指定してノズル温度や印刷速度・トラベル速度・FANの回転数・Flowの調整など各種パラメーターを変えながら出力させてみたいと思います。

具体的にはCuraのスクリプト『Change AtZ(Experimental)』を使って各種パラメーターの調整(変更)を行います。

高さ(mm)やレイヤー番号を指定してパラメーター調整を行う方法となりますが、縦方向(Z軸方向)に対してはかなり融通の聞くパラメーター調整方法だと思います。

ベンチマーク『Temp Tower』で使ってみる

具体的な造形物を例に使ってやってみたいと思います。
3Dプリンタのノズル温度に対するベンチマークを取るものにこのようなTemp Towerと呼ばれるものがあります。
見たことがある方も多いと思いますが、使用するフィラメントの適正なノズル温度を確認出来るベンチマークとなります。

フィラメントにはその材質(PLAやTPU、PETGなど)やメーカーにより最適とされているノズル温度って結構バラツキがあります。

こちらは今回テストで使ったRepRapper製PLAフィラメントとなります。
製品パッケージに記載された適正ノズル温度は190~240℃と結構な範囲があります。
自分の3Dプリンタでの適正なノズル温度を確認する方法の一つとしてこのTemp Towerベンチは役立ちます。

Temp Towerベンチはいろいろと公開されていますが、今回こちらを使ってやってみたいと思います。

参考 Temp Tower PLA,ABS,PETGThingiverse

素材はPLAでノズル温度の設定範囲は190~240℃なので、190~230℃のブロックに別れたものを使ってみました。
各ブロックごと5℃刻みで230℃・225℃・220℃・・・190℃までの計9ブロックに分かれたモデルとなります。

ここで各ブロックごとに造形時のノズル温度を変更する場合、本来Gコードの修正が必要となってきます。
結構面倒な作業となりますが・・・。

しかしこのモデルの場合、モデルデータ以外にもノズル温度が変化するように修正したGコードも提供されています。
このGコードを使えばそのまま3Dプリンタに入れて出力させれば自動的にノズル温度の調整もやってくれます。

少しこのGコードを見てみましょう。(テキストエディッタで開いてみます)
レイヤー番号39(Z 7.800mm)でM104 S225という記載が見られます。
つまりレイヤー39でノズル温度を225℃に変更しているということですね。(各ブロックごとに設定温度が記載されています)

通常の造形モデルから出力したGコードではこのような記載がないため造形途中でノズル温度を変更する場合、Gコードの修正作業が必要となります。
手作業で修正していくのは面倒な作業となります。
そこでCuraには便利なスクリプトというものがあります。

雰囲気が伝わったかと思います。
ノズル温度のベンチマークを取る際には提供されたGコードを使えば何も考える必要なくベンチを取ることが出来ます。(一部対応していない機種もあり、うまく出力されない場合があります!)

ですがこのベンチマークに限らず、特定のレイヤーでその他のパラメーターを変更したい場合もあります。

こちらは先ほどのTemp TowerのGコードを使って出力させたものとなります。
提供されたGコードでは各ブロックごとにノズル温度の調整はしてくれるのですが、常にFANが100%で稼働しているので私の環境では結構スカスカな造形となってしまいました。
おそらく他の設定項目も合っていないようですね?
また途中で造形物がビルドプレートから外れて失敗となり・・・出来ればブリムやラフトを付けたいところです。

このようにノズル温度以外にも他のパラメーターの変更もしたい場合、Curaではスクリプトを追加すれば簡単にレイヤー毎の変更が可能となります。

スクリプトを使いレイヤー(高さ)毎のパラメーター調整をやってみる

それでは上記で提供されたGコードでは上手く出力出来なかったので、Curaのスクリプトを使って造形物のモデルからGコードの修正作業をやってみたいと思います。
同じく先ほどのTemp Towerを例にやっていきます。

まずモデルデータをスライスし、ノズル温度を変更させたい部分のレイヤー番号を事前に調べておきます。
モデルをスライス後、右横のレイヤーバーを動かし各ブロック(ノズル温度を変化させる部分)を事前に調べておきます。

225℃のブロックになる位置はだいたいレイヤー39、220℃のブロックになるのはレイヤー73・・・
こんな感じでレイヤー番号をメモっていきます。

レイヤー番号をメモする事が出来たら、Curaのスクリプトを使ってGコードの修正を実際に行っていきます。

スクリプト『ChangeAtZ(Experimental)』

Curaのスクリプトを選択します。
【拡張子】→【後処理】→【G-codeを修正】へと進みます。(Curaは日本語表記にしています)

【スクリプトを加える】から

ChangeAtZ(Experimental)』を選択します。

ここからレイヤー(レイヤー番号)や高さ(mm)ごとのパラメーターの変更を設定していきます。

各設定項目

設定項目がいろいろとあるので簡単に見ておきます。

Trigger

設定を切り替えるポイントを指定します。

  • Height:高さで指定する
  • Layer No:レイヤー番号で指定する

Change Height or Change Layer

設定を切り替える高さ(mm)かレイヤー番号を指定します。

上記TriggerでHeightを選択した場合はChange Heightとなり高さmmで指定します。
また、TriggerでLayer Noを選択した場合はChange Layerとなりレイヤー番号を指定する形となります。

Apply to

  • Target Layer+Subsequent Layers:設定変更を以降継続して適応する
  • Target Layer Only:指定したレイヤー(or 高さ)にだけ変更を適応し、次のレイヤーからは元の数値に戻す

Change Speed

プリント速度トラベル速度の両方を指定値(%)に変更します。

Cahnge Print Speed

プリント速度のみを指定値(%)に変更します。

Change Flow Rate

フィラメントの吐出し量を調整します。

Change Flow Rate1 2

エクストルーダーが2つある場合、個別に指定する事が出来ます。
私が使っているEnder3 V2はエクストルーダーは1台なのでChange Flow Rate1で変更しても上記Change Flow Rateで変更しても結果は同じとなります。

Change Bed Temp

ビルドプレートの温度を変更します。

Change Extruder 1(2) Temp

プリント温度(ノズル温度)を変更します。
同様にエクストルーダーを指定できます(通常は1のみ使用)

Change Fan Speed

造形物冷却用FANの回転数を変更します。(%で指定)

MEMO
Curaのバージョンアップにより設定項目やUI等変更さてれている場合があります!
2021年9月現在での設定項目が上記となります!

設定してみる

各設定項目が分かったところで実際に設定していきたいと思います。
先ほどメモしたレイヤー番号をもとに1ブロックずつ設定をしていきます。

まずは1ブロック目ですが、レイヤー番号39からノズル温度を225℃に変更したいのでこのようにします。
これでレイヤー39以降はノズル温度が225℃に設定されます。

MEMO
今回はテストなのでノズル温度以外は変更していません。

同様に【スクリプトを加える】で設定項目を増やしていきます。
次のブロックではレイヤー番号73以降はノズル温度220℃、次にレイヤー番号106以降は215℃・・・
このようにスクリプトを増やしていき9ブロック分設定していきます。
スクリプトは合計8個作られました。

スクリプトの設定が完了しメイン画面に戻るとこのように表示されています。
現在適応されているスクリプトの数が確認できます。
あとは通常通りスライスすればGコードにスクリプトで設定したコードが追加されます。
以上で完了です!

開始温度はこのTemp Towerの場合、230℃なのでメインの設定画面で指定しておきます。
ブリムも一応付けておき、私の環境ではFANはカスタマイズしているので常時70%に設定しました。
これで通常通りスライスしGコードを生成すれば、指定レイヤーでノズル温度が変化し出力する事が出来ます。

今回はTemp Towerを例にスクリプトを使い手動でパラメーター(ノズル温度)の調整を行いました。
そして今回はノズル温度のみの変更でしたが、先述のようにレイヤー毎にその他項目の変更も可能なので便利に使える場面は多いかと思います。

例えばこのような長いブリッジ形状の造形の場合ですが左右の支柱部分は通常プリントしていき、ブリッジ部分はFAN回転数を上げプリントスピードを下げて対応・・・なんていう使い方も出来ます。

設定したスクリプトの削除を忘れないように!

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

最後に!

今回はCuraのスクリプトの1つである『ChangeAtZ(Experimental) 』を使いレイヤー(高さ)毎のパラメーターの変更(調整)を行ってみました。

Curaで使えるスクリプトは他にもいろいろとあります。
例えばフィラメントを途中で交換し多色出力なんかも出来たりします!

こちらもまた詳しくご紹介できればと思います。

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

Curaのスクリプトは便利な機能なのでいろいろと応用し使える場面は多いと思います!

コメントを残す