LinuxCNCでのラスター加工について、最初はそれ用のNCコードを作ればいいという程度に考えていましたが、そう簡単ではなさそうです。 図の様にA地点からB地点、およびC地点からD地点までレーザー照射する場合、普通にNCコードで制御すると基本的に各地点で一旦停止します。刃物で切削するならこれで問題ないのですがレーザーの場合は速度を落とす部分では余分にレーザーを当ててしまう事になります。
ラスター動作では下図の様に、レーザーヘッドを一定の速度で移動しながら所定の位置でレーザーをON/OFFするのが理想です。
たぶんNCコードだけではこれを実現できないと思います。 >どうなんでしょう?プロの方。 LinuxCNCでレーザーのラスター加工を検索してもあまり多くの例が見つかりませんでした(しかも全部英語なんです)。それでも比較的詳しく書かれた例が次のサイトでした。 Rastering With a Laser 主にHackLab Trontというところのマシンを例に説明されています。 インストール方法は後で説明するとして基本的な使い方は次の通りです。
- 元画像ファイルをGrasterというソフト(Rubyで書かれている)で処理すると次の3つのファイルが得られます。
- 元画像ファイル名.raster.ngc
- 元画像ファイル名.raster.gmask
- 元画像ファイル名.cut.ngc
- LinuxCNCを立ち上げ、’元画像ファイル名.raster.ngc’を読ませて実行します。 このファイルにはラスタースキャンの動作が書かれています。具体的にはマーキングしたい画像よりも左右(X軸方向)に少し広い範囲で往復しながらY軸を少しずつ動かしていくNCコードです。 また先頭部分には’M101’というNCコードが書かれています。
- NCコードM101の行を実行した時点で’M101’というファイル名(拡張子も何も無くこの通りのファイル名)に書かれた外部プログラムを実行します。 (M101外部プログラムのファイルはLinuxCNCがNCコードを読みに行く際のデフォルトディレクトリに置いておきます。特に変更していなければ~/linuxcnc/nc_filesだと思います。)
- M101プログラムはPythonで書かれたスクリプトです。この中から自動的に’元画像ファイル名.raster.gmask’を読み込みます。
- ‘元画像ファイル名.raster.gmask’にはレーザーをON/OFFするタイミングが書かれており、LinuxCNCのStreamerという機能に読み込ませます。 Streamerは加工機が実行中、リアルタイムにデータを取りだせるメモリーみたいなもの(私の勝手な解釈)で、Streamerから取り出したデータをどうあつかうかはhal(設定ファイルの一つ)に記載しておきます。
- 後はラスタースキャン動作をしながらStreamerからレーザーをON/OFFするタイミングを取り出し、これに従って画像を描いていきます。
- ‘元画像ファイル名.cut.ngc’は画像の外形を囲んだシンプルなNCファイルなので、描画した画像を切り離す場合等に必要に応じて使用します。
大体の動作としてはこんな感じです。 面倒だったのはインストール方法で、このいきさつを書くと長くなりそうなのでページを改めて書こうと思います。 下の物を描画してみました。






