先日ブログにも記載したG-coordinatorというソフトウェアをコツコツみています。ちょっとだけ自分の環境でつまづいたので、誰かのお役に立てればと思い記録をしていきます。
G-coordinator / Ender 3 S1 Pro / Creality Sonic Pad
前提
今回はG-coordinatorのexampleの中に入っているwave_tray.pyを、Ender-3 S1 Proを利用して、1mmノズルで出力することを目指します。他のプリンターやノズルサイズだと起こらないこともあります。
Move exceeds maximum extrusion
1mmノズルにしたG-codeを3Dプリンターに送信した際にKlipper(Creality Sonic Pad)から下記のようなエラーが出されました。
"code":"key112", "msg": "Move exceeds maximum extrusion (0.785mm^2 vs 0.640mm^2)
See the 'max_extrude_cross_section' config option for details"
このエラーは移動の試行が設定で定義された最大押出し制限を超えていることを示しています。
エラーメッセージを見ると、現在の移動には0.785平方ミリメートルの押出しが必要であり、最大許容押出し量は0.640平方ミリメートルに設定されています。メッセージでは、詳細については「max_extrude_cross_section」の設定オプションを確認するように示唆しています。
この問題を解決するために、Klipperの設定ファイルであるprinter.cfgまたはconfig.cfgファイル(Klipperの設定によって異なる場合があります)内の「max_extrude_cross_section」パラメータを調整することで、最大押出し制限を拡大することができます。
とネットでは出てきたのですが、私のCreality Sonic Padのprinter.cfgには「max_extrude_cross_section」という項目が見つからず、追加するべきか、悩みました。
結局「nozzle_diameter」という項目を1.000にすることでエラーが解消されました。どこかで積算されてるんですかね。。?(推測)
十分な量のフィラメントが出てこない
エラーは出なくなったものの、印刷が始まり、ノズルはG-code通りに動いているように見えるのですが、肝心のフィラメントが出てきません。3Dプリンターをよく観察すると、どうやらextrudeされるときに動くギアが動いていないようでした。
Prusa Slicerで出力されるG-codeと見比べつつ、Twitterなどを参照し、M83コマンドをsrc->settings->start_gcode.txtに記載することで解決ができました!
M83コマンドは押出し(フィラメントのフィード)の距離を相対的に設定します。これは3Dプリンティングで非常に重要な操作で、プリンターがどれだけのフィラメントを押出するかを制御します。相対的に設定されているということは、各新たな押出し命令は前の位置からの変化を意味します。
あとがき
久々にデバッグっぽいことをして非常に楽しい日曜日が送れました。数学が苦手でプログラムを見るのは時間がかかりそうですが、綺麗に造形できた時の喜びはひとしおなので頑張って読み解いていきたいと思います!
コメント