軽量な3Dプリンター用のG-codeビューアー・『yagv』でgcodeの中身をサクサクな快適解析


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



3Dプリンター用のgcodeビューアーは有償・無償を含めて数多存在してします。
有名どころのGcodeビューアーだとフリープランにインポート数を限定するなど色々と機能制限もついているのが難点です。
また、gcodeの中身の編集機能も含むものもあり、人によっては蛇足に感じます。
ブラウザで動作するオンライン型のgcodeビューアーも見かけます。
ブラウザで動作するWebGLベースの3D表示をする場合、処理落ちしてしまうなどマシーンスペックに左右される要素もあり、少し重いgcodeでも中身を満足に見れないのはストレスです。
ユーザー個々に求めているgcodeビューアーは異なるとは思いますが、個人的には「軽量に動作」・「積層レイヤーをシンプルに確認」するだけで十分、という考えを持っています。
最近、情報を仕入れていく過程で、
「yagv(Yet Another Gcode Viewer)」 という、かなりマイナーなpythonベースのG-codeビューアー知りました。
このビューアーができることは、
「gcodeの中身を見る」 だけですが、ショボいスペックで古ぼけたPCを使っている著者には、まさに欲しかったG-codeビューアーになっています。
今回はお試し紹介だけになりますが、ダイジェスト的に
yagv の使い方をまとめていきます。


yagvのインストール



yagvを使う上で、必然的にpython3系の環境が整っていることが前提条件です。
LinuxでPythonの開発環境を構築するやり方は以下の記事でまとめていたので、必要があれば一読ください。

合同会社タコスキングダム|蛸壺の技術ブログ
DebianからでもLinuxbrew(Homobrew on Linux)でサクッとpyenvを導入してPython環境を整える

Linuxへpython開発環境を整える上でオススメの「LinuxBrew(HomeBrew on Linux)」を使ったpyenvの導入方法を紹介します。



まずは、
yagvのGitHubプロジェクト を適当な場所にクローンして、yagvのフォルダで作業しましょう。

            $ git clone https://github.com/Spiritdude/yagv.git
$ cd yagv

        

次に、yagvを動かすのに必要なpythonライブラリをセットアップしましょう。
こちらはpython3の実行環境が準備出来ていたらOKです。
ちなみに、著者の確認時点でのPythonのバージョンは以下です。

            $ python --version
Python 3.8.17

        

yagvのセットアップとしては、
setup.py を走らせるだけでOKです。

            $ 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 となるように、レイヤーのz座標も調整しています。
632x514
合同会社タコスキングダム|蛸壺の技術ブログ


ということで、yagvでのgcodeファイルをじっくり確認ができたら、印刷をやってみましょう。
423x429
合同会社タコスキングダム|蛸壺の技術ブログ


今回はきちんとモジャらずに出力結果にも反映されているようで一安心です。


まとめ



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