CNCjsの使い方、設定、CNCマシンにG-code送る方法

ご回答ありがとうございます!
なるほど、ボタンをポチポチ押して、コンソールの反応を調べるのはいいアイデアですね💡
全く想像してませんでした。
早速活用させてもらいます!
ありがとうございます😊

MIniCNCを作ろうと思っています。 何か良いソフトが無いかと探していました。
早速CNCjsを」ダウンロード、Arduino につないでみました。 OKです。 通信できています。
このソフトはG-codeを送るだけですよね。 G-codeを作るソフトは何かいいのがありますか?

こんにちは

Gcodeを作るのにfusion360を使われているのをよく見ます。fusion360のポストの設定をgrbl用のものにすれば問題なく使えるかと思います

早々にありがとうございます。
Fusionは3Ddataを作るのに使っています。
stlデータを作り、別ソフトでGcode化してマシンに転送、プリントしています。
早速、Fusion の機能を見てみます。

異常停止した際にステップ指定してリスタートすることは可能なのでしょうか?
「サイクルスタート」で再開するのかと思っていたのですが、
「サイクルスタート」させるとホーム位置を超えて暴走しました。。。

そもそも設定が悪いのか?
最初からやり直すしかないのでしょうか?

ご存じの方教えてください。

こんにちは

どういう状態でストップしたのかが分からないのでなんとも言えませんが、
CNCjsの一時停止ボタンを押して手動で止めたのであれば復帰ボタンを押せば再開すると思います。
何らかのエラーが発生しロックされたのであれば,NCプログラムの送信は止まります。
そしてリセットやアンロックをかけた際にNCプログラムの送信状態もリセットされます。そのため、再度実行を行うとNCプログラムが最初から流れ、プログラムの内容によっては正しくない位置に行くかもしれません。

CNCjsにはNCプログラムの指定位置からのスタートという機能はなかったと思います。

もし加工の途中から再開させたいという場合は以下の方法が考えられます。

  • CAMの設定ですでに加工した部分を除外しパスを再出力して使う

  • 既存のNCプログラムを修正して加工途中の座標から始める

参考(NCプログラムを編集して再開する場合)

ちなみにCNCjsではなくUGSでは指定行からの実行の機能があるようです


「いいね!」 1

毎度返信ありがとうございます。
レスが遅くなり大変申し訳ございません。

お陰様でフル活用させていただいております。

Y軸の異常を検知して緊急停止しているようですが、何度組み直しても解消できないのでい緊急停止したさいは最初からリスタートしております。。。

現在切削している木刀は、片面30分程度なので最初からリスタートしても我慢できる時間です。

今後超大作を考えるとステップ指定でリスタートしたいのでUGSへの移行を考えてみます。ありがとうございます。

「いいね!」 2

すごく良い作品ですね!

もし良かったらY軸の異常が発生して緊急停止した時のエラーメッセージ等あれば教えて下さい。解決の手伝いができるかもしれません。

概要

装置の実験中に ニッチな 環境依存の問題に出くわしたので報告しておきます。

かなり限定的な環境でのトラブルシューティングですが、スタンドアロン版の Linux 用 CNCjsSlackware Linux で 使おうとすると、「udevadm がねーよ!」と怒られます。

補足事項

※ ダウンロードした CNCjs の使い方:cncjs-app-「使いたいバージョン」-linux-x64.tar.gz をダウンロード・展開し、展開されたフォルダ内でコマンドラインから ./cncjs-app と打つとスタンドアロン版 CNCjs が起動します。

※ 今回の問題の原因:Slackware Linux では /sbin や /usr/sbin(たぶん /usr/local/sbin も。うろ覚え)が設計上一般ユーザーのコマンドサーチパスにのぼらないこと。

Slackware Linux

エラーメッセージ

以下に抜粋。

2021-07-03T01:52:57.937Z - error service:cncengine { Error: spawn udevadm ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:232:19)
    at onErrorNT (internal/child_process.js:407:16)
    at process._tickCallback (internal/process/next_tick.js:63:19)
  errno: 'ENOENT',
  code: 'ENOENT',
  syscall: 'spawn udevadm',
  path: 'udevadm',
  spawnargs: [ 'info', '-e' ] }

問題の回避策

この場合、管理者権限で

ln -s /sbin/udevadm /usr/local/bin/

等と、一般ユーザーに見える場所に udevadm のシンボリックリンクを張っておきます。

他には /dev/ttyUSB0 等の読み書きの権限がユーザーにないとそちらでエラーが出ます。これは gpasswd コマンド等を使って該当ユーザーを “dialout” グループに所属させた後で再度ログインすれば問題ないはず。

他の被害者

同じエラーに遭遇した方のポストが以下。こちらの方は /usr/bin 以下に /sbin/udevadm のリンクを張っていらっしゃいました。

「いいね!」 1

CNCjsを使い始めて2日のド素人です。
ホーミングについて教えてください。

現在1軸のスライダーを自作しており、CNCjsで操作したいと考えています。エンドストップスイッチを使って原点出しをしたいのですが、ホーミングボタンを押しても全くスライダーが動かないので、質問させていただきました(本来はスイッチまで動くという認識で正しいですよね…?)。x300のような、単純にスライダーを動かすコマンドは普通に実行できます。以下、詳細です。

使用しているスイッチはこちらのよく使われているもので、赤と黒のコードをCNCシールドのEND STOPSのX+に接続しています。

ホーミングに関係しそうなパラメータは以下のように設定しています。
$22を1にすれば動くという認識だったのですが、ピクリとも動きません。

$21=0 (hard limits, bool)
$22=1 (homing cycle, bool)
$23=0 (homing dir invert mask:00000000)
$24=25.000 (homing feed, mm/min)
$25=500.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)

配線やパラメータ設定、操作などに何か問題がありますでしょうか?もし問題なければ、他に考えられることなどを教えていただけたら幸いです。
(X軸だけだとホーミングしないとかありますか…?)
何か足りない情報があればお申し付けください。

よろしくお願いいたします。

こんにちは。

自分のマシンはホーミングを押すとZ軸からホーミングしてZ軸のホーミングが完了してからXYのホーミングとなります。
なのでデフォルト設定ではX軸だけだとZ軸ホーミング時点で失敗になって止まっているような気がします。

ホーミングボタンを押したときにX軸だけホーミングする、といった設定があればいいですがパッと見つからなかったので、起動→接続→アンロックで動くようにする→Xホーミング とかで動かないでしょうか。

返信ありがとうございます!
なるほど、その理屈だと動かないのも納得ですね…

お手数をおかけして申し訳ないのですが、Xホーミングというのはどうすればいいのか教えていただけないでしょうか?

あんまりXホーミングだけやらないのと今すぐ確認できないのでうろ覚えですが
このボタンでできないでしょうか

どうも押せないようです。一軸だからかもしれません…
とりあえず起動した時を原点とする方法でやりたいと思います

ありがとうございました。

度々で申し負けないのですが、もう一点質問させてください。
ステッピングモーターを逆回転させると、その瞬間だけ移動誤差が発生する現象が起きているのですが、何か原因に心当たりのある方はいらっしゃらないでしょうか。

例えばコンソールから「x100 → x200 → x500」と順回転の指令を送ると、その通りにきっちり動くのですが、「x100 → x200 → x500 → x300」のようにモーターを最初進んでいた方向とは逆回転する指示を送ると、きっちり300の位置には戻らず、5mmぐらいズレます。ただし、きっちり動かないのは逆回転させた時だけで、それ以降は指示した分だけ動きます。

スライダーはボールねじではなく、タイミングベルトを使ったベルト式スライダーです。何か原因の心当たりや解決策があれば教えていただけると幸いです。よろしくお願いいたします。

こんにちは

これはバックラッシュかもしれないです。
https://jp.misumi-ec.com/special/gear/tips/03/

ベルト駆動なのでバックラッシュはネジ駆動に比べ大きいとは思いますが、5mmはさすがに大きいのでベルトの張りが甘いのかもしれません。

grblでの1軸だけのホーミングに関して補足です。

grblではホーミングコマンドで軸指定をしてホーミングということはできません。ホーミングをしようとするとすべての軸がホーミングされ、その順番はデフォルトではZをホーミング後、XYのホーミングとなっています。

CNCシールドを使っているとのことなので、arduinoとgrblのセットかと思いますが、1軸だけのホーミングを実現するにはgrblの設定ファイルの編集が必要かと思います。(grbl_esp32の場合はマシン定義のファイル編集になるかと思います)

動作するかどうかは未確認ですが、簡単に流れを説明します。
Arduino IDEでArduinoにgrblを書き込む前にgrblのソースコードを編集します。
config.hというファイルがあるので、それを編集します。

その中に以下のような表記があるので書き換えます。

#define HOMING_CYCLE_0 (1<<Z_AXIS)                // REQUIRED: First move Z to clear workspace.
#define HOMING_CYCLE_1 ((1<<X_AXIS)|(1<<Y_AXIS))  // OPTIONAL: Then move X,Y at the same time. 

これを下記のようにしてHoming cycle1を無効化、homing cycle0をX軸のみとします。

#define HOMING_CYCLE_0 (1<<X_AXIS)                // REQUIRED: X move ONLY
// #define HOMING_CYCLE_1 ((1<<X_AXIS)|(1<<Y_AXIS))  // OPTIONAL: Then move X,Y at the same time.

この編集を終えたらgrblをArduinoへ書き込みます。
実際に動かしてはないですが、たぶんこれでX軸だけのホーミングになるのではないかと思います。
もし1軸でのホーミングを試してみたい場合はチャレンジしてみてください。

X-Large剛性版を購入したものです。
機体組み立てとCNCjsのダウンロードまで進みました。
X軸のリミットスイッチを取り付けるため、移動ボタンを押したいのですが
押す場所がガードかかっている状態でボタンを押せず頓挫しています。
なにか解除手順があるのでしょうか? それとも配線接続がいけないでしょうか?
下画面となります。

こんにちは
CNCxPRO v5を使っている場合ですが

・コンソールにホーミングコマンドやアンロックコマンドが見えるが操作可能になっていないこと
・コンソールに接続中の後に起動ログが出ていないこと

これらから接続後にCNCxPRO v5本体のリセットボタンを押していないことが考えられます。
CNCjsにて接続後に反応がない場合は本体のリセットボタンを押してみてください。


また接続の設定の
・ハードウェアフローコントロール
・自動的に接続
にはチェックを入れてください。

nyaruさん 返信ありがとうございます。
リセットした際にカシュッ音も確認できておりますが、当初の画面上の問題解決
に至っていません。
本来、同梱されるべきケーブルUSB AtoCケーブルが無く(別なタイプのケーブル有 添付写真)、携帯充電器のUSB AtoCケーブルを代用した点に問題があるのかもしれないと考え、Avaron Tech側に確認のメールを送ることにしました。
問題点が別な点にありましたら、改めて質問をさせてください。
早く動かせるようになりたいです。。