• 締切済み
※ ChatGPTを利用し、要約された質問です(原文:カスタムマクロの引数受け渡しの優先順序)

カスタムマクロの引数受け渡しの優先順序

このQ&Aのポイント
  • カスタムマクロで引数受け渡しをする際の優先順序について質問です。例えば、既に値が入っている変数に別の変数を代入する場合、どの値が優先されるのでしょうか?また、逆に代入した後の値はどうなるのかも知りたいです。
  • マクロプログラムで変数の受け渡しを行う際、優先順序がどのようになるかについて質問です。例えば、すでに値が入っている変数に別の変数を代入した場合、どちらの値が優先されるのでしょうか?また、逆に代入した後の値はどのようになるのかも教えてください。
  • カスタムマクロにおける引数の受け渡しについて質問があります。すでに値が入っている変数に新たな値を代入すると、どちらの値が優先されるのでしょうか?また、逆に代入された後の値はどうなるのかも教えてください。

みんなの回答

noname#230359
noname#230359
回答No.4

早朝から厳しい回答が続いていますが、回答(3)さんの内容が答え です。 因みに ・マクロプログラムを作成される人(質問者さん?) ・機械を使用する人 が異なる場合は、NCプログラム中の( )で各コモン変数の意味 を記載する 例)#501=1.(WORK COUNT) とか、仕様書として纏められた方がよろしいかと。 変数をキチンと整理して用いないと、回答(3)さんが言外に匂わせて いらっしゃる通り、思わぬプログラムミスにより機械をブツけてしま う恐れがありますのでご注意を。 追記) 回答(2)さんが書かれているような #501=#501+1 (現状の#501の値に1を加える=カウントアップさせる) なる指令は、マクロにおける定番手法です。 >カスタムマクロには危険が伴うとよく聞きますが、具体的にどんな >危険なのかいまいちわからない 加工の途中で不具合が発生してリセット →初めからやり直しor途中から再開 するときに、コモン変数の値が実態にそぐわず変な加工をする恐れが あります(特にサブプログラムで階層分けしていると危ない)。 従って、上記ケースでも変数が正しくなるような工夫が必要です。 昔々、コモン変数を使いまくった壮大なプログラムを作成しましたが、 不具合発生時の途中再開用のマクロを作ったりして大変でした。

noname#230358
質問者

お礼

カスタムマクロには危険が伴うとよく聞きますが、具体的にどんな危険なのかいまいちわからないので、近いうちに牧野かどこかでカスタムマクロの実習を受けるつもりです ありがとうございます なるほど どんな場合でもちゃんと動くようにしないといけないんですね ありがとうございました

noname#230359
noname#230359
回答No.3

厳しい回答かも知れませんが、質問内容を自分で解決 出来ない様なら、マクロは使うべきではありません。 数値の変化の確認を行うには 回答(1)さんのやり方等でご自身で見てみて下さい。 (私の所では新しいマクロを作ったときはよくZを+50.0位上げてか らシングルブロックで動かしながら確認しています。) 尚、ご質問の答えですが、 >#500=#501 とプログラムで指令したらどうなるのですか? #500に2.0が代入されます。 (考え方は#500に#501に入って入る数値、この場合は2.0  を代入しなさい、と考えます。) >逆に #501=#500だとどうなりますか? 考え方は同じで #501に今現在、#500に入っている数値が代入されます。 >実際にマクロプログラムではこうなっているのですが、 #1=#500 #501=#1 このプログラムで#501は1.0になりますか? この通りならなります。 >#501にすでに数値が入った状態で#500の数値を#501に受け渡すことはできますか? 出来ます。 >左が優先とかいうことではないのですか? 無いです。 1つ気になったのですが、 >#1=#500  #501=#1 このプログラムの間で他のプログラムが在って 多重マクロが組まれてる、という事は無いですよね?

参考URL:
http://www.ai-sols.co.jp/product/macro_topic.htm
noname#230358
質問者

お礼

わかりやい回答ありがとうございます 2年前からマシニングセンタ任されて、カスタムマクロに出会ってまだ2ヶ月足らずで、参考書を読んで作ってみようとしていた時にぶつかった疑問で、周りにカスタムマクロ使ってる人がいなかったのでついついここで聴いてしまいました 参考書見直したら左辺と右辺の関係が説明されてました #1で受け渡す必要はないのですね あのプログラムの間に多重マクロが組まれてるとどうなるのですか?

noname#230359
noname#230359
回答No.2

?=?の記号は代入する操作と考える。?←?の意味。   #1=#500   #501=#1 右辺と左辺に変数1個しか書かない形で理解しようとするから混乱する。   #1=1   #1=#1+1   #1=#500*2+#501/8+1 を考えたら矢印の向きもほぼ理解出来るはず

noname#230358
質問者

お礼

わかりやすいです 理解できました ありがとうございました

noname#230359
noname#230359
回答No.1

rb利です 実機があり、操作ができることを前提に 質問の内容を1行づつMDI画面で打ち込み スタートボタンを押して実行し、その都度#500や#501の 値を画面を開いて確認すると結果が分かるのではないですか このくらいの時間はとって実力を上げてください

noname#230358
質問者

お礼

自由に使える機械はあります MDIで確認すればよかったのですね MDIが頭からすっかり抜けてました ありがとうございます 早速明日やります

関連するQ&A

専門家に質問してみよう