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

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

ブロックの分解について
いまだに・・・ですがLT2004ユーザーです。
ご教授お願いいたします。

IF文にて処理の分岐を行いたいのですが・・・
ブロック挿入した図形を1つ選択したときと複数選択して
XPLODEで画層名、色、線種の指定での分解の処理を
1つのツールボタンで行いたいと思います。

よろしくお願いいたします。
  • マクロ初心者
  • 2014/12/12 (Fri) 14:16:04
Re: ブロックの分解について
オブジェクトの指定での選択に関しては
マクロでは不可能です。

マクロは、コマンドを羅列するだけの
簡易的なプログラムですので。

図面内のオブジェクト指定選択の場合は
クイック選択かフィルター選択で行うのが通常です。
一度お試し下さい。
  • とってぃ
  • 2014/12/13 (Sat) 23:05:28
Re: ブロックの分解について
とってぃ様

お返事ありがとうございます。
遅くなって申し訳ありません。

マクロでは不可能なんですね・・・

DIESEL式だと可能なのでしょうか。
こちらもド素人なもので申し訳ありません。

よろしくお願いいたします。
  • マクロ初心者
  • 2014/12/18 (Thu) 18:52:23
Re: ブロックの分解について
マクロ初心者さん

勘違いしていました。
xplodeならできますね。

ただし、xplode自体に、コマンドオプションで
画層名、色、線種の指定が可能ですよ。

マクロにしてもしなくても、操作性はあまり変わらないように思いますがいかがでしょうか。

ちなみに
マクロ=DIESELマクロです。
  • とってぃ
  • 2014/12/19 (Fri) 08:18:35
Re: ブロックの分解について
とってぃ様

お返事ありがとうございます。

ブロックが1つの場合
xplodeのオプションで画層名、色、線種の指定をします。

ブロックが複数の場合
xplodeのオプションで個別/一括の区別が出てきます。

別々のボタンでのマクロは作ることができたのですが、
1つのボタンで出来るようにしたいと考えております。
IF文で処理を変えることはできないのでしょうか。

よろしくお願いいたします。
  • マクロ初心者
  • 2014/12/19 (Fri) 11:36:41
Re: ブロックの分解について
マクロ初心者さん

ブロックが1つの場合と複数の場合で
どのような処理をしたいのでしょうか?
いまいち理解しておりません。

どの様な分岐をお望みでしょうか。
  • とってぃ
  • 2014/12/19 (Fri) 13:57:24
Re: ブロックの分解について
とってぃ様

お返事ありがとうございます。
遅くなり申し訳ありません。

ブロックが1つの場合
xplodeのオプションで
画層は現在層
色、線種はByLayer
での分解処理をしたいと考えています。

ブロックが複数の場合
xplodeのオプションで
個別ではなく常に一括
画層は現在層
色、線種はByLayer
での分解処理をしたいと考えています。

個別にボタンを作成すれば済んでしまうことなんですが
少しでも操作の煩わしさを解消したくて・・・

説明不足な上、何度も申し訳ありません。

  • マクロ初心者
  • 2015/01/14 (Wed) 16:45:48
Re: ブロックの分解について
作ってみました。


♪分解(画層:現在層 色・線種:ByLayer)
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),select;\$M="""$(if,$(getvar,cmdactive),\,)"""undo;be;copybase;non;0<0;p;;erase;p;;-layout;d;XPD;setenv;to;1,;to;2;;cv;$(getenv,CreateViewports);;CreateViewports;0;-layout;n;XPD;;s;XPD;pasteblock;non;0<0;zoom;a;explode;l,,)$(nth,$(getenv,to),,,;to;3;xplode;p;;;$M="""$(if,$(getvar,cmdactive),;,)"""chprop;all;;LA;$(getvar,clayer);C;ByLayer;LT;ByLayer;;copybase;non;0<0;all;;-layout;s;Model;pasteclip;non;0<0;-layout;s;XPD,)$(nth,$(getenv,to),,,,-layout;s;Model;;d;XPD;setenv;CreateViewports;$(getenv,cv))^M

LT2004にて動作確認済み

●使い方
1.オブジェクト選択

▲注意
1.レイアウト"XPD"をダミーで作成し、削除しています。
  通常使用されるレイアウトが同じ名前の場合、マクロ中の"XPD"を変えてお使いください。
2.モデル空間内のオブジェクトを選択して下さい。



  • とってぃ
  • 2015/01/15 (Thu) 13:30:21
Re: ブロックの分解について
とってぃ様

マクロを作成していただき、ありがとうございます。

ですが・・・
マクロをコピペにて登録しようとしたのですが
最後まで入りきらないんです。
登録の仕方が間違っているのでしょうか。

カスタマイズ→ボタンプロパティ内のマクロに登録で
間違いないですよね?
違う方法があるのでしょうか。

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

  • マクロ初心者
  • 2015/01/22 (Thu) 08:24:19
Re: ブロックの分解について
バージョン2005までの場合

長いマクロはカスタマイズダイアログに貼り付けできない事が多いです。

その為、当HP右メニュー

●メニューファイルに直接張付ける方法
http://ameblo.jp/totthi-macro/entry-10895260108.html

こちらを参照願います。
  • とってぃ
  • 2015/01/22 (Thu) 09:34:50
Re: ブロックの分解について
とってぃ様

「メニューファイルに直接張付ける方法」を確認しながら
登録することに成功いたしました。

早速使ってみました。
思っていた処理で満足しております。
ありがとうございました。

1つだけお願いが・・・
ブロック登録時の操作ミスなのか分からないのですが
処理の終了後にポリラインとして残ってしまうようです。
大変申し訳ないのですが、この処理を行って繰り返しの前に
EXPLODEを追加することは可能でしょうか。

何度も申し訳ありません。
よろしくお願いいたします。

  • マクロ初心者
  • 2015/01/29 (Thu) 16:40:13
Re: ブロックの分解について
とりあえず作ってみました。
お試しください。

♪分解(画層:現在層 色・線種:ByLayer)2
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),select;\$M="""$(if,$(getvar,cmdactive),\,)"""undo;be;copybase;non;0<0;p;;erase;p;;-layout;d;XPD;setenv;to;1,;to;2;;cv;$(getenv,CreateViewports);;CreateViewports;0;-layout;n;XPD;;s;XPD;pasteblock;non;0<0;zoom;a;explode;l,,)$(nth,$(getenv,to),,,;to;3;xplode;p;;;$M="""$(if,$(getvar,cmdactive),;,)""";p;;chprop;all;;LA;$(getvar,clayer);C;ByLayer;LT;ByLayer;;copybase;non;0<0;all;;-layout;s;Model;pasteclip;non;0<0;-layout;s;XPD,)$(nth,$(getenv,to),,,,-layout;s;Model;;d;XPD;setenv;CreateViewports;$(getenv,cv))^M
  • とってぃ
  • 2015/01/30 (Fri) 08:18:52

返信フォーム






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