※ 当ページには【広告/PR】を含む場合があります。
2023/10/25
3Dプリンター用のgcodeビューアーは有償・無償を含めて数多存在してします。有名どころのGcodeビューアーだとフリープランにインポート数を限定するなど色々と機能制限もついているのが難点です。また、gcodeの中身の編集機能も含むものもあり、人によっては蛇足に感じます。ブラウザで動作するオンライン型のgcodeビューアーも見かけます。ブラウザで動作するWebGLベースの3D表示をする場合、処理落ちしてしまうなどマシーンスペックに左右される要素もあり、少し重いgcodeでも中身を満足に見れないのはストレスです。ユーザー個々に求めているgcodeビューアーは異なるとは思いますが、個人的には「軽量に動作」・「積層レイヤーをシンプルに確認」するだけで十分、という考えを持っています。最近、情報を仕入れていく過程で、「yagv(Yet Another Gcode Viewer)」という、かなりマイナーなpythonベースのG-codeビューアー知りました。このビューアーができることは、「gcodeの中身を見る」だけですが、ショボいスペックで古ぼけたPCを使っている著者には、まさに欲しかったG-codeビューアーになっています。今回はお試し紹介だけになりますが、ダイジェスト的にyagvの使い方をまとめていきます。
Ender-3 【Creality】プラットフォームシート 235*235mm 【TINMORRY】PLA フィラメント ブラック 1.75mm 1Kg yagvのインストール
yagvを使う上で、必然的にpython3系の環境が整っていることが前提条件です。LinuxでPythonの開発環境を構築するやり方は以下の記事でまとめていたので、必要があれば一読ください。DebianからでもLinuxbrew(Homobrew on Linux)でサクッとpyenvを導入してPython環境を整えるLinuxへpython開発環境を整える上でオススメの「LinuxBrew(HomeBrew on Linux)」を使ったpyenvの導入方法を紹介します。
まずは、yagvのGitHubプロジェクトを適当な場所にクローンして、yagvのフォルダで作業しましょう。次に、yagvを動かすのに必要なpythonライブラリをセットアップしましょう。こちらはpython3の実行環境が準備出来ていたらOKです。ちなみに、著者の確認時点でのPythonのバージョンは以下です。yagvのセットアップとしては、setup.py
を走らせるだけでOKです。インストール作業で異常がなければ、yagvが動くようになっていると思います。試しに、同梱されているサンプルを開いてみましょう。サンプルのgcodeファイルが読み込まれて、GUIが開けばインストール完了です。ちなみに、操作はOpenSCADと同じ形式で、マウス左ボタン+ドラッグでビュー回転、マウス中ボタン+ドラッグで積層レイヤーの表示変更、スクロールで表示ズーム、マウス右ボタン+ドラッグで表示パン移動です。また、gcodeファイルの読み込み再更新は「Ctrlキー + Rキー」です。できることは以上ですが、これでG-codeビューアーってこれで十分なのでは無いかと思います。
Ender-3 【Creality】プラットフォームシート 235*235mm 【TINMORRY】PLA フィラメント ブラック 1.75mm 1Kg yagv〜応用例
インストールしただけでは、どのようなソフトウェアなのかイメージを掴みにくいと思いますので、「yagv」を使ったgcodeの中身のチェックでどう役に立ったのか一例で紹介しておきましょう。例えば。G-coordinatorでパラメトリックに生成した変形円筒ジャイロイドの印刷したい場合、ようなパスも間隙も多い構造なものでは、G-coordinatorで確認するのは難しいケースになります。あまり中身を確認しないまま、このgcodeファイルをそのまま出力させてみた結果...円筒ジャイロイドを作成するつもりが、「ジャイロイド・ザ・モジャッティ」になってしまいました。この場合、一層ごとの間隔がスカスカだったのが原因として考えられます。このように、印刷するまえにG-codeビューアーであらかじめ印刷中の動きを把握することは非常に重要になってきます。とはいえ、印刷したgcodeファイルが比較的大きなサイズだったため、手元のパソコン上で他に試したG-codeビューアーでは動作が激重(フリーズ)で確認すらままならない、という事情もあり、一か八かでそのまま印刷を試した結果がこれです。ということでここから本題のyagvから、この失敗してしまったgcodeファイルを解析してみます。以下の図のようにあるレイヤーの次のレイヤーの様子を示しています。見ておわかりのように、レイヤーごとに全く接続性のない状態になってしまっています。もう一つ、レイヤー間の接続性だけでなく、レイヤーの厚みが正しく算出されているかも確認が必要です。失敗しているgcodeモデルでは、高さ80mmになっていますが、yagvで確認すると、トータル160レイヤーで印刷していることが分かります。つまり、一層当たり・0.5mm
で印刷していることになります。当初は一層当たり0.2mm
を狙っていたにも関わらず、実際には0.5mm
もギャップを空けてしまっていたのでした。そりゃモジャモジャになるはずです。この場合、G-coordinatorのpythonコードにバグがある可能性が高いです。そこで、レイヤーごとの接続がシームレスになるように、z方向のもっとキメの細かい分割数で再びパラメーターを調整し、pythonコードの実装に間違いがないかじっくり見直します。静止図ではわかりにくいですが、この場合、z軸方向の刻みを元のgcodeの4倍増やしてみると、レイヤー間で良好な接続が得られいるようです。また、一層ごとの厚みが(80mm/400レイヤー=)0.2mm
となるように、レイヤーのz座標も調整しています。ということで、yagvでのgcodeファイルをじっくり確認ができたら、印刷をやってみましょう。今回はきちんとモジャらずに出力結果にも反映されているようで一安心です。
Ender-3 【Creality】プラットフォームシート 235*235mm 【TINMORRY】PLA フィラメント ブラック 1.75mm 1Kg まとめ
以上、今回は、低スペックなPCでも動作する(はず)軽量でシンプルなG-codeビューアー・「yagv」を取り挙げてみました。個人的に10年以上前のデスクトップパソコンでも、かなり重めのgcodeの印刷エミュレーションは少し諦めていたのですが、思いの外サクサクとレイヤーごとの断面印刷パスが確認できてとても満足です。現状のG-codeビューアーに不満を感じていらっしゃる方は、一度yagvを利用されてみてはいかがでしょうか。