• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:G54~G59の切り替え)

G54~G59の切り替え方法について

このQ&Aのポイント
  • マシニングセンターを始めて半年ほどの初心者ですが、加工テーブル上に同じ形状の部品を一度に無人加工したいと考えています。ワーク座標系はG54~G59を使用していますが、G54から順にG55、G56、G57、G58、G59に切り替えて加工する方法がわかりません。
  • 考えた方法として、マクロを使用してG54を変数にしておき、1個目の加工が終わったら変数を+1して次の加工に移る方法を検討しています。また、取説にあるG10を使用して座標位置を変える方法も考えていますが、どちらの方法も試したことがなく不安です。このような場合、他の方はどのように対処しているのかご教示いただけないでしょうか。
  • 初心者の私がマシニングセンターの加工テーブル上に同じ形状の部品を一度に無人加工するためには、G54から順にG55、G56、G57、G58、G59に切り替えなければなりません。マクロやG10を使用して切り替える方法を考えていますが、試したことがなく不安です。経験のある方はどのように対処しているのか教えていただけないでしょうか。

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

  • ベストアンサー
noname#230359
noname#230359
回答No.6

はじめましてこんばんは。 G10L2P0XxxYxx ←で外部オフセット(P0)を利用すると複数個加工が楽になります。私も時々使っています。 利点は外部オフセットを利用するので座標系の個数(標準6個所)の枠にとらわれることなく比較的に簡単に利用できます。簡単というのはP1~P6(G54~59)へのG10での入力は機械座標を使わなければならないですがP0への入力を使うと基本的にはアブソリュート入力で済むところです。 注意する点は加工プログラムの途中で終了させると外部オフセットに数字が入力されていますので座標入力を伴うMDI等での作業や別加工されるときの確認が必要です。 以下簡単に加工プログラムの流れです。 (XxxYxx)は1箇所目原点からのアブソリュート入力です。 座標指令(G54)はCAMでのプログラム(P0)によって指令されていると考えています。 O??? G90G10L2P0X0Y0 (1個目の加工物をG54からのオフセットX0Y0とします) N100 M98P0 (G54原点でで作成された通常の加工プログラムです) G90G10L2P0XxxYxx(2箇所目の加工物原点のオフセット量) N200 M98P0 G90G10L2P0XxxYxx(3箇所目の加工物原点のオフセット量) N300 M98P0 ........... G90G10L2P0XxxYxx(6箇所目の加工物の原点のオフセット量) N600 M98P0 G90G10L2P0X0Y0 (私の場合、0に戻しておきます) M30 です。参考にしてください。 各箇所ごとに細かな原点調整が必要なワークの場合は3桁部分のシーケンスナンバーの部分に「G91G10L2P0XxxYxx」のインクルでの入力を挿入すると問題解決します。 補足ですがツールごとにこの加工プログラムの流れを組むほうが時間短縮になります。 それでは頑張ってください。 

noname#230358
質問者

お礼

炎のオペレーター様 まず、お礼&お返事が遅れてしまいましたこと、 大変失礼いたしました。 なかなか落ち着いてパソコンの前に座る暇がなく、 本当に申し訳ありませんでした。 それと、大変詳しい御説明を頂きありがとうございます。 質問に「取説にあるG10を使用して座標位置を変えていく」 などと偉そうに書きましたが、本当のことを言うと、 取説を読んでも、よくわかっていませんでした。 炎のオペレーターさんの説明を読んで、ようやく理解できました。 G10などはこのように使用すればよいのですね。 この方法でチャレンジしてみたいと思います。 本当にありがとうございました。

その他の回答 (7)

noname#230359
noname#230359
回答No.8

はじめて投稿します。よろしくお願いします。 何も無理をしてG54~G59の座標系を使わなくてもできます。 G54の座標系で・・・ {メインプログラム} N001 G90G00G17G40G54X0Y0M98P○○○○ N002 G90G00(G17G40G54)X----Y----M98P○○○○            ・            ・            ・ M30 {サブプログラム} N○○○○ G91--------    ・    ・    ・ M99 と、やっていけば、よいのでは? メインプログラムの中に( )を付けましたが、二個目以降は省略可能です。

noname#230358
質問者

お礼

tan 様 お礼が遅れまして大変申し訳ありませんでした。 メイン&サブの組合せは大変有効なのですね。 ご回答ありがとうございました。

noname#230359
noname#230359
回答No.7

こんばんは。 サブプロ使う手、以外に。 CAD,CAMで、6個のプログラムを作ってしまう。 CAMでは、加工軌跡のコピーが簡単ですので、 時間はかからないかも? うちでは、このデータを直接機械に流し込みますので、 機械の画面上でコードを打つ事は、ありません。

noname#230358
質問者

お礼

KIYOHIKO 様 お礼が遅れまして大変申し訳ありませんでした。 なるほど、CAMで6個分のプログラムを作るという方法は 私にとっては盲点でした。 ただ、部品によっては膨大なデータになってしまうかも・・・。 うちのMCはパソコンなどとリンクしてないので苦しいかもしれません。 でも、このアイデア、いつか活用せていただきます。 ご回答ありがとうございました。

noname#230359
noname#230359
回答No.5

そんなに難しいプログラムではありません 一つのプラグラムとして考えるから難しいのです 加工物 A G55 加工物 B G56 加工物 C G57 加工物 D G58 で加工したいと思います 加工内容プログラムは O1100で 作ったとすれば O1100 (加工プログラム) G00X0Y0 Z100. M01 Sxxxx M3 M8 ・ ・ ここの中では座標系をかまうプログラムはつかない ・ ・ G00Z100. G00X0Y0 M9 M5 M99←M30ではない という加工プログラムをサブルチーンかします それを呼び出すプログラムとして O1000を用意します O1000 (MAINプログラム) (加工物A) G54←機械内を移動したいときはG54を使う G00XxxYxx ←加工物の大体の位置 G55 座標系を設定 M98 P1100 共通プログラムの呼び出し (加工物B) G54←機械内を移動したいときはG54を使う G00XxxYxx ←加工物の大体の位置 G56 座標系を設定 M98 P1100 共通プログラムの呼び出し (加工物C) G54←機械内を移動したいときはG54を使う G00XxxYxx ←加工物の大体の位置 G57 座標系を設定 M98 P1100 共通プログラムの呼び出し (加工物D) G54←機械内を移動したいときはG54を使う G00XxxYxx ←加工物の大体の位置 G58 座標系を設定 M98 P1100 共通プログラムの呼び出し M30 とします ポイントしては ・共通加工プログラム内では座標系を使わない…使うプログラムも出来ますが難しくなります ・MAINプログラムを用意する ・MAINプログラムから座標系を変えて共通プログラムを呼び出すです

noname#230358
質問者

お礼

ははは さん ご回答ありがとうございます。 とてもわかりやすいご説明で、助かりました。 基本はやはりサブとメインのプログラムの使い分け ということなのですね。 とても参考になりました。

noname#230359
noname#230359
回答No.4

こんばんは! G** M98P**** は私もよくやる手法ですが、回答者の皆様とちょっと違った方向から アプローチしてみたいと思います。 まず、ワークが6個(ワーク座標の数)以上になった場合、お手上げになってしまいます。どうせやるなら、テーブルいっぱいにワークを置きたいモノ ですネ。無人運転でトラブルがあった際の損害は甚大なものになりますが。 前提としては、それぞれのワークの座標を明確にできるジグが必要になります。 と言うか、NC機での加工はジグの存在が欠かせません。 特に大量にやりたい場合は・・・。 話を単純にするため、100×75のフラットバーに2個の穴あけをする プログラムなど。孔位置は、X-25、Y-30と、X-75、Y-45 とします。 それぞれのワークの座標原点は、@で表しますね。 メインP G90G98G54 M3S** G43H**Z50. G81Z**R**F**M8 M98P** X-@Y-@ M98P** X-@Y-@ M98P**   .   .   . G53Z0M5 M2 or 30 サブP G91 X-50.Y-15. G90 M99 ジグが規則正しい順序で(等間隔)ワークを設置できるのであれば、もう一段 ネスティングが掛けられますので、さらにプログラムは簡略化できます。 同じ孔でいくつかの工具を使うのでしたら、もう一段ネスティングを掛ける 事ができます。プログラミング、楽をしようと思えば、いくらでも楽する ことができますよ~。 簡略化の基本は、インクレメンタル指令です。 アブソリュートは最初の位置決めと、実際の加工上において、不適合が 出ないための確認に使っています。 非常に判りづらい文章でスミマセン。 疑問がありましたら、お答えいたしますよ~。

noname#230358
質問者

お礼

むきゅきゅーん さん ご回答ありがとうございました。 やはりメインPとサブPにわけて作るのが基本なのですね。 とても参考になりました。

noname#230359
noname#230359
回答No.3

G54 M98 O1111 G55 M98 O1111 G56 M98 O1111 で よいと思います O111 には G54 は 入れないように します

noname#230358
質問者

お礼

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

noname#230359
noname#230359
回答No.2

私なら3番目の方法 今のメインプログラムをサブにして 呼び出し時にG54~59を与える 理由:途中から始めるときに分かり易い 例えば O1111 G54 M98P1112 G55 M98P1112  ・  ・ G59 M98P1112 M30 回答して気が付きました 1番さんとかぶりましたね

noname#230358
質問者

お礼

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

noname#230359
noname#230359
回答No.1

メインPG と サブPG で対応できます。 加工PGを仮に O100 メインを仮に O200 としておく。 % O200 G54 M98P100 G55 M98P100 G56 M98P100 G57 M98P100 G58 M98P100 G59 M98P100 M30 % % O100 G90G00XOYO ... ... M99 % というPGをメモリに入れておけばよいです。 M98 サブプロ呼び出し M99でメインに戻る。 サブプロには座標系のGコードは入れないでくださいね。

noname#230358
質問者

お礼

アドバイスありがとうございました。 私の質問の仕方に少し不十分なところがありました。 実は最初に作ったプログラムはCAMを使用して 作った物で、自動的に各パートプログラムに G54等が入るようになっています。 出来れば、このプログラムをそのままでつかえないかな という虫の良いことを考えていました。 やはり、座標系のGコードをすべて削除してやるしかないのですね。

関連するQ&A