• 締切済み
※ ChatGPTを利用し、要約された質問です(原文:fanucマクロについて)

fanucマクロについて

このQ&Aのポイント
  • fanucマクロについての質問文です。
  • 質問者がO1, G90G00X0Y0, G43H1Z50, M03S1000, G65P9100X100Y50R30Z-50F100I100A0B45H5, M30, (I円の半径)(A穴初角)(B角度の増分)(H穴の個数)という記述について質問しています。
  • 質問内容は、G91モードの場合でも穴あけサークルが動作するかどうかについてです。

みんなの回答

noname#230359
noname#230359
回答No.2

G81Z#26R#18F#9K0 は、 K0が指定されているため、 その時点では実行されません. このサイクルが実際に実行されるのはその後の G90X#5Y#6 の時点です. 最初のG81は、穴の深さなどを記録するためのものです. G81はG91モードでも動作しますが 円周上の位置関係というのは、 それぞれの相対関係を算出するよりも 円の中心に対して直に算出する方が楽なんです. マクロプログラム自体は、 G91モードで呼び出しても問題なく動作します. G91で呼び出された場合、現在位置に対して サークル中心の絶対座標を算出した上で、 G90で穴位置を指定しています. 最後のG#3でG91モードに戻している訳です.

noname#230358
質問者

お礼

なるほど!そういう事なんですね!マクロというのはやはり奥が深く マクロ全体の意味をよく理解して使わないといけませんね!まだまだ 勉強が必要みたいです!ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。
noname#230359
noname#230359
回答No.1

そうですね、G91モードで動作します。 そしてRとZもインクレになります。 P.S. 今回のG65P9100をG91モードで実行して同じ動作にしたい場合、 G65のRとZは、 ◇R30.→R-20.(=30.-50.) ◇Z-50.→Z-80.(=-50.-30.) とすれば良いと思います。

noname#230358
質問者

お礼

やはりそうですか!大変参考になりました! まだマクロ入門者といった感じなのでまた質問したときには よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • NCマクロからのサブプログラム呼び出し

    マクロの勉強中です。 使用機械 森精機 NH5000DCG 制御装置 fanuc30i マクロの実行についての質問ですが、 G65P0000X0Y0・・・・・とサブプログラムの呼び出しで Pで指定したサブプログラムをファイルとして用意しないで メインプログラムに記述して実行するというプログラムを 目にしました。 KST32B-FO-LM という文字刻印マクロプログラムです。 サンプルファイルの記述は以下です。 *********************************************************************** (X:#24:文字の中心のX座標・省略時=現在位置 ) (Y:#25:文字の中心のY座標・省略時=現在位置 ) (R:#18:Z方向 R点・省略不可 ) (Z:#26:Z方向 終点・省略不可 ) (I:#4 :横方向の倍率[全角文字は29mm、半角文字は15mmに対する倍率]・省略時=1.0) (J:#5 :縦方向の倍率[全角半角文字共に31mmに対する倍率]・省略時=1.0 ) (E:#8 :Z方向の切削送り速度・省略時=F/2.0 ) (F:#9 :XY方向の切削送り速度・省略不可 ) O0001 G91G30Z0 T1M6 G54G90G0X0Y0 S1000M3 G43H1Z100.0 Z3.0 G65P1309X0Y0R3.0Z-0.2I0.3J0.3F100 G65P4836X10.0R3.0Z-0.2I0.3J0.3F100 G65P1023X20.0R3.0Z-0.2I0.3J0.3F100 G65P1012X25.0R3.0Z-0.2I0.3J0.3F100 G65P1016X30.0R3.0Z-0.2I0.3J0.3F100 G65P1016X35.0R3.0Z-0.2I0.3J0.3F100 G65P1016X40.0R3.0Z-0.2I0.3J0.3F100 G65P4589X50.0R3.0Z-0.2I0.3J0.3F100 G65P3245X60.0R3.0Z-0.2I0.3J0.3F100 G65P1538X70.0R3.0Z-0.2I0.3J0.3F100 G65P3861X80.0R3.0Z-0.2I0.3J0.3F100 G65P2309X90.0R3.0Z-0.2I0.3J0.3F100 G65P1310X100.0R3.0Z-0.2I0.3J0.3F100 G0Z300.0M5 G91G30Z0 M30 O1012(CD=002C) #1=#4001 #3=#4003 IF[#9EQ#0]GOTO1 IF[#18EQ#0]GOTO1 IF[#26EQ#0]GOTO1 IF[#18LE#26]GOTO1 IF[#4EQ#0]THEN#4=1 IF[#5EQ#0]THEN#5=1 IF[#8EQ#0]THEN#8=#9/2 G90G0X#24Y#25 Z#18 G91X[-1*#4]Y[-8.5*#5] G90G1Z#26F#8 G91X[-1*#4]Y[-2*#5]F#9 X[-1*#4]Y[2*#5] X[1*#4]Y[2*#5] X[2*#4]Y[-2*#5] X[-1*#4]Y[-3*#5] X[-3*#4]Y[-3*#5] G90G0Z#18 G91X[4*#4]Y[14.5*#5] G#1G#3 GOTO2 N1#3000=1 N2M99 *********************************************************************** デモ版lance for windows というシュミレーションソフトで動きを見てみますと動作しています。 実際に加工機にかけてみてみればいいのですが、 その前にどなたかこういったサブプログラムの記述の仕方をお使いになって いらっしゃいましたらアドバイスをお願いいたします。

  • fanucの簡単なマクロ教えてください!

    okkのマシニングセンターを使い始めたんですが、簡単な慣らし運転のマクロを作りたいと思います(fanuc) O1 G91G28G00Z0 G28X0Y0 M03S500 G01X819Y-509F4000(最大ストロークX820Y-510) G28G01X0Y0 この作業(最後の2行)を繰り返したいのですがどういったマクロになるのでしょうか?

  • カスタムマクロで長穴加工

    お世話になってます。今回は、カスタムマクロで長穴加工のプログラムを製作したのですが、動いてくれません。どこか間違いがあれば、指摘の方お願いします。ちなみに、機械はマキノV56です。 G65P9000I30.J10.Z10.D99F200 X50.Y50. .... I:長穴の長さ J:長穴の幅の長さ Z:切り込み深さ D:補正番号 F:送り O9000 N1 G1Z#26F2000 G41D1X[#5/2]F#8 G3X-[#5/2]Y{#5/2]R{#5/2] G1X-[#4/2-#5/2] G3Y-#5R[#5/2] G1X[#4-#5] G3Y-#5R[#5/2] G1X-[[#4-#5]/2] G3X-[#5/2]Y-[#5/2]R[#5/2] G1X[#5/2] G0G40Z20. M99 こんな感じですが、よろしくお願いします。できれば解説なんかあるとありがたいです。

  • ファナックマクロ#5001~5008、#5041…

    ファナックマクロ#5001~5008、#5041~#5048の違いについて 初歩的な質問で申し訳ないのですが#5001~#5008と#5041~#5048の違いって何かわかりますか?例えば #1=#4001 #3=#4003 #4=#4109 #5=#5003←この部分 G00G90Z#18 G01Z#26F#9 IF[#4010EQ98]GOTO1 G00Z#18 GOTO2 N1G00Z#5 N2G#1G#3F#4 M99 上記の#5003は#5043でもいいのではないかと思うのですが明確な違いが分かりません。それとも僕が勘違いしているのでしょうか?どなたか ご教授おねがいします!

  • ISO/EIA マクロお詳しい方、ご教授願います。

    ISO/EIA マクロお詳しい方、+マザトロール(タンドウからマクロ呼び出し)について エアカットにて動作確認はしましたが、間違っているところはないでしょうか 確認お願いします。 機械使用上引数は X→#24 Y→#25 Z→#26 F→#9 R→#18 I→#4           J→#5 K→#6 P→#16 D→#7 しか使用できません    メインプラグラム  Oжжжжж G0G17G90G40G80G64G98 T1 G91G28Z0 M6 N0001 G0G90G54(X0Y0)X-70.Y0 G43Z50.H1 S750M3 M08 G65P7777 D73 Z-20. R3. I5. F600 J800  G80G0Z50.M9 G91G28Z0M5 G49 M30 O7777(サブプロ) G90 G98G#7Z#26R#18Q#4F#9P#5 M99 固定サイクル G73Z-20.R3.Q5.F600P800と 同じ動作をします。  こんな感じですが、 明らかに違っている点ありましたあら 指摘をしてくださいよろしく意お願いします。 参考 マザトロール(山崎マザック) タンドウからマクロ呼び出し    サブO7777は共通  G0 G90 X-70 Y0 Z100 M36 S495 M3 G94 G65P7777 D73 Z-20. R3. I5. F600 J800 G0G80 M9 M5 M1

  • ユーザーマクロについて。

    初めてユーザーマクロを使ってみようと思い、 CAMで出力したポストをもとに作ってみました。 円の一部を2本の工具を使い加工するだけのパスです。 刃物はΦ6のエンドミル2本を使用しています。 変数として Aを加工する物の直径 Bをその半径 O100 G65P100A100. O200 #2=#1/2 (** P100**) T99 T01 (** 6H-A H01 D01 **) G54G00 G80G91G40G28Z0 G49G28X0Y0M05 M06 T02 G90G00X0Y0 G43Z50.H01 M03S3500 M50 X25.Y-[#2+1.] Z20. Z1. G01Z-1.F150 X-25.F500 G00Z20. Z50. X25. M09 (** 6H-S H02 D02 **) G80G91G40G28Z0 G49G28X0Y0M05 M06 T01 G90G00X0Y0 G43Z50.H02 M03S3500 M50 X25.Y-[#2+1.] Z20. Z1. G01Z-1.F30 X-25.F100 G00Z20. Z50. M09 (** End of tape **) G80G91G28Z0 G49G28X0Y0M05 M06 G90 M30 シミュレーションしてみるとエラーが出てしまいました。 どのようにすればイイですか? プログラム前半部分、訂正 (誤り) O100 G65P100A100. (正) O100 G65P200A100. 下記の皆様の回答をもとにこのようなプログラムで動かしてみました。 今回使用する機械にはファナック(M-18) 手打ちではなく下記のプログラムをコピーして機械に転送しております。 % O100 #1=100. #2=[#1]/2 (** P100**) T99 T01 (** 6H-A H01 D01 **) G54G00 G80G91G40G28Z0 G49G28X0Y0M05 M06 T02 G90G00X0Y0 G43Z50.H01 M03S3500 M50 X25.Y-[#2+1.] Z20. Z1. G01Z-1.F150 X-25.F500 G00Z20. Z50. X25. M09 (** 6H-S H02 D02 **) G80G91G40G28Z0 G49G28X0Y0M05 M06 T01 G90G00X0Y0 G43Z50.H02 M03S3500 M50 X25.Y-[#2+1.] Z20. Z1. G01Z-1.F30 X-25.F100 G00Z20. Z50. M09 (** End of tape **) G80G91G28Z0 G49G28X0Y0M05 M06 G90 M30 % しかし #2=[#1]/2 の場所で「009エラー」 と出ました。 アドレス関係のエラーのようです。 わかる方いましたらよろしくお願いします。 ファナック(M-16)で使用した結果 正常に動作いたしました。 改めて調べた結果 ファナック(M-18)の方にカスタムマクロを付けていなかったそうです。 マクロを使う以前の問題でした。 おさわがせしてもうしわけありませんでした。 今回初めてマクロを使用することになり ここで回答をいただいただけでも 大変ためになりました。

    • ベストアンサー
    • CAM
  • FANUC Series 0-M 大隈豊和2NC

    FANUC Series 0-M 大隈豊和2NC のNCフライスを転職して担当することになりました。 従来は大隈やFANUCの1990年以降の機械に携わってきましたが、 その例で、プログラミングすると、 変な動きをします。 1:ブロックゲージでZ原点を出し、G92でZ原点を割り出す。 MDI でG0Z100.と打ち込むと、2.66の誤差が生まれる。 2:穴あけプログラムで、 G54 H1 G90 G0 X0 Y0 Z100. Z50. G98 G73 R3. Z-1. F100. K0 M98 P11 G80 Z50. M30 % O11 G90 X-15. Y-15. X-30. M99 % 動きとしてはX-15.Y-15.まで移動して、 R3. のはずが、絶対値Z4. となり、Z3. まで加工して、延々と繰り返されます。 X-30.には移動しません。 動きにご存知の方、ご教示お願い致します。

  • 順列・数え上げ

    よろしくお願いします。 ここに下のような390個の文字があります。 (A,B,C,D,E,F,G,H,I,J,K,L,M がそれぞれ10個ずつ、 N,O,P,Q,R,S,T,U,V,W,X,Y,Z がそれぞれ20個ずつあります。) この390個の文字から235文字を選んで一列に並べる方法は全部で何通りありますか。 A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z 以下、私が考えたことを書きます。 この390個の文字から235個の文字を選ぶ組み合わせの総数は、 (Σ[k=0~10]x^k)^13*(Σ[k=0~20]x^k)^13 を展開したときのx^235の係数ですから、 23463540513956137996043929988 通りだということは分かります。 この23463540513956137996043929988 通りのそれぞれについて235個の文字 の順列(同種のものを含む順列)を数え上げれば答えは出ると思いますが、これは あまりにも大変な作業です。 何かよい知恵はないでしょうか。

  • 論理演算

    四角ポケットの4つの角に対し、X・Y方向にそれぞれ半円形状の逃がしを入れる マクロを作成しております。 論理演算機能を用い、判断文をコンパクトにしているのですが動きがスムーズではありません。 下記に例を載せてます。 プログラムを指令値毎に作成し長文にするか、多少ぎこちなさを我慢し短文にするか どちらかになるのでしょうか?良い方法があればお願い致します。 *X方向を I(#4)、 Y方向を(#5)とし、右上の角から左回りに1・2・3・4 とします。  つまり右上のX方向に逃がしを入れる場合はメインでI1.と指令します、  ---------⊃ | | | |  --------- *左上のX方向に逃がしを入れる場合はI2.、 ⊂--------- | | | |  --------- *全ての角(X方向)に入れる場合はI1234.、 ⊂--------⊃ | | | | ⊂--------⊃ *Y方向も追加し、すべての角2*4ヶ所=8に入れたい場合は、  I1234.J1234.と指令します。 ∩ ∩    ⊂|--------|⊃ | | | |    ⊂|--------|⊃ ∪ ∪ *四角ポケット、右上角の判断文を訳付きで、、、 IF[[#4EQ1.]OR[#4EQ12.]OR[#4EQ13.]OR[#4EQ14.]OR[#4EQ123.]OR[#4EQ124.]OR[#4EQ134.]OR[#4EQ1234.]]GOTO15211 もしI数値が1.または12.または13.または14.または123.または124.または134.または1234.と等しいならN15211へ行け G1Y#18 直線切削 Y=コーナーR IF[[#5EQ1.]OR[#5EQ12.]OR[#5EQ13.]OR[#5EQ14.]OR[#5EQ123.]OR[#5EQ124.]OR[#5EQ134.]OR[#5EQ1234.]]GOTO15212 もしJ数値が1.または12.または13.または14.または123.または124.または134.または1234.と等しいならN15212へ行け G03X-#18Y#18R#18 左円弧 X=-コーナーR Y=コーナーR R=コーナーR G01X-#18 直線切削 X-=コーナーR GOTO15214 N15214へ行け N15211 G1Y[#32+#11] 直線切削 Y=[工具補正量+仕上げ代] X[#32+#11] X=[工具補正量+仕上げ代] G03Y[#18*2]R#18 左円弧Y=[コーナーR*2] R=コーナーR G01X-[#32+#11] 直線切削 X=-[工具補正量+仕上げ代] IF[[#5EQ1.]OR[#5EQ12.]OR[#5EQ13.]OR[#5EQ14.]OR[#5EQ123.]OR[#5EQ124.]OR[#5EQ134.]OR[#5EQ1234.]]GOTO15213 もしJ数値が1.または12.または13.または14.または123.または124.または134.または1234.と等しいならN15213へ行け G01X-[#18*2] 直線切削 X-=[コーナーR*2] GOTO15214 N15214へ行け N15212 G01[Y#18+#32+#11] 直線切削 Y=[コーナーR+工具補正量+仕上げ代] G03X-[#18*2]R#18 左円弧X-=[コーナーR*2] R=コーナーR G01Y-[#32+#11] 直線切削 Y=-[工具補正量+仕上げ代] X-[#32+#11] X=-[工具補正量+仕上げ代] GOTO15214 N15214へ行け N15213 G1Y[#32+#11] 直線切削 Y=[工具補正量+仕上げ代] G03X-[#18*2]R#18 左円弧X-=[コーナーR*2] R=コーナーR G01Y-[#32+#11] 直線切削 Y=-[工具補正量+仕上げ代] X-[#32+#11] X=-[工具補正量+仕上げ代] N15214 G01X-[#21-[#18*4]] 直線切削 X=-[X方向長さ-[コーナーR*4]] ; ; 単純にORの使い過ぎでしょうか。 宜しくお願いします。

  • 円弧半径指令R, IJについて

    円弧半径指令についてお聞きしたいのですが例えば O1 G17 G54 G90G00X0Y0 G43Z50.000.H1 M03S1736 Z2 M01 G90G01Z-6.000.F277 Y-0.129. G03X0Y0.400.J0.265. J-0.400. X0Y-0.129.J-0.265. G01X0Y0 G00Z50M05 M30 という場合と O1 G17 G54 G90G00X0Y0 G43Z50.000.H1 M03S1736 Z2 M01 G90G01Z-6.000.F277 Y-0.129. G03X0Y0.400.R0.265. J-0.400. X0Y-0.129.R0.265. G01X0Y0 Z50.000.M05 M30 という2パターンのプログラムは全く同じ動きをすると 思っていたのですがなぜかR指令とJ指令では微妙に 円弧の半径が違うRを描いて回ってしまいます。 僕が何か勘違いをしているのでしょうか?もし勘違いをしている としたらどちらが正解なのでしょうか?その原因も含めて どなたか教えていただけないでしょうか?