- 締切済み
マクロを使った入りと戻りを変える固定サイクルの作成
- 森精機の立型マシニングを使用している際に、G85の固定サイクルを使用するが、入りと戻りを変えることができない。
- 以前使用していた機械では、G85の固定サイクルを使用して、入りと戻りを変えることができた。
- マクロを使用して、固定サイクルを入力してポイント(X、Y)を指定するだけで、入りと戻りを変えることは可能でしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
森精機 NV5000で使っています。 けど、ご使用は自己判断でお願いします。 以下、マクロ本文です。 O番号等は適当に変更お願いします。 また、横に書きました説明文の削除をお忘れなく。 O0885(G85 REAMER ) (Z[Z POINT]#26) Z点 (R[R POINT]#18) R点 (I[FEED]#4) 入り口の切削送り速度 (J[FEEDT]#5) 工具引き抜き時の切削送り速度 (#5003[INITZ]#30) 加工開始時のZ軸の位置(Z20.0) N1 #30=#5003 #30に20.0を代入 G90G00Z#18 R点に早送りで移動 G90G01Z#26F#4 Z点にF50.0で移動 G90G01Z#18F#5 R点にF150.0で移動 G00Z#30 R点からZの最初の位置(20.0)に早送りで移動 M99 % 以下、メインプログラム本文 工具交換、工具長等は省略しています。 あくまで加工に関係する所のみ記載してます。 G00Z30.0 G66P885R2.0Z-10.0I50.0J300.0; X Y ; X Y ; G67 以上が本文 X Y で指令した場所にてリーマ加工を行います。 IとJは小数点指令をお忘れなく。 IとJの指令する順番を間違えないように。 ご不明な点があれば連絡下さい。 お答え出来る範囲であればお答え致します。 >マクロの#5003は何か!とか一覧で書いてるサイトとかあるものですか? サイトは解りませんが、FANUCの本に詳しく載っていますので、 出来ればゆっくりと一度読んでみる事をお勧めします。 マクロはとても便利ですが、ちょっとしたミスで大きな事故に繋がります。 きちんと意味を理解せずに使用するのはとても危険な事です。 >ちなみに・・・#26.18.4.5.30.5003は何でその数字なのかわからなくて とありますが、これも本を見れば載っています。 まぁ、本を読んで下さいだけではつまらないので少し書いておきます。 ちょっと長くなりますが、ご勘弁お願いします。 まず、マクロを使用するにあたって、変数の種類、違いを理解して下さい。 変数というのは、#○○という風になっている部分です。 変数には、ローカル変数、コモン変数、システム変数、 未定義変数(#0)と種類があります。 マクロプログラム(G65orG66の指令文から始まるプログラム) で数値を指令する時に使用するのが、ローカル変数、 代入された数値の置き場所や計算結果の数値置き場に使用されるのが コモン変数、機械の状態を読み取るのに使用するのが、システム変数です。 (尚、変数の使い方は個人によって異なります。ローカル変数に計算結果を 書き込む事も出来ますし、システム変数に数値を入れる事も出来ます) 詳しくは以下のサイトをご覧下さい。 http://takapee.sakura.ne.jp/KIHON/hensuu.htm #26、#18、#4、#5はそれぞれZ、R、I、Jの指令された数値が 代入されるのですが、なぜZが#26、Rが#18になるのかという疑問でしたらそれはそういう風にきまっているからとしか言えないものです。 また#5003(因みにこれはシステム変数)の意味なのですが、これは「Z軸の直前のブロック終点位置」です。 先に作りましたプログラムでは加工開始前のZの位置は20.0の所に あります。 この位置情報を機械の中から読み取るのに使用するのが#5003なのです。 そして、加工をすればZ軸は変化してしまいますから、加工が始まる前に どこかにこの数値を保存しておく必要があり、そのために#30に代入して 保存しているというわけです。保存先は#30にこだわる必要は無く、 自分が作成したときにたまたま#30が空いていたために使っただけで、 開いている変数であればどこでも良いのです。 (保存先は空いている所ならどこでも良いのですが、多重マクロを作成したりする時の事をふまえて、保存先のルールは作っておいた方が後々楽ですよ。) 因みに、先に回答した所の加工プログラムの 一番最初の行、 G00Z30.0 は G00Z20.0の間違いでした。ご迷惑お掛けしました。 お疲れ様です。 さて、問題の件ですが、私の製作したマクロは G90(アブソリュート指令)でZ軸が動く様になっています。 そのため、G66マクロモーダル呼び出しを実行後、 まずは、G91(インクレメンタル指令)で座標が一度動き (この時点でモーダルコードはG91)、その後、マクロで 作成したリーマ加工のプログラムを実行します。 そのため、1穴目の加工が終わった時点では モーダルはG90になっています。 よって、そのまま座標を打ち込むと G90X10.0と機械は認識します。 これを回避するには ?座標指令時にG91を付けて指令する。 ?マクロプログラムのG00Z#30 の後に G91; と入れてモーダルをG91に変更しておく。 等があります。 (個人的には?の方がプログラムの変更は簡単なのですが、 リーマ加工終了後の移動もG91になったままなので、 正直、混乱の元になるのでお勧めはしません。) それと、 >X15L3; ←3回繰り返しなのですが1回しかいかない。 ですが、まず、私の記憶では繰り返し回数を指令出来るのは G66の行でしか指令出来なかったと思います。 それで、 ?この座標で3回リーマ加工を行いたいのか ?G91X15.0で加工後、G91でX15.0を動かすのを二回行いたいのか(計3回) は解りませんが、 おそらくは?の方だと思いますのでそれで話を進めていきます。 一番簡単な方法は加工座標を全部プログラムに書き込む事です。 G91X20.0; の後 G91X15.0; G91X15.0; G91X15.0; という風に書き込めば動くと思います。 (万が一、?の方の加工でしたらまたご連絡下さい。) 他には、マクロで等ピッチの場合、移動座標の計算プログラムを作って加工を 行う(私は主にこちらを使用)やり方もあります。 余談になりますが、マクロを使用すれば、直線上の穴加工等、 同心円上の穴加工等、SAPPORO さんの過去質問にありました A軸が付いた機械なら、加工→任意の角度で軸回転→加工 のサイクルが簡単に指令でき、CAMを使わない(弊社にはCAMが無い) 場合、とてもプログラムが簡単に出来ます。 マクロは覚えればとても便利です。 私もマクロを始めて2年位経ちますが、今では、ドリル加工、 座グリ加工などは全部マクロで行っています。 一度基礎的な物を覚えれば、後はそんなに難しくは 無いと思うので、SAPPOROさんがマクロに 興味を持ち、少しずつでも覚えて行ってくれれば、 回答者としては、とても嬉しいものです。 また何か在りましたら連絡下さい。
お礼
ありがとうございます。 さっそく月曜日に試してみます。 マクロの#5003は何か!とか一覧で書いてるサイトとかあるものですか? ちなみに・・・#26.18.4.5.30.5003は何でその数字なのかわからなくて>< 詳しく説明していただきありがとうございますm(_ _)m 本のほうも見てみます。 明日、試してみてみます^^ 今日試してみました。 うまくいきました。 でも・・・少し問題が; G66P885R2.0Z-10.0I50.0J300.0; G91X10.; ←うまくいきました。 X20.; ←G91ではなくG90で動く。 X15L3; ←3回繰り返しなのですが1回しかいかない。 G67 なのですが・・・なんとかできるものでしょうか? いろいろと詳しく説明していただきありがとうございます。 今日は仕事をしなければならず、マクロを試すことができませんでした; たぶん・・週末まで試せない感じです;; 後で試して見ます^^ また、何かあればお聞きするかもしれませんが・・・・ ありがとうございました。