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

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

両側同時ストレッチ
いつもお世話になっております。

仕事の作業として、
長方形や長穴等を中心を変えずに
両端を同じ数字だけ大きくしたり小さくしたりすることが多いです。
それをストレッチで片側ずつ行っているのですが
この流れをマクロで両側一気にストレッチすることは
可能なのでしょうか。

・ACAD2016R使用です。
  • 2018/11/06 (Tue) 17:55:56
Re: 両側同時ストレッチ
マクロで同時は難しいのではないのでしょうか?
レギュラー版なので他の方法も検討してはどうでしょうか?

参考までに、水平垂直限定でストレッチの手間を減らしてみました

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),ray;水平(L-Click)/垂直(R-Click):^X\$M="""$(if,$(getvar,cmdactive),;setenv;sw;0,setenv;sw;1)""";;sr1;増減値入力:^X\;to;1,,)$(nth,$(getenv,to),,stretch;c;\\;@;$(if,$(getenv,sw),@$(getenv,sr1)<N,@$(getenv,sr1)<E);setenv;to;2,)$(nth,$(getenv,to),,,;to;0;stretch;c;\\;@;$(if,$(getenv,sw),@$(getenv,sr1)<S,@$(getenv,sr1)<W);^Cid;)^M

1.水平ストレッチは左クリック/垂直ストレッチは右クリック
2.増減数値入力
(小さくする場合は『-』記入するか下記工程の3と4を逆にして左側(下側)からストレッチしてください)
3.ストレッチをしたい右側(上側)を通常のストレッチのようにオブジェクトを囲む
4.同様に左側(下側)を囲む

LT2017で確認です

単純に増減の数値の入力を1回にしてストレッチの基点、目的点の指定を省略しただけです。
  • chibi-tom
  • 2018/11/07 (Wed) 15:35:58
Re: 両側同時ストレッチ
chibi-tom様
ありがとうございます!
こちらのマクロでもかなり仕事の効率があがりました!

やはりなかなか難しいですか...
センター位置を固定に、
右に100mm、左に200mm等
値も必ずしも同じではないので
どうにかならないかと思いましたが...

ありがとうございました。
  • 2018/11/08 (Thu) 09:22:06
Re: 両側同時ストレッチ
増減の違いがある場合に対応させて見ました。
手順が増えているのであまり普通の操作と変わらないと思います
自己満足ですのでスルーしていただいてOKです。

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),ray;水平(L-Click)/垂直(R-Click):^X\$M="""$(if,$(getvar,cmdactive),;setenv;sw;0,setenv;sw;1)""";;sr1;1つ目の増減値入力:^X\;to;1,,)$(nth,$(getenv,to),,;sr2;$(getenv,sr1);;sr2;2つ目の増減値入力:<$(getenv,sr1)>^X\stretch;c;\\;@;$(if,$(getenv,sw),@$(getenv,sr1)<N,@$(getenv,sr1)<E);setenv;to;2,)$(nth,$(getenv,to),,,;to;0;stretch;c;\\;@;$(if,$(getenv,sw),@$(getenv,sr2)<S,@$(getenv,sr2)<W);^Cid;)^M

1.水平ストレッチは左クリック/垂直ストレッチは右クリック
2.1つ目の増減数値入力
(小さくする場合は『-』記入してください)
3.2つ目の増減数値入力(1つ目と同じ場合はエンター)
4.ストレッチをしたい右側(上側)を通常のストレッチのようにオブジェクトを囲む
5.同様に左側(下側)を囲む
  • chibi-tom
  • 2018/11/08 (Thu) 14:14:04
Re: 両側同時ストレッチ
長方形とか長穴とか対称軸の片側の頂点を全て選ぶような簡単な図形限定で、
2倍ストレッチして半分、逆方向に移動するだけです。
ポリラインになっていることが前提です。

*^C^C$M=setenv;to;0;$(if,$(=,$(getenv,to),0),id;;select;\undo;m;orthomode;1;pline;\\;area;o;l;$M=undo;b;"""setenv;len;$(getvar,perimeter);;ang;$(getvar,lastangle);""";to;1)$(if,$(=,$(getenv,to),1),stretch;p;;non;@;non;@$(*,$(getenv,len),2)<$(getenv,ang)r;move;p;;non;@;non;@-$(*,$(getenv,len),1)<$(getenv,ang)r)^M

1.コマンド発行
2.ストレッチする頂点を指定
3.移動する方向と距離を指定、直行モードにしています。適宜変えてください
4.2へ、ESCで終了
  • zukki-
  • 2018/11/08 (Thu) 19:29:22
Re: 両側同時ストレッチ
zukki-様のマクロ見て

片方でいけるのかと思いやってみました

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),ray;水平(L-Click)/垂直(R-Click):^X\$M="""$(if,$(getvar,cmdactive),;setenv;sw;0,setenv;sw;1)""";;sr1;1つ目の増減値入力:^X\;to;1,,,)$(nth,$(getenv,to),,;sr2;$(getenv,sr1);;sr2;2つ目の増減値入力:<$(getenv,sr1)>^X\;to;2,,)$(nth,$(getenv,to),,,stretch;c;\\;@;$(if,$(getenv,sw),@$(+,$(getenv,sr1),$(getenv,sr2))<N,@$(+,$(getenv,sr1),$(getenv,sr2))<E);setenv;to;3,)$(nth,$(getenv,to),,,,;to;0;move;p;;non;@;$(if,$(getenv,sw),@$(getenv,sr2)<S,@$(getenv,sr2)<W);^Cid;)^M

1.水平ストレッチは左クリック/垂直ストレッチは右クリック
2.1つ目の増減数値入力
3.2つ目の増減数値入力(1つ目と同じ場合はエンター)
(小さくする場合は『-』記入するか下記工程の4を逆にして左側(下側)をストレッチしてください)
4.右側(上側)を通常のストレッチのようにオブジェクトを囲む

※、寸法が振ってあると寸法が飛んでしまうのであまり使えないかも

  • chibi-tom
  • 2018/11/09 (Fri) 10:13:53
Re: 両側同時ストレッチ
chibi-tom様
zukki-様
ありがどうございます!
マクロも何通りもあるのですね...!
いまのところ、
全てのマクロがエラーもなく使用できています。
chibi-tom様のマクロの
寸法飛びですが、いまのところ
私のCADでは問題ないようです。
  • 2018/11/09 (Fri) 11:19:32
Re: 両側同時ストレッチ
共有していただきありがとうございます!
  • RyderRay
  • MAIL
  • 2023/03/04 (Sat) 06:51:18

返信フォーム






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