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

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

ピッチ指定2点間配列複写を元にマクロを作成したい
はじめまして。
マクロ初心者です。
こちらの「65.ピッチ指定2点間配列複写」を修正して使用したいと思っています。

修正したい内容は、2点間距離を指定したピッチ以下で均等に配置したいと思っています。
例えば、200ピッチを@66.666,@66.6666,@66.6666といった感じです。

どのようにマクロの変更をしたらよいかわからず、また元のマクロもLT2019では動作できずに途方に暮れております。

お時間のあるときでよいので、教えていただけないでしょうか?
よろしくお願いします。


ピッチ指定2点間配列複写
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;pc1;配列ピッチ^X\select;\copybase;non;0<0;p;;setenv;to;1,,,)$(nth,$(getenv,to),,line;\\;erase;p;;lengthen;L;;;;select;l;;pasteblock;non;0<0;copy;p;;non;@;non;@;erase;p;;ucs;ob;l;erase;l;;explode;L;setenv;to;2,,)$(nth,$(getenv,to),,,;to;$(if,$(>,$(getenv,pc1),$(getvar,perimeter)),0;ucs;p,3),)$(nth,$(getenv,to),,,,-array;p;;r;1;$(+,$(fix,$(/,$(getvar,perimeter),$(getenv,pc1))),1);$(getenv,pc1);ucs;p)^M
  • AYARIO
  • 2019/08/20 (Tue) 15:27:56
Re: ピッチ指定2点間配列複写を元にマクロを作成したい
作ってみました。
「ピッチ指定2点間配列複写」とは全然違うマクロなので、使用感も違います。

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;最大ピッチ;\;to;1,,,,)$(nth,$(getenv,to),,select;\move;p;;\$M=\line;non;@;non;"""$(getvar,lastpoint)""";;ucs;w;copybase;non;0<0;p;;erase;p;;ucs;p;;e;l;lengthen;dy;;;l;;;erase;l;;setenv;to;2,,,)$(nth,$(getenv,to),,,;MP;$(/,$(getvar,perimeter),$(getenv,最大ピッチ));;N;$M="""$(if,$(=,$(getenv,MP),$(fix,$(getenv,MP))),$(fix,$(getenv,MP)),$(+,$(fix,$(getenv,MP)),1))""";;to;3,,)$(nth,$(getenv,to),,,,;p;$(/,$(getvar,perimeter),$(getenv,N));;to;4;ucs;w;pasteblock;non;0<0;explode;l;ucs;p,)$(nth,$(getenv,to),,,,,;to;1;copy;p;;non;0<0;a;$(+,$(getenv,N),1);non;@$(getenv,p)<0;ucs;p)^M

①コピーしたいオブジェクトをスタート地点に置きます。
②マクロ実行します。
③最大ピッチを入力します。
④コピーしたいオブジェクトを選択します。
⑤移動コマンドが起動しますので「2点間」の片方の点を基点、
 もう片方の点を目的点として移動します。
⑥すると、その移動距離に応じて等ピッチコピーされます。④に戻ります。

  • Lon
  • 2019/08/20 (Tue) 18:52:15
Re: ピッチ指定2点間配列複写を元にマクロを作成したい
>元のマクロもLT2019では動作できず
AutoCAD R/LT 2015以降の注意点
https://ameblo.jp/totthi-macro/entry-12220279344.html

上記を参考にすればわかると思いますが
lengthenコマンドの仕様変更がありましたので

lengthen;L;;;;をlengthen;dy;;;l;;;に変えるとできると思います。

lengthenコマンドのオプションによって
エンターの数が変わるようなので
下記のように、いずれかにすると間違いないかと思います
lengthen;dy;;;l;;;
lengthen;de;;;;l;;;;
lengthen;p;;;;l;;;;
lengthen;t;;;;l;;;;

また、お二人のマクロを合わせてみました

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;pc1;最大ピッチ^X\select;\copybase;non;0<0;p;;setenv;to;1,,,,)$(nth,$(getenv,to),,line;\\;erase;p;;lengthen;dy;;;L;;;select;l;;pasteblock;non;0<0;copy;p;;non;@;non;@;erase;p;;ucs;ob;l;erase;l;;explode;L;setenv;to;2,,,)$(nth,$(getenv,to),,,;to;$(if,$(>,$(getenv,pc1),$(getvar,perimeter)),0;ucs;p,3),,)$(nth,$(getenv,to),,,,;MP;$(if,$(=,$(/,$(getvar,perimeter),$(getenv,pc1)),$(fix,$(/,$(getvar,perimeter),$(getenv,pc1)))),$(fix,$(/,$(getvar,perimeter),$(getenv,pc1))),$(+,$(fix,$(/,$(getvar,perimeter),$(getenv,pc1))),1));;to;4,)$(nth,$(getenv,to),,,,,-array;p;;r;1;$(+,$(getenv,MP),1);$(/,$(getvar,perimeter),$(getenv,MP));ucs;p)^M

使用方法はとってぃさんのマクロと同じです
とは言っても、Lonさんのも操作手順は同じですけどね
参考までに
  • chibi-tom
  • 2019/08/21 (Wed) 09:22:33
Re: ピッチ指定2点間配列複写を元にマクロを作成したい
Lonさん
お忙しい中作成して頂き、ありがとうございました。
試したところ、無事に動きました!
とても助かりました!!これで作業ができそうです。

chibi-tomさん
アドバイス頂きありがとうございます。
lt2019でマクロが正常に動くときと動かない時があり、、、困っておりました。
自分なりにAutoCAD R/LT 2015以降の注意点を読んで修正しましたが、状況は変わらずでした。


みなさま、本当にありがとうございました。
  • AYARIO
  • 2019/08/21 (Wed) 10:48:30

返信フォーム






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