AutoCADマクロ屋本舗 掲示板


116.四角形内均等配列複写のマクロについて

1:aki :

2024/05/16 (Thu) 09:46:51

https://bbs2.fc2.com//bbs/img/_816400/816339/full/816339_1715820411.png おはようございます。

116.四角形内均等配列複写についてお願いします。  鉛直な図形内には配列できますが、傾いた図形の中に配列複写したいのです。

 傾いた図形をなぞり配列複写したいのです。

 ご教授いただけれは゛と思います。

 autocad2024をしようしています。 よろしくお願いします。
2:LUNE :

2024/05/16 (Thu) 10:27:10

https://bbs2.fc2.com//bbs/img/_816400/816339/full/816339_1715822830.png マクロ実行前に、UCSを傾ければできます。
図示された状態なら、矩形のどちらかの辺がX軸になるように、UCSを設定します。

表示タブ→UCSパネル→左側に縦3つ並ぶ3つ目のアイコンを展開すると、図のようなアイコンがあります。
これが、選択オブジェクトにUCSを合わせるコマンドです。
これを選択して、矩形のどちらかの辺にカーソルを合わせてクリックします。
そうすると、UCSが矩形と同じ傾きになります。
この状態で、マクロを実行してください。

マクロが終了したら、同じUCSパネルの左から2列目真ん中のUNDOと同じ矢印があるアイコンをクリックします。
これで、UCSが元に戻ります。

3:aki :

2024/05/16 (Thu) 13:59:26

LUNE様

ありがとうございます。
UCSをオブジェクトに合わせて実行するのですね。(LUNE様の手順通りにやっみました。できますね。)

良い方法だと思いますが、マクロ化はできないでしょうか。

よろしくお願いします。
4:LUNE :

2024/05/16 (Thu) 14:36:36

配列複写の「縦・横」の個数を記入したあとに、UCSを合わせるオブジェクト選択、そして配列複写するオブジェクトを選択・・・の順になります。
水平・垂直の場合も、UCSを合わせるオブジェクトを選択してください。

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;v1;縦^X\;v2;横^X\ucs;ob;\select;\copybase;\p;;id;\setenv;to;1,;p1;$(getvar,lastpoint);pasteblock;non;@;rectang;non;@;\ucs;ob;l;erase;p;l;r;p;;id;non;@;setenv;to;2,,,)$(nth,$(getenv,to),,,;x1;$(*,$(index,1,$(getvar,lastpoint)),$(if,$(>,$(index,1,$(getvar,lastpoint)),0),1,-1));;y1;$(*,$(index,0,$(getvar,lastpoint)),$(if,$(>,$(index,0,$(getvar,lastpoint)),0),1,-1));;to;3,,)$(nth,$(getenv,to),,,,;sw;$(if,$(>,$(index,1,$(getvar,lastpoint)),0),0,1;ucs;x;180);explode;L;move;p;;non;0<0;non;$(/,$(/,$(getenv,y1),$(getenv,v1)),2)","$(/,$(/,$(getenv,x1),$(getenv,v2)),2);setenv;to;4,)$(nth,$(getenv,to),,,,,-array;p;;r;$(getenv,v2);$(getenv,v1);$(/,$(getenv,x1),$(getenv,v2));$(/,$(getenv,y1),$(getenv,v1));ucs;p;;p;$(if,$(getenv,sw),;p;,)id;)^M
5:aki :

2024/05/16 (Thu) 16:00:30

LUNE様
ありがとうございます。

マクロを登録して実行しますと
1.コマンド実行
2.配列個数入力(縦)
3.配列個数入力(横)
4.UCSを合わせるオブジェクト指定
5.ここで配列用のオブジェクト選択になるはずですが、また2と3と4に戻ってしまい
 配列オブジェクトを選択できません。

説明下手で申し訳ないですが、よろしくお願いいたします。

SETENV
変数名を入力: v1
値 <2>: 縦*削除*
縦2
コマンド:
コマンド:
SETENV
変数名を入力: v2
値 <2>: 横*削除*
横2
コマンド:
コマンド: ucs
現在の UCS 名: *ワールド*
UCS 原点を指定 または [面(F)/名前の付いた UCS(NA)/オブジェクト(OB)/直前(P)/ビュー(V)/ワールド(W)/X/Y/Z/Z 軸(ZA)] <ワールド>: ob
UCS を位置合わせするオブジェクトを選択:
コマンド: select
オブジェクトを選択:
コマンド:
コマンド:
6:LUNE :

2024/05/16 (Thu) 16:13:19

登録したマクロの最後に、余計なスペースなどがありませんか?
7:aki :

2024/05/16 (Thu) 16:36:30

LUNE様

マクロも貼り付けなおしましたが、現況は変わりません

申し訳ないですが よろしくお願いします。
8:LUNE :

2024/05/16 (Thu) 17:02:43

>5.ここで配列用のオブジェクト選択になるはずですが、
コマンドラインを見ると、
コマンド: select
オブジェクトを選択:
と表示されているので、selectコマンドは実行されているようです。

貼り付けたマクロを再確認してみてください。
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;v1;縦^X\;v2;横^X\ucs;ob;\select
このあとに半角スペース入っていませんか?

一度、マクロ全部をメモ帳に貼り付け、書式→右端で折り返すのチェックを外して、1行に表示されるか確認してください。
表示されなければどこかに改行があるので、改行を削除してください。

また、編集→検索で半角スペースを検索してみてください。
もし、半角スペースがあったら、置換で検索文字列を半角スペース、置換後文字列を空欄にして、半角スペースを削除してください。
9:aki :

2024/05/16 (Thu) 17:31:21

LUNE様

貼り付けたマクロを確認しましたが、半角スペースなどはないです。

現況は変わりません。

10:chibi-tom :

2024/05/17 (Fri) 08:36:38

横から失礼します

コマンド: select
オブジェクトを選択:

ここで右クリック及びエンターキーを押していませんか?
その場合akiさんがおっしゃるように戻りますね

実際はここで配列複写をするオブジェクトの選択です(116.四角形内均等配列複写の工程に戻ります)
もう一度確認してみてください
11:aki :

2024/05/17 (Fri) 09:15:08

chibi-tom様
ありがとうございます。
ご教授の通り、私はエンターを押していました。エンターを押さずにそのままオブジェクトを選択すれば完璧に動作しました。
私の不手際にもかかわらず、適切なご教授に感謝いたします。本当にありがとうございます。

LUNE様
ご苦心いただきましたのに、数々の失礼をおゆるしください。私の無知から大変ご面倒をおかけいたしました。

ご両人様の 益々のご活躍を !!! ありがとうございました。

  • 名前: E-mail(省略可):
  • 画像:

Copyright © 1999- FC2, inc All Rights Reserved.