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

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

ドーナツについて
とってぃ様

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

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

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

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

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


  • ひろと
  • 2017/10/12 (Thu) 16:20:20
Re: ドーナツについて
とりあえず、画層や色は無視して
置き換えるだけのマクロを作りましたのでお試しください。

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

元のVBSが複数一括置換なのかどうか
もう少し詳しい情報が欲しいところです。
  • とってぃ
  • 2017/10/13 (Fri) 11:46:45
Re: ドーナツについて
とってぃ様

ありがとうございます。

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

この中で[変更]が使えると助かります。
  • ひろと
  • 2017/10/13 (Fri) 12:04:37
Re: ドーナツについて
とりあえず
上記マクロではダメでしたでしょうか?
  • とってぃ
  • 2017/10/16 (Mon) 08:03:22
Re: ドーナツについて
とってぃ様

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

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

よろしくお願いします。
  • ひろと
  • 2017/10/16 (Mon) 09:05:44
Re: ドーナツについて
オフセットコマンドで作ってみました。

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

*^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
  • Lon
  • 2017/10/16 (Mon) 09:52:29
Re: ドーナツについて
余談ですが。

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

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

この様な運用が可能であるなら、ご参考に。
  • Lon
  • 2017/10/16 (Mon) 10:06:53
Re: ドーナツについて
↑上記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

ワタシのも修正しておきます。
  • とってぃ
  • 2017/10/16 (Mon) 10:54:52
Re: ドーナツについて
とってぃ様
Lon様

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

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

よろしくお願いいたします。
  • ひろと
  • 2017/10/16 (Mon) 17:10:20
Re: ドーナツについて
複数選択した全てのドーナツを
同じ内径/外径にするなら可能です。

ちょっと作ってみますが
仕事が立て込んでいますので
しばらくお待ちください。
  • とってぃ
  • 2017/10/17 (Tue) 08:02:37
Re: ドーナツについて
って言いつつ
ちょっと空いたので作ってみました。


♪ドーナツ書き換えマクロ ※複数選択版
*^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」を別名に書き換えて下さい。


お試しください。
  • とってぃ
  • 2017/10/17 (Tue) 08:42:38
Re: ドーナツについて
とってぃ様

遅くなってすみません。

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

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

お忙しい中ありがとうございました。
  • ひろと
  • 2017/10/19 (Thu) 08:44:03
Re: ドーナツについて
とってぃ様

ドーナツ一括変更のマクロ実行してドーナツを選択後ですが
ZOOMコマンドで図面全体になります。
変更後も図面全体のままなので、作図中の場所を探すようになってしまいます。

ZOOMコマンドの部分をマクロから無くすことは可能でしょうか。

よろしくお願いいたします。
  • ひろと
  • 2017/10/27 (Fri) 11:38:28
Re: ドーナツについて
ZOOMコマンドの部分をマクロから無くすと正常に処理できない事が多くなるので、
無くさずに、元の位置へと戻る処理にしてみました。

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;cv;$(getenv,CreateViewports);select;\zoom;e;donut;\\;copybase;non;0<0;p;;erase;p;;zoom;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
  • Lon
  • 2017/10/27 (Fri) 13:20:28

返信フォーム






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