フライス盤自作CNC化
フリーのCNC用ソフトウェア
HeeksCNCの使い方の健忘録
その2
Pocket切削のNCデータの確認と最適化。
その1からの続きです。とりあえずNCデータが生成されました。"Result of Cut Operation"の属性の"visble"のチェックを外すとシェーデングされた図形が消えてNCデータのワイヤフレームが見やすくなります。

再度、"View Rotate"モードで視点を回してパスを確認してみます。水平の位置に視点を変更するとZ軸方向の様子がよくわかります。一見して、中心から上に伸びている部分は無駄ですね。

ビューアで見るために、NCデータをセーブしておきます。"Machining"から"Save NC File"をクリックします。

適当に名前をつけてセーブします。
とりあえず、エディタでNCファイルを見てみます。基本的にG00(移動)とG01(直線補間)で座標指定されているようです。G02/03(円弧)は使われていないようです。

HeeksCNCの出力したパスを確認するため、ビューアのNCVCをWEBからダウンロードして起動します。

セーブしたNCファイルをNCVCに読込みます。

ファイルを読み込むと左側にGコードが表示され、右側にパスが表示されます。これを見るとZ軸が異常です。

再度、エディタで確認します。Z軸の値を見ると、少数点の付いている行と付いていな行があります。Gコードの座標の取り扱いは種類があり、従来型と電卓型という違いがあります。HeeksCNCは電卓型(座標の数値に小数点があってもなくても同じ扱い)で出力し、NCVCは従来型(小数点がない場合1/1000を掛ける)で読込みんでいるようです。設定で取り扱いを変更できるはずですが〜

Gコードを解析しZ軸の値に強制的に少数点を付けるプログラムを作成しました。後で、GコードからガレージのCNCの内部コードに変換するプログラムを作る予定なので、Gコードを解析するプログラムは無駄にはなりません。変換プログラムの出力は以下のようになります。

早速、ファイルに落として。

今度は、正常に表示されました。その後、トレースでパスを表示さると半分以上、同じ所を通っていました。HeeksCNCのPocket設定のパラメータを適当に入れたため、無駄なパスが多く生成されています。凹部の深さは5ですが、Pocket設定でstart heightを10、final depthを0、step downを2に設定したので、10mmを2mmで5回切削しその内、後半の2回は無意味で同じパスだったことがわかります。

無駄なパスがなるべく発生しないパラメータを考えます。全体の高さは10、切削深さは5なのでstart heightを10に、final depthを5にします。step downを2.5に設定すると、2回で切削できるはずです。逃げを1にするために、clearance heightを11に、rapid safety spaceを1に設定してみます。rapid safety space以外の距離はすべて原点からの距離になっています。
パラメータを入れ直し、再度、NCデータを生成します。
もう一度、NCデータを生成して視点を変えて高さ方向を確認します。逃げが1になって良くなったようです。