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

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

締切済み
※ ChatGPTを利用し、要約された質問です(原文:NCデータでの座標定義について)

NCデータでの座標定義について

2023/10/17 13:22

このQ&Aのポイント
  • NCプログラムの初心者です。NCプログラムに詳しい方どうか教えてください。
  • NCデータ内でパートAとパートBの加工原点を定義し、パートBをパートAで定義した加工原点からずらして加工したい場合、どのように定義すればよいか教えてください。
  • 座標定義は、水平方向が右→左をプラスX方向、垂直方向が下→上をプラスY方向です。
※ 以下は、質問の原文です

NCデータでの座標定義について

2009/08/03 15:31

NCプログラムの初心者です。NCプログラムに詳しい方どうか教えてください。

下の方にNCデータのソースの一例を記入しております。
その中で、パートAを行1~5、パートBを行6~25と定義します。

●パートAは、加工原点からみて機械原点の距離は(+100,+100)。加工原点を(0,0)と定義したい。
●パートBは、加工原点を(?X,?Y)と定義したい。
(パートAとは相対的に(+?X,+?Y)ずらした位置で加工したい。)

上記のようにしたいのですが、パートBの冒頭でG91G00?X?Yとしても、その後、G90の絶対座標系で動いているので、
だめかな、と思います。それともG92で定義し直すのでしょうか。。
パートB部分全体をパートA部分で定義した加工原点からある値をずらした加工原点で加工するには、
ひとつのNCデータ内でどのように定義すればよろしいのでしょうか?

#ちなみに座標定義は下記です。
・水平方向:右→左をプラスX方向
・垂直方向:下→上をプラスY方向


1 O1000 :メインプログラムO1000
2 G92X100.Y100.Z0.
3 G90G00Z10.
4 M98P4003 :サブプロO4003呼び出し
5 G90G00Z0.
6 G54G90 :ワーク座標系G54(現在オフセット値は0,0)
7 G17G40G00X140.Y42.S18M13
8 M11
9 G01Z-40.F6000
10 G64G43H27Z-63.F2000
11 G41D25X130.
12 X50.F3000
13 G42X80.
14 Y70.
15 G41Y42.
16 X-993.
17 Y22.
18 X-1360.F3000
19 G40X-1325.Y-10.F6000
20 M98P5555 :サブプロO5555呼び出し
21 G91G01G49Z63.F5000M92
22 M95
23 G91G28X0Y0M07
24 M31
25 M30

お手数ですが宜しくお願い申し上げます。

回答 (5件中 1~5件目)

2009/08/11 12:01
回答No.5

G92でもG52でも何とでもなります。

G92は説明されているので割愛して

G52ならば

Aを例えばG54からみてX200.Y150.ならば

G90G54
G52X200.Y150.

で済みます。

更にBはAから見てX-100.Y-50.ならば
Aを加工後

G52X-100.Y-50.

とすればそこを基準として以降は動きます。
やりたい印象はこっちのイメージを受けますが如何でしょう。

最後に
G52X0Y0
M30
と終わる前に戻しておく事も忘れずに。

お礼

2009/08/17 18:17

お返事送れて失礼致しました。
G92以外の方法で、G52のローカル座標系設定を用いるのですね。
試してみようと思います。大変参考になりました。
どうもありがとうございました。

質問者

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

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

質問する
2009/08/03 23:25
回答No.4

どうしてもG92を使いたければ回答(3)さんの方法に賛同します。

ワーク座標系の使用に制約が無ければ回答(2)さんの方法に賛同します。
(G92は使用しない)
あらかじめ、G54:X-100.Y-100./G55:X(-100.+?X),Y(-100.+?Y)
に設定しておいて、オーソドックスに
<パートA> 
G91G28Z0.
G91G28X0.Y0.
G90G54XO.YO.
<パートB>
G91G28ZO.※
G90G55X0.Y0.
(※とりあえずZを原点に逃がしました)

なお、カスタムマクロでワーク座標系を直接書き換えることも一案
ですが、途中でリセットしたときの対策に工夫が必要なので、先ずは
ベーシックな方法がよろしいかと。

NCプログラムを使う職場から離れて10年ぐらい経過した古い知識
であり、今はもっと便利な妙手があるかもしれませんので、ご容赦
下さい。

各パートプログラムに、座標系の数値を設定する行を入れて、加工途中
でリセット~最初から再スタートしてもG54が確実に設定されるように
することです。

NCの取り扱い説明書が手元に無いのですが...
例えばワーク座標系G54の各座値のシステム変数が
X座標:#5**1
Y座標:#5**2
Z座標:#5**3
であると仮定すると、

<パートA>
#101=-100.#102=-100.#103=***;
#5**1=#101 #5**2=#102 #5**3=#103;
G91G28Z0.;
G91G28X0.Y0.;
G90G00G54X0.Y0.;

<パートB>
#101=-100.+ΔX #102.=-100+ΔY #103=***;
#5**1=#101 #5**2=#102 #5**3=#103;
G91G28Z0.;
G91G28X0.Y0.;
G90G00G54X0.Y0.;

とすることにより、例えばパートBの途中で加工を止めて、
パートAやパートBの先頭から再スタートさせても、正しい
座標系が維持できます。
また、このようにカスタムマクロとシステム変数を使用すれば、
ひとつの座標系で複数のプログラムを使用することも可能です。

カビの生えた古い知識ですが、何かのご参考となれば幸いです。
(今のNC装置も同じようなシステムか否かも分かりません><)

お礼

2009/08/04 08:58

ご回答ありがとうございます。

今回はワーク座標系を使わず(他で使っているためアドレスに余裕がありません)、G92での再定義の方針で行こうと思います。今後のために、非常に参考になります。感謝いたします。

>途中でリセットしたときの対策に工夫が必要
というのは、NC装置のメモリをリセットした際のオフセットデータのバックアップが必要?という意味ですよね?

質問者
2009/08/03 22:31
回答No.3

ワーク座標系(G54~G59)を使用するならG92は避けるべきです。

どうしてもG92で座標設定をするのであればG53(機械座標値への移動)を使う方法は?
G91G28X0Y0Z0
G90G53X-100Y-100(第一加工原点)
G92X0Y0



G90G53X-200Y-200(第二加工原点)
G92X0Y0



ファナック系のMCの場合ですが・・・

補足

2009/08/04 08:53

ご回答ありがとうございます。
理解できてきました。昨日考えてたのですが、G92で再定義する方法が一番よいかなぁと検討しておりました。

記入いただいた
G90G53X-200Y-200(第二加工原点)
G92X0Y0

を、
G91G00X-200Y-200(第二加工原点)
G92X0Y0
としても同じ意味になりますでしょうか?
G53は使ったことがなく、実加工では少々不安です。(当方ファナックMCです。)

質問者
2009/08/03 16:53
回答No.2

例えば、パートAをG54、パートBをG55とかの、座標位置にしては
如何ですか。

回答4 さんの、やり方と同じです。

お礼

2009/08/03 18:17

ご回答ありがとうございます。

具体的には、パートAの冒頭のG92→G54でまず定義しておいて、パートBの冒頭にて、G90G55と書くのですか?記述方法がよくわかりません。よろしければ体裁を教えていただきたいです。

質問者
2009/08/03 16:20
回答No.1

マシニング系のNCにはあまり詳しくないのですが、
NCは座標系シフトや、子座標系の確立はできない仕様なんでしょうか?
例えば、G92で任意の位置に座標系を設定してしまうと、
G54では戻せなかったりします?
ファナックの旋盤系ならG50のインクリメンタル指定が使えるんだけどなあ...

お礼

2009/08/03 18:30

ご回答ありがとうございます。

>G92で任意の位置に座標系を設定してしまうと、
>G54では戻せなかったりします?

G92定義後では、G54等のワーク座標系では戻せないように思います。。
定義座標の再宣言ができればよりのですが、その方法がわかりません。。

質問者

お礼をおくりました

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

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