本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:カスタムマクロの次座標の読み込み)

カスタムマクロによる次座標の読み込み

2023/10/18 00:53

このQ&Aのポイント
  • カスタムマクロを使用して加工をしたい場合、G66で呼び出し中のマクロで次座標の読み込みは可能でしょうか?具体的な加工としてはエンドミルで横引き加工を行いたいのですが、座標データしかなく、また座標数も多いため、マクロで処理する方法を検討しています。
  • 加工したい箇所には座標データがあり、Y座標が同じ点では連続して加工し、Y座標変化点でZ軸を変えたいです。具体的な加工順序はG00X0Y0で始めて、G01Z-1.F50で加工を開始し、X座標を変えながら加工を続けます。また、加工後にZ軸を変え、次のX座標で再度加工する方法を考えています。
  • カスタムマクロを使用して加工を行う際、G66で呼び出し中のマクロで次座標との比較を行い、加工経路を決定させることが可能です。他にもスムーズな方法はあるかもしれませんが、詳細な条件や要件によって異なる可能性があります。
※ 以下は、質問の原文です

カスタムマクロの次座標の読み込み

2010/10/11 21:51

カスタムマクロを使用して加工をしたいのですが、G66で呼び出し中のマクロで次座標の読み込みは出来るのでしょうか?
具体的な加工としてはエンドミルで横引き加工をしますが、
加工箇所が座標データしかなく、また座標数も膨大なためマクロで処理出来る方法を思案中です。

Y座標が同一点では連続加工し、Y座標変化点でZを逃がしたいです。
加工順 
G00X0Y0
G01Z-1.F50
X6.
G00Z2.
X0.Y0.
G01Z-1.F50
X6.





G66P100OABCL0
X0Y0
X2Y0
X4Y0
X6Y0
X0Y-2
X2Y-2
X4Y-2
X6Y-2
G67

とあり、次座標との比較で加工経路を決定させたいのですが可能でしょうか?
また、他にスムーズな方法はあるのでしょうか?

質問者が選んだベストアンサー

ベストアンサー
2010/10/12 14:23
回答No.3

(1) 等ピッチならG66を使わず WHILE の2重ループでやるほうが良いでしょう。

; 適当ですがこんな感じ

#1=0
WHILE[#1LT10.]DO1
G90G0X0Y[#1*yy]
#2=0
WHILE[#2LT20.]DO2
G90G0X[#2*xx]
G65P0002A_B_C_...
#2=#2-1.
END2
G90G0Z100.
#1=#1-1.
END1


(2) 不等ピッチでも行末の位置に規則性があるなら、サブプロ側で判断してZを退避させる方法もあります。
(分かりにくい。スマートでない。判定誤ると危険)

O0002 ; サブプロ側
...
IF[#5001LTxxx]GOTO999
G90G0Z100.   ; 末端と判断したらZ退避させる
N999M99


(3) 規則性が無い、サブプロ側で判断が難しい場合、連続で加工する範囲だけ
G66で回して、適宜Zの退避を挟む。
(面倒ですが無難)

G66P0002 A_B_C_
X0Y0
X2.Y0
X4.Y0
...
G67  ; 一旦キャンセル
G90G0Z100. ; Z軸退避
G66P0002 A_B_C_ ;再びG66
X0Y-2.
X2.Y-2.
X4.Y-2.
...
G67

以上、とりあえず思いついた方法。

補足
G66で次の移動ブロックの座標を知る術は無いと思います。

ちょっと間違ったので訂正

× #1=#1-1.  間違い
○ #1=#1+1.  正しい

 #2も同様

普段 WHILE[#1GT0] で組んでる癖でつい...

お礼

2010/10/13 01:53

対象座標は不連続座標で、また数も膨大(約1万個)ですので(3)案がベストみたいですが、(2)案で間違えずに加工する方法を考えていこうと思います。ありがとうございました。

質問者

このQ&Aは役に立ちましたか?

この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。

質問する

その他の回答 (3件中 1~3件目)

2010/10/12 12:56
回答No.2

古い記憶ですが

#26を見ればいいと思う
http://bbs.nc-net.or.jp/mori_log/detail.php?id=170391

Rですが

http://takapee.sakura.ne.jp/KIHON/hensuu.htm
#24~26 は XYZ で 普通は使わない

2010/10/12 09:20
回答No.1

ハード上、NCは実行中の次指令点は既に先読みしていて、その動作の<算段>を済ませている。
現時点でプログラム上の次指令点を変更しても機械は意図したようには動かない。
NCはプログラムを上から下へ(シーケンシャルに)実行していく。
GOTO、IF[] GOTOでジャンプはできるが、逆順の実行は出来ない。

プログラムのソフト上、座標値に規則性があるなら、IF、WHILE、で繰返し、条件判断をさせることが出来るが、座標値がランダムなら難しい。なので

■ Exel を使って、データの並べ替えをする■
のが現実的な方策でしょう

NCでもカスタムマクロを駆使すれば原理上は同じ事ができるが、変数個数の制約がきつく、命令も単純なので、パソコン Exel には到底勝てない。

お礼

2010/10/13 01:56

完全ランダムな座標値はエクセルである程度並べ替えし、加工しようとおもいます。ありがとうございました。

質問者

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。