CNCjsマクロで使えるコマンド
- Gコード(G0、G1・・・)
- 制御基板専用のコマンド(grblコマンド $H、$X・・・)
- 変数
- コメント
- 一部JavaScript(算術演算子、Math等)
変数
CNCjsでは自分で定義する変数と予め定義されているシステム変数があります。
自分で定義する変数は%〇〇〇〇と%をつけて表記します
%SAFE_HEIGHT = -10 ;SAFE_HEIGHTを-10として定義
自分で定義した変数を呼び出すときは[]で囲みます。
G53 G0 Z[SAFE_HEIGHT] ;機械座標系 Z座標 SAFE_HEIGHT まで移動
実際にマクロを実行するときには下記のように置き換えられます。
G53 G0 Z-10
システム変数
制御基板の処理が完了するまで待つ(特殊なコマンド)
%wait
このコマンドを入れるとこの前までに行ったコマンドを実行し終えるまで待機します。
バウンディングボックス(実行予定のNCファイル加工範囲の最大・最小座標値)
xmin , xmax , ymin , ymax , zmin , zmax
現在の機械座標
mposx , mposy , mposz , mposa , mposb , mposc
現在のワーク座標
posx , posy , posz , posa , posb , posc
モーダルグループ(現在有効となっているGコード)
modal.motion , modal.wcs , modal.plane , modal.units , modal.distance , modal.feedrate , modal.program , modal.spindle , modal.coolant
これは前にスピンドルオン(M3)が呼ばれていれば、modal.spindleにはM3が格納されており、M3が呼ばれていなければスピンドルオフのM5が格納されている。
一部JavaScript
%が書かれている行や、[]のカッコの中はJavaScriptの構文で記述できます。
例えば以下のように使えます
%work_z_dimension = (10 + 20) * 2
%cutting_depth = work_z_dimension / 5
%cutting_feedrate = 300
G1 Z[-1 * cutting_depth] F[cutting_feedrate]
またMath.abs()等の組み込み関数も使うことができます。
この辺の関数が使えることは公式の説明には載っていないのでどこまで使えるかは不明です。