AutoCADマクロ屋本舗 掲示板


ドーナツについて

1:ひろと :

2017/10/12 (Thu) 16:20:20

とってぃ様

以前AutoCAD LT 2004でAcadRemoconを使用し
ドーナツの内径と外径の一括変更等をしておりました。

先月からAutoCAD LT 2017を使用することになったんですが
AcadRemoconは使用できないとの記事を読みました。
オブジェクトプロパティ管理で変更することもできません。
使用頻度も高く大量のドーナツの径を変更することもあります。

LT2004で開いて変更後にLT2017で作業を進めるのも・・・
可能ではありますが現実的でないように思っています。

LT2017で同等のことができるようなマクロを作ることは
不可能なのでしょうか。

よろしくお願いいたします。


2:とってぃ :

2017/10/13 (Fri) 11:46:45

とりあえず、画層や色は無視して
置き換えるだけのマクロを作りましたのでお試しください。

♪ドーナツ置換マクロ
*^C^Coffset;;\;select;non;@;non;@;;donut;\\;ucs;ob;l;erase;p;;donut;;;non;0<0;;ucs;p^M

元のVBSが複数一括置換なのかどうか
もう少し詳しい情報が欲しいところです。
3:ひろと :

2017/10/13 (Fri) 12:04:37

http://bbs2.fc2.com//bbs/img/_816400/816339/full/816339_1507863878.jpg とってぃ様

ありがとうございます。

元のVBS情報です。
・起動するとダイアログが表示されます。
・[内径(数値入力)],[外径(数値入力)],[作図],[変更],[計測],[終了]のボタン。
・内径と外径に数値を入力すると[作図]と[変更]が使えます。
・[計測]でドーナツをクリックすると[内径]と[外径]に数値が表示されます。

この中で[変更]が使えると助かります。
4:とってぃ :

2017/10/16 (Mon) 08:03:22

とりあえず
上記マクロではダメでしたでしょうか?
5:ひろと :

2017/10/16 (Mon) 09:05:44

とってぃ様

ドーナツを複数作成しマクロを実行したところ・・・
まず、1回のドーナツコマンドで複数作成
このとき最初に作成したドーナツを選択すると変更されました。
それ以外のドーナツを選択すると、最初に作成したドーナツが変更されます。

マクロを終了し再度実行すると・・・
選択したドーナツが消えます。

よろしくお願いします。
6:Lon :

2017/10/16 (Mon) 09:52:29

オフセットコマンドで作ってみました。

複数一括処理はできません。
ドーナツ以外の物を選ぶと、どうなるか判りません。(消えて無くなる可能性が高いので気を付けて)
何もない所をクリックすると、内径外径の指定に戻ります。

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;内径;\;外径;\$M=""";r;$(/,$(+,$(getenv,外径),$(getenv,内径)),4);""";to;1,,)$(nth,$(getenv,to),,copy;\non;@;;non;@;non;@;erase;p;;dist;nea;@;cen;@;setenv;to;$M="""$(if,$(-,$(getvar,distance),$(getenv,r)),2,1)""",)$(nth,$(getenv,to),,,select;l;;ucs;e;l;offset;t;@;non;$(getenv,r)<0;;erase;p;;pedit;l;w;$(/,$(-,$(getenv,外径),$(getenv,内径)),2);;ucs;p;setenv;to;1)^M
7:Lon :

2017/10/16 (Mon) 10:06:53

余談ですが。

>ドーナツの内径と外径の一括変更

私も十数年前は同じような作業をしていました。
この作業が面倒なので、ドーナツをブロック化してそのブロックを配置する事にしました。
ブロックを再定義(最近のバージョンならブロックエディタで編集)すれば、全てのドーナツの大きさを一括で変えられます。

この様な運用が可能であるなら、ご参考に。
8:とってぃ :

2017/10/16 (Mon) 10:54:52

↑上記Lonさんのマクロで解決するかもですが一応

♪ドーナツ置換マクロ 改
*^C^Coffset;;\;select;non;@;non;@;;copy;p;;non;@;non;@;erase;p;;donut;\\;ucs;ob;l;erase;p;;donut;;;non;0<0;;ucs;p^M

ワタシのも修正しておきます。
9:ひろと :

2017/10/16 (Mon) 17:10:20

とってぃ様
Lon様

ドーナツ置換マクロありがとうございました。
早速使わせてもらっています。

このマクロですが、複数選択にすると難しいのでしょうか。

よろしくお願いいたします。
10:とってぃ :

2017/10/17 (Tue) 08:02:37

複数選択した全てのドーナツを
同じ内径/外径にするなら可能です。

ちょっと作ってみますが
仕事が立て込んでいますので
しばらくお待ちください。
11:とってぃ :

2017/10/17 (Tue) 08:42:38

って言いつつ
ちょっと空いたので作ってみました。


♪ドーナツ書き換えマクロ ※複数選択版
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;cv;$(getenv,CreateViewports);select;\zoom;e;donut;\\;copybase;non;0<0;p;;erase;p;;setenv;to;1,,,,)$(nth,$(getenv,to),,;to;2;;CreateViewports;0;-layout;n;L-DONUT;;s;L-DONUT;pasteblock;non;0<0;zoom;a;explode;l,,,)$(nth,$(getenv,to),,,;to;4;select;l;;ucs;ob;l;erase;p;;donut;;;non;0<0;;ucs;p;copybase;non;0<0;l;;erase;p;;setenv;to;3,,)$(nth,$(getenv,to),,,,;to;2;-layout;s;Model;pasteclip;non;0<0;-layout;s;L-DONUT,)$(nth,$(getenv,to),,,,,-layout;s;Model;;d;L-DONUT;setenv;CreateViewports;$(getenv,cv))^M

2013動作確認済み

●使い方
1.ドーナツ選択 ※複数可
2.ドーナツ内径記入
3.ドーナツ外径記入 ⇒ 繰返し1へ

▲注意
1.ドーナツ以外選択しないで下さい。
2.ダミーでレイアウト名「L-DONUT」を使用しています。
  同名のレイアウトをお使いの場合は、マクロ中の「L-DONUT」を別名に書き換えて下さい。


お試しください。
12:ひろと :

2017/10/19 (Thu) 08:44:03

とってぃ様

遅くなってすみません。

複数置換ありがとうございます。

>ドーナツ以外選択しないで下さい
 ↑
まったく問題ないです。
思い通りに動作するので大変便利です。

お忙しい中ありがとうございました。

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

Copyright © 1999- FC2, inc All Rights Reserved.