- ベストアンサー
カスタムマクロによる次座標の読み込み
- カスタムマクロを使用して加工をしたい場合、G66で呼び出し中のマクロで次座標の読み込みは可能でしょうか?具体的な加工としてはエンドミルで横引き加工を行いたいのですが、座標データしかなく、また座標数も多いため、マクロで処理する方法を検討しています。
- 加工したい箇所には座標データがあり、Y座標が同じ点では連続して加工し、Y座標変化点でZ軸を変えたいです。具体的な加工順序はG00X0Y0で始めて、G01Z-1.F50で加工を開始し、X座標を変えながら加工を続けます。また、加工後にZ軸を変え、次のX座標で再度加工する方法を考えています。
- カスタムマクロを使用して加工を行う際、G66で呼び出し中のマクロで次座標との比較を行い、加工経路を決定させることが可能です。他にもスムーズな方法はあるかもしれませんが、詳細な条件や要件によって異なる可能性があります。
- みんなの回答 (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] で組んでる癖でつい...
その他の回答 (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 で 普通は使わない
ハード上、NCは実行中の次指令点は既に先読みしていて、その動作の<算段>を済ませている。 現時点でプログラム上の次指令点を変更しても機械は意図したようには動かない。 NCはプログラムを上から下へ(シーケンシャルに)実行していく。 GOTO、IF[] GOTOでジャンプはできるが、逆順の実行は出来ない。 プログラムのソフト上、座標値に規則性があるなら、IF、WHILE、で繰返し、条件判断をさせることが出来るが、座標値がランダムなら難しい。なので ■ Exel を使って、データの並べ替えをする■ のが現実的な方策でしょう NCでもカスタムマクロを駆使すれば原理上は同じ事ができるが、変数個数の制約がきつく、命令も単純なので、パソコン Exel には到底勝てない。
お礼
完全ランダムな座標値はエクセルである程度並べ替えし、加工しようとおもいます。ありがとうございました。
お礼
対象座標は不連続座標で、また数も膨大(約1万個)ですので(3)案がベストみたいですが、(2)案で間違えずに加工する方法を考えていこうと思います。ありがとうございました。