前回(レーザー彫刻機を使ったPCB基板作成)では、NEJE Masterを標準アプリで動かしてみました。いくつか制限もあったので、前から気になっていたLaserWebというアプリでレーザー彫刻をやってみました。
使用しているレーザ加工機は以下のタイプ
LaserWebの導入
Electron.js
というNode.jsアプリからデスクトップアプリケーションを作成するフレームワークで作成されている感じで、モダンなインタフェースになっています。
このアプリは、GRBLという3DプリンタやCNCフライス盤などを制御する機構(XYZ軸に沿ってステッピングモーターで、ホットエンドやレーザー、ビットなどを動かして造形する)のインタフェースに準拠しています。
https://github.com/grbl/grbl/wiki
NEJE MasterもGRBL云々の記載があったので、トライしてみたところ、制御できることは確認できました。
まずは、このアプリをGithubから取得します。以下から最新版(LaserWeb.Setup.4.0.996-134.exe
) を取得&インストールします。
https://github.com/LaserWeb/LaserWeb4
https://github.com/LaserWeb/LaserWeb4-Binaries/
https://github.com/LaserWeb/LaserWeb4-Binaries/releases
NEJE Masterのファームウェア更新
入手した機体の時期に依存しますが、制御基板のファームウェアを最新版にしておきます。最低でもver1.1b
以上に上げないと動作しない云々言われた気がします。以下のURLの下のほうにファームウェアを更新するツールがあります。
NEJEの専用アプリをインストールしているなら不要だが、最初からLaserWeb使うならUSBデバイスとして認識させるためにドライバが必要。
http://neje.club/download/driver.exe
http://wiki.nejetool.com/doku.php?id=nejelaser_master
USBでPCと機体を接続した後に、grbl-uploader.exe
を起動すると以下のような画面が表示されます。
機体がPCにUSB接続されているポートを選択(分からん場合はデバイスマネージャなどで)して、一番新しいバージョンのボタンを押すとアップデートされます。終わったようなメッセージが出たらアプリは終了します。
NEJE MasterをLaserWebで制御できるようにする
起動直後
Comms
タブを選択して下図のように接続されているポートとボーレートを選択したら、Connect
ボタンを押します。
ログ出力エリアに以下のようなメッセージがでればOKです。ファームウェアが古いとこの時点で接続エラーになるはずです。
まず、マシンプロファイルでGeneric GRBL machine
を選択して、Applyを選択します。(Settings
- Machine Profile
)これをやらないと、レーザーが正しい出力で動作しないです。
造形エリアのグリッドを150mm角、フィード速度の単位をmm/s
に変更します。(Settings
- Application
)
とりあえず手動で動かしてみます。Control
タブを選択してjog by 10mm
あたりを選択します。そのあとで、Y+
Y-
X+
X-
を適当に押して、機体が動けばとりあえずOKです。
ボタン | 機能 | NEJE Master |
---|---|---|
home all | 設定した原点に移動する | 動作しない? |
run job | レーザー彫刻を開始する | 動作する |
abort job | 彫刻を停止する | 動作する |
set zero | 現在のレーザーポイント位置を原点に設定する | 動作する |
check size | 加工パスを包含する四角形をスキャンする。これで加工対象とパスがズレてないか確認できる。 | 動作する(Gcode生成後) |
Laser Test | 設定した出力で押したときに照射する? | 動作せず |
XY +- | 指定した距離だけ移動する | 動作する |
Goto XY zero | 設定した原点に移動する | 動作する |
おそらくNEJE Masterは完全にGRBLコマンドをフルサポートしているわけではないので、押しても反応しないボタンはいくつかありますが、問題にぶち当たるまでは無視します。
LaserWebの基本的な使い方メモ
https://darklylabs.zendesk.com/hc/en-us/articles/115002901431-LaserWeb-Interface-Overview
まずは簡単な形状をDXFファイルで用意します。以下はFlatCAMのGeometryエディタで5㎜間隔で20mmの直線を3本描画してDXFへエクスポートしてます。sample01.dxf
LaserWebのFiles
タブを選択して、作成したDXFファイルをAdd Document
から選択します。
ビューにロードした形状が表示されます。(3本の縦線が表示)
Gcode欄にDXFファイルをドラッグ&ドロップします。
Gcode欄に選択した加工パス(3本線)に対して、どのようにレーザーを照射させるかを指定します。
デフォルトだと、Laser Cut
が選択される。これは指定パスの上をスキャンするだけの一番シンプルなパターンになり、レーザー強度と速度、回数を指定する。
パラメータ | 機能 |
---|---|
Name | 任意の名前?指定しなくても照射可能 |
Filter Fill | SVGをインポートしたときに塗りごとに指定? |
Filter Stroke | SVGをインポートしたときにストロークごとに指定? |
Laser Power | レーザーの出力[%] |
Passes | パスを何回スキャンするか? |
Cut Rate | スキャンスピード。NEJE Masterの場合、1~10mm/s程度の範囲で正しく動作している感じ。 それ以上のスピードを指定しても10mm/sと変わらない。 |
Use A Axis | 不明 |
Segment | 円弧のディテールかと思われる。0のときは最高精度になる。 |
Laser Cut Inside
およびOutside
は、レーザースポット径とマージンを指定して外周や内周を彫刻する。FlatCAMでオフセットする必要がなくなる。
Laser Fill Path
は、閉じた領域を塗りつぶす方式で、マージンと間隔を指定する。
DXFファイルのパスや彫刻の方法などは複数指定できるので、
- カット位置の彫刻 (Laser Cut)
- PCBパターン (Laser Cut Outside)
- パターン面除去 (Laser Fill Path)
などの使い分けもできそう。
ほかにもDXFの代わりにラスタ画像を使った彫刻も可能。
レーザー照射と問題発生(解決済み)
上記の3本線を彫刻してみます。前回の続きの場合、Controlタブを開いて、Run
を押すと彫刻が開始される。
下図のような結果になる。
フィード時のレーザー出力が強すぎて、移動中も彫刻されてしまう。LaserWebの出力するG-codeの内容が以下になる。
G21 ; Set units to mm
G90 ; Absolute positioning
M4 S0 ; Enable Laser/Spindle (0 power)
;
; Operation: 0
; Type: Laser Cut
; Paths: 3
; Passes: 1
; Cut rate: 5 mm/s
;
; Pass 0
; Pass 0 Path 0
G0 X2.00 Y-10.01
G1 X2.00 Y0.00 S1000.00 F300
; Pass 0 Path 1
G0 X7.01 Y0.00
G1 X7.01 Y-10.01 S1000.00 F300
G1 X7.01 Y-10.01
; Pass 0 Path 2
G0 X12.01 Y-10.01
G1 X12.01 Y0.00 S1000.00 F300
M5 ; Disable Laser/Spindle
G0
がフィードになるが、レーザーOFFのコマンドになるM05
が存在しない。M4 S0
でレーザが100%になったまま最後のM5まで、出力が変わってない。G1
で直線を引く前後に、M05(ON) => G1 => M03(OFF)
となるようにテキストエディタで編集して実行したところ、正しく彫刻してくれた。
G21 ; Set units to mm
G90 ; Absolute positioning
M4 S0 ; Enable Laser/Spindle (0 power)
;
; Operation: 0
; Type: Laser Cut
; Paths: 3
; Passes: 1
; Cut rate: 5 mm/s
;
; Pass 0
; Pass 0 Path 0
M05 ; laser off
G0 X2.00 Y-10.01
M03 ; laser on
G1 X2.00 Y0.00 S1000.00 F300
; Pass 0 Path 1
M05 ; laser off
G0 X7.01 Y0.00
M03 ; laser on
G1 X7.01 Y-10.01 S1000.00 F300
G1 X7.01 Y-10.01
; Pass 0 Path 2
M05 ; laser off
G0 X12.01 Y-10.01
M03 ; laser on
G1 X12.01 Y0.00 S1000.00 F300
M5 ; Disable Laser/Spindle
ちなみにInkscapeのLaserアドオンでNCファイルを出力すると以下になる(座標位置は合わせてないので無視)
G90 ; 絶対座標
G21 ; mm unit
G0 X32.642 Y65.0707 ;seek
M03 ; laser on
G1 F30.000000
G1 X32.642 Y49.2831
M05 ; laser off
G0 X24.3215 Y64.644 ;seek
M03 ; laser on
G1 F30.000000
G1 X24.3215 Y48.8564
M05 ; laser off
G0 X17.0677 Y64.4307 ;seek
M03 ; laser on
G1 F30.000000
G1 X17.0677 Y48.4297
M05 ; laser off
G0 X0.000 Y0.000 ;seek
M05 ; laser off
M02 ; EOF
- Gコードwiki
https://makezine.jp/blog/2017/01/get-to-know-your-cnc-how-to-read-g-code.html
https://reprap.org/wiki/G-code/ja
Gコードの出力パターンを変更する
どうにかならないか、アプリの設定を眺めていたら、それらしき設定がありました。デフォルト状態のGコード設定が以下になる。GCODE END
やTOOL ON
、TOOL OFF
あたりを修正すれば、いけそうな予感。
以下のように変更してみる。
- 加工前にM03
- 加工後にM05
- 終了時にM02
設定変更後、もう一度、加工パスからGコードを生成してみたところ、以下のコードになった。
G21 ; Set units to mm
G90 ; Absolute positioning
;
; Operation: 0
; Type: Laser Cut
; Paths: 3
; Passes: 2
; Cut rate: 5 mm/s
;
; Pass 0
; Pass 0 Path 0
G0 X2.00 Y-10.01
M03
G1 X2.00 Y0.00 S1000.00 F300
M05
; Pass 0 Path 1
G0 X7.01 Y0.00
M03
G1 X7.01 Y-10.01 S1000.00 F300
G1 X7.01 Y-10.01
M05
; Pass 0 Path 2
G0 X12.01 Y-10.01
M03
G1 X12.01 Y0.00 S1000.00 F300
M05
; Pass 1
; Pass 1 Path 0
G0 X2.00 Y-10.01
M03
G1 X2.00 Y0.00 S1000.00 F300
M05
; Pass 1 Path 1
G0 X7.01 Y0.00
M03
G1 X7.01 Y-10.01 S1000.00 F300
G1 X7.01 Y-10.01
M05
; Pass 1 Path 2
G0 X12.01 Y-10.01
M03
G1 X12.01 Y0.00 S1000.00 F300
M05
; End of Program
M02
実際の加工結果が以下になった。
どうにか使えるようになりました!