レーザー加工機のGrbl化で、NCVCで生成したGコードだと上手くいかずくハマっていましたが、なんか見えてきました。
何をやっていたかというと、まず実機に乗せる前に以下を試しました。
- ArduinoUNOに現在最新と思われるGrbl1.1eを書き込む。
- PC(Windows10)にはbCNCをインストールする。
- とりあえずCNCシールドは載せずに今までのGコードを走らせてみる。
・・・なのですが、Gコードを実行すると途中で停止してIdle状態になってしまいます。
あちこちググッて以下の内容を試しましたがこれらは全て効果ありませんでした。
- リミットスイッチや非常停止に変な信号が入らない様、プルアップを外部に追加、およびコンデンサ取り付け。
- ArduinoUNOをバッタ物から純正品に交換。
- PC側をGrblControllerに変更。
- Grblのバージョンを0.9にダウングレード。
レーザー加工用データは全てNCVCで生成しています。そこで試しに基板加工用データを実行したところ、これだと最後まで実行できました。基板加工データはGynostemmaで生成しています。
Gコードを比べると、Gynostemmaが生成したコードは全て(曲線も含め)G01の直線を組み合わせて描かれいるのに対しNCVCで生成したコードは円や円弧(G02,G03)を使用しています。途中で停止する箇所は色々変わるのですが大抵は円を描くあたりで止まっている様です。
最終的に変更したのはNCVCの設定4点です。
- 「オプション」→「 切削パラメータの設定」から設定ファイル(ウチではLaser.nci)を選び、「表記」タブ内の「ゼロは省略」のチックを外す。
- 同じ「表記」タブ内の「全円は2分割」にチェックを入れる。
- 同じ設定ファイルの「生成」タブ内の省略指定の「Gコードモーダル指定」にチェックを入れる。
- LinuxCNC用にヘッダにG64を追加していたのを廃止。
これで最後まで進むようになりました。
1.はNCVCのサポート掲示板に記載がありました。
2.についてですが、円を描くとき、今までNCVCが次の様なコードを出していました。「G03J1.5F500.」
円なので始点と終点は同じにつきXやYの位置は省略していますが、これでLinuxCNCでは問題なく 動作していました。しかしGrblはダメな様です。
Grblでは「G03Y8.5J1.5F500.」の様に指定してやる事で正常動作しました。しかしNCVCにこの為の設定が見当たらなかったので「全円は2分割」設定にしました。これにより円弧を2回描く事になり、円弧であれば終点の指定が入るので正常動作します。
3.はコードの一番最後に原点に戻す「X0Y0」がなぜか実行されず、「G0X0Y0」だと実行できたのでG0が連続してモードが変わらない場合でもG0を明記する様に設定にしました。
4.のG64はLinuxCNCの時、これがないと直角に折れ曲がる筈なのに角が曲線になってしまった対策で入れていました。GrblではG64はサポートされていない様です(何故なくてよいのかは調べていません)。
以上により、何とかArduino単体では動作する様になったので先に進めます。
こんにちは。ぽんです。
GRBL用gコードは私もNCVCで作ってます。しかも、同じところでつまずきました(笑)
私の環境では、発射直後はレーザー出力が弱いことが、確認されています。立ち上がりが遅いため、対策として最初のラインを1回多く焼いています。
ぽんさん、こんばんは。
同じ事を経験されたのですね。聞けばヨカッタです。
ところでぽんさんもブログとかを書かれてははいかがでしょうか?
私の様に同じ事でハマる人がいるので世の為になりますし、自分が忘れた時に記録としても役立ちますよ。
こんにちは。ぽんです。
ブログですかぁ~
嫁に見つからないように、出来れは書きたいですね~(๑•᎑•๑)