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

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

移動に関するマクロ
使用Ver.AutoCADLT2019

下記のようなマクロを作成したいのですが、マクロ初心者のためご教示頂けませんでしょうか。
オブジェクトの移動に関するマクロです。

A.任意の選択したオブジェクト(複数オブジェクトの場合あり)を0度or180度or90度or270度方向(上下左右の4方向)のみに移動
B.Aの選択オブジェクトを移動後、続けて他のオブジェクトを選択して一度目と同じ方向に移動
C.Bの移動後、続けて他のオブジェクトを選択して同じ方向に移動・・・続けて他の・・・以下繰り返し
D.オブジェクトの移動距離は、回数によって変化する
E.Dの移動距離変化は、仮に最初の移動距離を3とすると、3×n回 変化する
 最初の移動距離=3
 2回目の移動距離=3*2=6
 3回目の移動距離=3*3=9
 4回目の移動距離=3*4=12
 (以下任意の回数繰り返す)
F.Eの例にある最初の移動距離「3」という数値も任意に変えることが出来る

簡単な画像も添付しました。
画像の例は上方向に3×n回 移動している例です。
分り辛いところあるかもしれませんが、よろしくお願いいたします。
  • motaro
  • 2019/07/25 (Thu) 13:59:31
Re: 移動に関するマクロ
画像が見えません。(⊃д⊂)

*^C^C$M=select;'setenv;to;0;$(nth,$(getenv,to),'setenv;移動距離;\'setenv;角度;\$M="""$(if,$(getvar,cmdactive),\)"""setenv;kai;0;;to;1,,)$(nth,$(getenv,to),,p;;setenv;kai;$(+,1,$(getenv,kai));;to;2,)$(nth,$(getenv,to),,,p;;move;p;;non;0<0;non;$(*,$(getenv,kai),$(getenv,移動距離))<$(getenv,角度);select;\setenv;to;1)^M


とりあえず。作ってみました。
①マクロ起動
②1回目の移動距離入力
③移動角度入力(90とか、0とか180,270)
④オブジェクト選択&確定
以降④の繰り返し。終了はEsc

※1回目の選択は、選択した後に、マクロ実行でも良い。


  • Lon
  • 2019/07/25 (Thu) 16:14:45
Re: 移動に関するマクロ
画像が無いので
見当違いならスルーしてください

移動距離以外をマウス操作にしてみました

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),select;\setenv;No;1;;l1;移動距離^X\;oh1;$(getvar,orthomode);;as1;$(getvar,autosnap);;to;1,,,)$(nth,$(getenv,to),,orthomode;1;line;non;@;移動方向^X\;ucs;ob;l;move;p;;non;0<0;non;@$M="""$(*,$(getenv,l1),$(getenv,No))"""<0;erase;l;;setenv;No;$(+,$(getenv,No),1);;to;2,,)$(nth,$(getenv,to),,,offset;;オブジェクト選択(R-Clickで終了)^X\$M="""$(if,$(getvar,cmdactive),;select;non;@;\setenv;to;3,ucs;p;orthomode;$(getenv,oh1);autosnap;$(getenv,as1);^Csetenv;to;0)""",)$(nth,$(getenv,to),,,,move;p;;non;0<0;non;@$M="""$(*,$(getenv,l1),$(getenv,No))"""<0;setenv;No;$(+,$(getenv,No),1);;to;2)^M

1.マクロ起動
2.オブジェクト選択
3.移動距離入力
4.移動方向指示(マウスで左クリック)
直交の設定をしているので垂直水平のみ指示が可能です
5.次のオブジェクト選択(R-Clickで終了)

※、R-Clickで終了しないとUCS等の設定が戻らないので注意してください。
  • chibi-tom
  • 2019/07/25 (Thu) 16:53:47
Re: 移動に関するマクロ
chibi-tomさんのマクロで、
「※、R-Clickで終了しないとUCS等の設定が戻らないので注意してください。」
の部分を改善してみました。Escでも終了できると思います。

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),select;\setenv;No;1;;l1;移動距離^X\;oh1;$(getvar,orthomode);;as1;$(getvar,autosnap);;to;1,,,)$(nth,$(getenv,to),,orthomode;1;line;non;@;移動方向^X\;move;p;;non;0<0;non;$M="""$(*,$(getenv,l1),$(getenv,No))<$(angtos,$(getvar,lastangle),0,1)""";erase;l;;orthomode;$(getenv,oh1);autosnap;$(getenv,as1);setenv;No;$(+,$(getenv,No),1);;to;2,,)$(nth,$(getenv,to),,,offset;;オブジェクト選択(R-Clickで終了)^X\$M="""$(if,$(getvar,cmdactive),;select;non;@;\setenv;to;3,^Csetenv;to;0)""",)$(nth,$(getenv,to),,,,move;p;;non;0<0;non;@$M="""$(*,$(getenv,l1),$(getenv,No))"""<$(angtos,$(getvar,lastangle),0,1);setenv;No;$(+,$(getenv,No),1);;to;2)^M

  • Lon
  • 2019/07/25 (Thu) 18:35:35
Re: 移動に関するマクロ
Lonさん

修正ありがとうございます

lastangle、方向決めた後すぐに設定を戻す
気づかなかった
勉強になります
  • chibi-tom
  • 2019/07/26 (Fri) 08:24:27
Re: 移動に関するマクロ
Lon様
chibi-tom様

お二人ともありがとうございました。
また画像添付し忘れ申し訳ありません。
添付するまでもなく、お二人に作成頂いたマクロで思い通りの処理ができました!
こんなに早くご対応いただけるとは・・・感動です。

このマクロの使用目的としては、フローチャートなどを作成後、図枠からはみ出してしまった場合、
且つ縮小はしたくない場合などに、各チャートを少しずつ詰めていく作業などのためです。
これで効率があがりそうです。

ありがとうございました!
  • motaro
  • 2019/07/26 (Fri) 11:23:18
Re: 移動に関するマクロ
>各チャートを少しずつ詰めていく作業
詰めすぎた場合や詰め足りない場合は終了しなくても続けられるように
R-Clickで終了を再設定に変更してみました

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),select;\setenv;No;1;;l1;移動距離^X\;oh1;$(getvar,orthomode);;as1;$(getvar,autosnap);;to;1,,,)$(nth,$(getenv,to),,orthomode;1;line;non;@;移動方向^X\;move;p;;non;0<0;non;$M="""$(*,$(getenv,l1),$(getenv,No))<$(angtos,$(getvar,lastangle),0,1)""";erase;l;;orthomode;$(getenv,oh1);autosnap;$(getenv,as1);setenv;No;$(+,$(getenv,No),1);;to;2,,)$(nth,$(getenv,to),,,offset;;オブジェクト選択(R-Clickで再設定/Escで終了)^X\$M="""$(if,$(getvar,cmdactive),;select;non;@;\setenv;to;3,setenv;to;0)""",)$(nth,$(getenv,to),,,,move;p;;non;0<0;non;@$M="""$(*,$(getenv,l1),$(getenv,No))"""<$(angtos,$(getvar,lastangle),0,1);setenv;No;$(+,$(getenv,No),1);;to;2)^M

1.マクロ起動
2.オブジェクト選択
3.移動距離入力
4.移動方向指示(マウスで左クリック)
直交の設定をしているので垂直水平のみ指示が可能です
5.次のオブジェクト選択
・オブジェクトを選択すると移動して5に戻る
・R-Clickすると2に戻る
・Escキーで終了します
  • chibi-tom
  • 2019/07/26 (Fri) 11:44:09

返信フォーム






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