手動NCで作ったコードを希望の場所に出力させたい

手動NCで作ったコードを希望の場所に出力させたい

simasizo
Advocate Advocate
872件の閲覧回数
4件の返信
メッセージ1/5

手動NCで作ったコードを希望の場所に出力させたい

simasizo
Advocate
Advocate

こんにちは。いつも大変い世話になっています。

 

以前作って頂いたポストをもう少し手を加えたいのですが 頓挫しています。

今ままでは こんな感じで作業していました。コメント 2021-06-13 095709.png

左の赤の部分を切り取り 右の位置に移動させていました。

今後やりたいのは手動NCタイプ、メッセージの印刷を使って右の様に出力させたいのですが コメント 2021-06-13 101412.png

今現在この様な状況で止まっています。一番下の文だけ出力されています。

 

(--work1--)
M05
M09
Z150.
X-300.Y1000.
M00
(--work1--)

M08
G00X138.Y5.
G56Z100.H05

M01 ←work1利用時 念のためM01を出力させたいのですが 条件文をどの様したら良いのでしょうか?
S1270M03
M08

コメント 2021-06-13 105138.png

手を加えたのは画像部分とSコードとオプショナルストップの出力配置です。

どうかよろしくお願いします。

 

simasizo
0 件のいいね
解決済み
873件の閲覧回数
4件の返信
返信 (4)
メッセージ2/5

kandennti
Mentor
Mentor
解決済み

@simasizo さん こんにちは。

 

かなり悩みましたが、出来るようになりました。

1.png

取り組んでいた方向で間違いありませんでしたよ。

 

"メッセージの印刷” の場合、複数行の記述が出来るので、自分もonManualNC関数の
"value” は複数行の文字を受け取っているものだと思っていたのですが、
実際は1行毎にonManualNC関数を呼び出していました。
(これに気が付くのに時間がかかりました)
 
 
その為、commandmessage -> commandMessageList(空のリスト)に変更。
1.png
 
onManualNC関数では、呼び出される度にリストに文字を突っ込む。
1.png
 
書き出すタイミングでは、改行文字で連結し書き出し。
その後リストを空にしています。
1.png
メッセージ3/5

simasizo
Advocate
Advocate

@kandennti さん こんにちは。

 

スマートな形に毎回作って頂きありがとうございます。

実際は1行毎にonManualNC関数を呼び出していました。

そんな仕組みになっていたのですね。私じゃわからないはずです^^;

 

本当に申し訳ないのですが ”work1"利用後にM01出力の方法ありましたら よろしくおねがいます。

無理そうでしたら この機能を使って出力させたいと思います。

 

 

simasizo
0 件のいいね
メッセージ4/5

kandennti
Mentor
Mentor
解決済み

先程のやり方と同様です。

 

"work1OptionalStop" と言うグローバルなBool型の変数を用意。
1.png
 
onManualNC関数内で、"work1" 処理の最後に "work1OptionalStop" をTrueに
書き換え。(要は呼び出されたことを記録しています)

1.png

 

書き出しのタイミング時に、"work1" が呼び出されているか? と

オプショナルストップが "はい" になっているか? を確認し、

条件を満たしていれば "M01" を書き出します。

その後、 "work1OptionalStop" を false に戻しておきます。

1.png

 

これでご希望の位置に "M01" を書き出していると思います。

メッセージ5/5

simasizo
Advocate
Advocate

@kandennti さん 

 

対応ありがとうございます。

時間かかりますが理解できるように頑張ります。

これで やりたい事出来ます。またそれから次の事で悩むでしょうけど・・・・。

困ったときは本当に申し訳ないのですが よろしくお願います。

 

 

 

 

simasizo