軽量な3Dプリンター用のG-codeビューアー・『yagv』でgcodeの中身をサクサクな快適解析
※ 当ページには【広告/PR】を含む場合があります。
2023/10/25

3Dプリンター用のgcodeビューアーは有償・無償を含めて数多存在してします。
有名どころのGcodeビューアーだとフリープランにインポート数を限定するなど色々と機能制限もついているのが難点です。
また、gcodeの中身の編集機能も含むものもあり、人によっては蛇足に感じます。
ブラウザで動作するオンライン型のgcodeビューアーも見かけます。
ブラウザで動作するWebGLベースの3D表示をする場合、処理落ちしてしまうなどマシーンスペックに左右される要素もあり、少し重いgcodeでも中身を満足に見れないのはストレスです。
ユーザー個々に求めているgcodeビューアーは異なるとは思いますが、個人的には「軽量に動作」・「積層レイヤーをシンプルに確認」するだけで十分、という考えを持っています。
最近、情報を仕入れていく過程で、
このビューアーができることは、
今回はお試し紹介だけになりますが、ダイジェスト的に
yagvのインストール
yagvを使う上で、必然的にpython3系の環境が整っていることが前提条件です。
LinuxでPythonの開発環境を構築するやり方は以下の記事でまとめていたので、必要があれば一読ください。
まずは、
$ git clone https://github.com/Spiritdude/yagv.git
$ cd yagv
次に、yagvを動かすのに必要なpythonライブラリをセットアップしましょう。
こちらはpython3の実行環境が準備出来ていたらOKです。
ちなみに、著者の確認時点でのPythonのバージョンは以下です。
$ python --version
Python 3.8.17
yagvのセットアップとしては、
setup.py
$ python setup.py install
#...以下必要なライブラリがインストールされる
インストール作業で異常がなければ、yagvが動くようになっていると思います。
試しに、同梱されているサンプルを開いてみましょう。
$ ./yagv data/hana_swimsuit_fv_solid_v1.gcode
682x485

サンプルのgcodeファイルが読み込まれて、GUIが開けばインストール完了です。
ちなみに、操作はOpenSCADと同じ形式で、マウス左ボタン+ドラッグでビュー回転、マウス中ボタン+ドラッグで積層レイヤーの表示変更、スクロールで表示ズーム、マウス右ボタン+ドラッグで表示パン移動です。
また、gcodeファイルの読み込み再更新は「Ctrlキー + Rキー」です。
できることは以上ですが、これでG-codeビューアーってこれで十分なのでは無いかと思います。
yagv〜応用例
インストールしただけでは、どのようなソフトウェアなのかイメージを掴みにくいと思いますので、「yagv」を使ったgcodeの中身のチェックでどう役に立ったのか一例で紹介しておきましょう。
例えば。G-coordinatorでパラメトリックに生成した変形円筒ジャイロイドの印刷したい場合、
540x513

ようなパスも間隙も多い構造なものでは、G-coordinatorで確認するのは難しいケースになります。
あまり中身を確認しないまま、このgcodeファイルをそのまま出力させてみた結果...
339x329

円筒ジャイロイドを作成するつもりが、
この場合、一層ごとの間隔がスカスカだったのが原因として考えられます。
このように、印刷するまえにG-codeビューアーであらかじめ印刷中の動きを把握することは非常に重要になってきます。
とはいえ、印刷したgcodeファイルが比較的大きなサイズだったため、手元のパソコン上で他に試したG-codeビューアーでは動作が激重(フリーズ)で確認すらままならない、という事情もあり、一か八かでそのまま印刷を試した結果がこれです。
ということでここから本題のyagvから、この失敗してしまったgcodeファイルを解析してみます。
以下の図のようにあるレイヤーの次のレイヤーの様子を示しています。
621x651

見ておわかりのように、レイヤーごとに全く接続性のない状態になってしまっています。
もう一つ、レイヤー間の接続性だけでなく、レイヤーの厚みが正しく算出されているかも確認が必要です。
失敗しているgcodeモデルでは、高さ80mmになっていますが、yagvで確認すると、トータル160レイヤーで印刷していることが分かります。
635x547

つまり、一層当たり・
0.5mm
当初は一層当たり
0.2mm
0.5mm
そりゃモジャモジャになるはずです。
この場合、G-coordinatorのpythonコードにバグがある可能性が高いです。
そこで、レイヤーごとの接続がシームレスになるように、z方向のもっとキメの細かい分割数で再びパラメーターを調整し、pythonコードの実装に間違いがないかじっくり見直します。
687x362

静止図ではわかりにくいですが、この場合、z軸方向の刻みを元のgcodeの4倍増やしてみると、レイヤー間で良好な接続が得られいるようです。
また、一層ごとの厚みが
(80mm/400レイヤー=)0.2mm
632x514

ということで、yagvでのgcodeファイルをじっくり確認ができたら、印刷をやってみましょう。
423x429

今回はきちんとモジャらずに出力結果にも反映されているようで一安心です。
まとめ
以上、今回は、低スペックなPCでも動作する(はず)軽量でシンプルなG-codeビューアー・
個人的に10年以上前のデスクトップパソコンでも、かなり重めのgcodeの印刷エミュレーションは少し諦めていたのですが、思いの外サクサクとレイヤーごとの断面印刷パスが確認できてとても満足です。
現状のG-codeビューアーに不満を感じていらっしゃる方は、一度yagvを利用されてみてはいかがでしょうか。