■ トピック関連記事
G-CodeのWHILEの使用について 投稿者:ts 投稿日:2017/11/09(Thu) 12:40 No.819

こんにちは。
初めて質問させていただきます。

当方、CNCフライスでGCodeを使用しています。

同じ図形を切削するのにWHILEを使用したいのですが、読み取ってくれません。(比較演算子が間違ってるという旨のメッセージが出ます)
構文はサイトを見たとおりに記述していますが、さまざまなパターンを試してもエラーが消えません。

さまざまなサイトを検索すると、VBSでマクロを組み込めという情報があるようなのですが、そのVBSのサンプルが見当たりません。

CNC制御ソフトはMach3です。

ご教示いただきたく存じます。

よろしくお願いします。

Re: G-CodeのWHILEの使用について - nc   2017/11/09(Thu) 19:29 No.820
http://nc-program.s-projects.net/while.html

マクロの練習でしょうか それとも繰り返し動作をしたいのでしょうか?
サブプログラムを作ってそれを繰り返すなら M98が使えます MACHIのメニュ−に使えるMコ−ドが有ります
どの様な加工に使うか 具体的に教えてください
まずNCを使うプロに「WHILEの使い方はと聞いても????と思います」
Re: G-CodeのWHILEの使用について - Ko   2017/11/10(Fri) 03:10 No.821
tsさん

はじめまして、本掲示板管理者のKowと申します。

>同じ図形を切削するのにWHILEを使用したいのですが、読み取ってくれません。(比較演算子が間違ってるという旨のメッセージが出ます)
>構文はサイトを見たとおりに記述していますが、さまざまなパターンを試してもエラーが消えません。

そのうまくいかないGコードをテキストで添付して頂けますか?
実際にモノを見せて頂いたほうが、適切な回答ができると思います。

コメント欄下の添付Fileを使用してください。

ncさん

コメントありがとうございます。
ここはどちらかというと趣味のアマチュア金属加工マニアが集まる板なので、何を聞いてもOKです!
Re: G-CodeのWHILEの使用について - ts   2017/11/11(Sat) 01:21 No.822
Kow様
ご返信ありがとうございます。

取り急ぎ、試しに作成していたGcodeを添付します。
(水平に固定した材料を斜めに加工していくCodeになります。
本来はこれのほかにも水平に加工するCodeを追加するので、材料に角度をつけて固定することはできません。)

21行目にWHILEがあるのですが、読み込むといつもここでエラーが出ます。
(この行をコメントアウトすると読み込むことができます)

他にも、特定の形状で加工するのに、0.1mmずつ掘り下げるのにWHILEを使いたいと考えています。
例えば2mmまで掘り下げるとなると0.1mmをずつを20回も繰り返して同じコードを記述していて深さを変更するの手間となってまして。

まずはWHILEが使えるようになればと思ってます。
構文でおかしいところ、変数の使い方ももし適切ではないところがありましたらご指摘いただければと存じます。

よろしくお願いします。
Re: G-CodeのWHILEの使用について - ts   2017/11/11(Sat) 01:23 No.823
txtが添付できなかったのでここに記載します。


#1=400
#2=600
#3=800
#101= 0.1500
#102= -0.0300

G0 X1.3500 Y4.0000
G0 Z0.5000

;Config of Spindle
S10000
M03

F[#1] G1 Z0.0000
#103 =0.0000
#104 =-1.3000

;--------------------------------------
;Loop Proccess
;N10
WHILE [#103 GE #104] DO 1
G91
F[#1] G1 X[#101] Z[#102]
#103 =[#103-#102]
F[#1] G1 Y-8.0000
F[#1] G1 X[#101] Z[#102]
#103 =[#103-#102]
F[#1] G1 Y8.0000

END 1
;--------------------------------------

;Finish process
G90
Z10.0000
G0 X0.0000 Y50.0000
Re: G-CodeのWHILEの使用について - 猛牛ロック   2017/11/11(Sat) 22:32 No.824
マクロの文としてはおおよそ間違えていません。(と思います)
ただ、
#102= -0.0300
#103 =0.0000
なのに、
WHILE [#103 GE #104] DO 1
#103 =[#103-#102] (を2回)
END 1
なので、#103は増え続けます。=無限ループです。
#103 =[#103+#102]
だと思います。

次に、MACHのマクロはNCのマクロでは無く、VBscriptです。
(私は実際にはVBscriptで組んだことはありません)
慣れればきっと、VBscriptの方が簡単に出来るでしょう。

で、私の場合、NCのマクロで書くときはNCVCに、半分付属している
Scripotrium-transpose_macro(FANUC).plを利用して、展開してからMACHに入れています。
http://s-gikan2.maizuru-ct.ac.jp/xcl/modules/d3downloads/

Re: G-CodeのWHILEの使用について - ts   2017/11/14(Tue) 09:54 No.825
猛牛ロック様
ありがとうございます。
ご指摘のとおり、増分値が間違っていました。

transpose_macro(FANUC).plをDLすることはできたのですが、解凍方法がわからずでして・・・(申し訳ございません)

解説頂いた内容を見ると、VBSでWHILEやIFの分岐を置き換えてGcoddeの実行開始から終了までどの関数が実行されるかをすべて一筆書きのように置換する、という認識であってますでしょうか?

WHILEやIFが標準で対応していないのであれば、使うのは避けておきます。

Gcodeは趣味の範囲で使用しており、まだ完全に使いこなせてないので、まずは使える範囲で利用していきます。

M98での繰り返しが利用できるようになったので、とりあえずはこれで代用しようと思います。
(とはいえ、CNCソフトによってはM98も非対応なものもあるようですね。。)

ありがとうございました。
Re: G-CodeのWHILEの使用について - Ko   2017/11/15(Wed) 20:53 No.826
tsさん

解決?したようで何よりです。
ちなみに私もM98でループ処理を書いています。

https://jisakuyaro.com/other/category11/entry23.html

こちらをご参照頂ければ幸いです。
処理 記事No 暗証キー

- Joyful Note -