この掲示板は AutoCADマクロ屋本舗 の掲示板です。

【 注意 】最初に必ず ↓↓ 下記内容 ↓↓ を参照ください。
① マクロが分からない方は、まず 【 マクロ講座 】 を参照ください。
② 質問の前に 【 マクロ使用前の注意事項 】 をお読みください。
③ 質問する時は、新規投稿フォーム下の【 新規投稿時のお願い 】を必ずお読みください。

コピー回転マクロの修正お願い
お世話になります。

コピーをしたものを貼り付け先で回転することが多く、
^C^Cselect;$M=$(if,$(getvar,cmdactive),\)_copy;p;;@;@;_move;p;;\\_rotate;P;;@;
というマクロを
回転は基点の角度参照(R)しか使わないので上記のマクロに不慣れながらも付け足して
^C^Cselect;$M=$(if,$(getvar,cmdactive),\)_copy;p;;@;@;_move;p;;\\_rotate;P;;@;r;@;\\
という状態で使ってました。
ただこの状態だと1度コピー回転をしただけで終わってしまうので
できれば最初にコピーしたものを維持したまま2度3度・・・と貼付け&回転できるマクロに修正してもらえないでしょうか?

またマクロの出だしの「^C^C」で最初にキャンセルするようですが、
このマクロを右クリックショートカットに入れてまして
コピーしたいものを選択してからマクロを右クリックから選んでるのですが
最初の「^C^C」で選択したものがキャンセルされずにマクロを使えるのは何故でしょうか?
  • key
  • 2021/10/13 (Wed) 16:10:02
Re: コピー回転マクロの修正お願い
>コピーしたいものを選択してから
基本的にnth構文のマクロではできないと思っていたのですが
下記Lonさんの考察により可能なようなので

https://totthi.bbs.fc2.com/?act=reply&tid=16642567

*^C^C$M=$(nth,$(getenv,to),select;$M="""$(if,$(getvar,cmdactive),\)"""copybase;\p;;setenv;to;1,)$(nth,$(getenv,to),,;to;0;pasteblock;挿入点を指定(終了はESC):^X\explode;l;-purge;b;*$M="""$(substr,$(getvar,insname),4)""";n;rotate;p;;non;@;r;non;@;\\setenv;to;1)^M

>最初の「^C^C」で選択したものがキャンセルされずにマクロを使えるのは何故でしょうか?
永いことそういう仕様なんだ
と思って考えるのをやめました(笑)
答えじゃなくてすいません
  • chibi-tom
  • 2021/10/13 (Wed) 16:50:38
Re: コピー回転マクロの修正お願い
そのLonさんです。 ( `ー´)ノ

「右クリックショートカットで発動」に限定するなら、後選択は考慮しなくて良いからこれで行けませんかね。【動作未確認です】
*^C^Cselect;$M=$(if,$(getvar,cmdactive),l;;)$M=setenv;to;0;$(nth,$(getenv,to),copybase;\p;;,)$(nth,$(getenv,to),,pasteblock;from;non;@;\explode;l;rotate;p;;non;@;r;non;@;\\id;non;$(getvar,lastpoint);)setenv;to;1^M

>「^C^C」で最初にキャンセルする

正確には、「実行中のコマンドをキャンセルする」です。
選択状態はコマンドを実行している訳じゃないので、選択解除はされません。
「^C^C」はEscボタンを押す事と同じではありません。

試しに「^C^C」だけをマクロ登録して、オブジェクト選択後に、そのマクロを実行してください。
選択は解除されないはずです。
  • Lon
  • 2021/10/13 (Wed) 16:59:35
Re: コピー回転マクロの修正お願い
こんなに早くありがとうございます。
無事どちらとも使えました。

「^C^C」のキャンセルはESCキー押すことと勝手に捉え違えてたようです。
なので選択状態でESCキー押したら解除されるのに何故??状態でした。
  • key
  • 2021/10/14 (Thu) 09:08:00

返信フォーム






プレビュー (投稿前に内容を確認)