AutoCADマクロ屋本舗 -35ページ目
[134]
交点指定ブロック挿入 Ver.2018 [2018/05/22 追記]
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;bl;「ブロック名」;;so;$(getvar,sortents);;sw;0;;to;1,ray;int;【$(if,$(getenv,sw),2点間自動挿入,1点挿入)】^X\$M="""$(if,$(getvar,cmdactive),;setenv;to;2,setenv;sw;$(if,$(getenv,sw),0,1);;to;1)""",,,,,)$(nth,$(getenv,to),,,$(if,$(getenv,sw),sortents;127;line;non;@;int;\;ucs;ob;l;zoom;@;-10<0;setenv;to;4,setenv;to;3),-insert;$(getenv,bl);s;1;r;0;non;@,,,)$(nth,$(getenv,to),,,,,;to;5;lengthen;dy;;;non;0<0;;;setenv;l1;$M="""$(getvar,perimeter);trim;c;non;0<0;non;$(getvar,perimeter)<0;;non;$(-,$(getvar,perimeter),0.1)"""<0;,;to;6;lengthen;dy;;;non;0<0;;;copy;p;;non;@;non;@;erase;p;,)$(nth,$(getenv,to),,,,,,,-insert;$(getenv,bl);s;1;non;$(getenv,l1)<0;0;setenv;to;$M="""$(if,$(=,$(getenv,l1),$(getvar,perimeter)),1;erase;non;0<0;;-insert;$(getenv,bl);s;1;non;0<0;0;ucs;p;zoom;p;sortents;$(getenv,so),4)""")^M

2018 動作確認済


交点指定ブロック挿入 Ver.2016 構築線対応 [2016/6/9 修正]
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;bl;「ブロック名」;;so;$(getvar,sortents);;sw;0;;to;1,ray;int;【$(if,$(getenv,sw),2点間自動挿入,1点挿入)】^X\$M="""$(if,$(getvar,cmdactive),;setenv;to;2,setenv;sw;$(if,$(getenv,sw),0,1);;to;1)""",,,,,)$(nth,$(getenv,to),,,$(if,$(getenv,sw),sortents;127;line;non;@;int;\;ucs;ob;l;zoom;@;-10<0;setenv;to;4,setenv;to;3),-insert;$(getenv,bl);s;1;r;0;non;@;explode;l,,,)$(nth,$(getenv,to),,,,,;to;5;lengthen;non;0<0;;;;setenv;l1;$M="""$(getvar,perimeter);trim;c;non;0<0;non;$(getvar,perimeter)<0;;non;$(-,$(getvar,perimeter),0.1)"""<0;,;to;6;lengthen;non;0<0;;;;copy;p;;non;@;non;@;erase;p;,)$(nth,$(getenv,to),,,,,,,-insert;$(getenv,bl);s;1;non;$(getenv,l1)<0;0;explode;l;setenv;to;$M="""$(if,$(=,$(getenv,l1),$(getvar,perimeter)),1;erase;non;0<0;;-insert;$(getenv,bl);s;1;non;0<0;0;explode;l;ucs;p;zoom;p;sortents;$(getenv,so),4)""")^M

2016 動作確認済
※LT2013以前は不動作 (その他バージョンでも可能性あり)


交点指定ブロック挿入 Ver2013 構築線対応 [2016/6/9 追加]
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;bl;「ブロック名」;;so;$(getvar,sortents);;sw;0;;to;1,ray;int;【$(if,$(getenv,sw),2点間自動挿入,1点挿入)】^X\$M="""$(if,$(getvar,cmdactive),;setenv;to;2,setenv;sw;$(if,$(getenv,sw),0,1);;to;1)""",,,,,)$(nth,$(getenv,to),,,$(if,$(getenv,sw),sortents;127;line;non;@;int;\;ucs;ob;l;zoom;@;-10<0;setenv;to;4,setenv;to;3),-insert;$(getenv,bl);s;1;r;0;non;@,,,)$(nth,$(getenv,to),,,,,;to;5;lengthen;non;0<0;;setenv;l1;$M="""$(getvar,perimeter);trim;c;non;0<0;non;$(getvar,perimeter)<0;;non;$(-,$(getvar,perimeter),0.1)"""<0;,;to;6;lengthen;non;0<0;;copy;p;;non;@;non;@;erase;p;,)$(nth,$(getenv,to),,,,,,,-insert;$(getenv,bl);s;1;non;$(getenv,l1)<0;0;setenv;to;$M="""$(if,$(=,$(getenv,l1),$(getvar,perimeter)),1;erase;non;0<0;;-insert;$(getenv,bl);s;1;non;0<0;0;ucs;p;zoom;p;sortents;$(getenv,so),4)""")^M

LT2013 動作確認済
※LT2004及び2016以降は不具合の可能性あり (その他バージョンでも不具合の可能性あり)


交点指定ブロック挿入(1点/2点間自動) [2008/3/4 UP]
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;bl;「ブロック名」;;so;$(getvar,sortents);;sw;0;;to;1,ray;int;【$(if,$(getenv,sw),2点間自動挿入,1点挿入)】^X\$M="""$(if,$(getvar,cmdactive),;setenv;to;2,setenv;sw;$(if,$(getenv,sw),0,1);;to;1)""",,,,,)$(nth,$(getenv,to),,,$(if,$(getenv,sw),sortents;127;line;non;@;int;\;ucs;ob;l;zoom;@;-10<0;setenv;to;4,setenv;to;3),-insert;$(getenv,bl);s;1;r;0;non;@,,,)$(nth,$(getenv,to),,,,,;to;5;lengthen;non;0<0;;setenv;l1;$M="""$(getvar,perimeter);trim;c;non;0<0;non;$(getvar,perimeter)<0;;non;$(-,$(getvar,perimeter),0.1)"""<0;,;to;6;erase;l;;lengthen;non;0<0;;oops;copy;p;;non;@;non;@;erase;p;,)$(nth,$(getenv,to),,,,,,,-insert;$(getenv,bl);s;1;non;$(getenv,l1)<0;0;setenv;to;$M="""$(if,$(=,$(getenv,l1),$(getvar,perimeter)),1;erase;non;0<0;;-insert;$(getenv,bl);s;1;non;0<0;0;ucs;p;zoom;p;sortents;$(getenv,so),4)""")^M

LT2004/LT2013 R2005/R2006/R2007 動作確認済


●使い方
※最初に「ブロック名」の部分を、"挿入するブロック名"に書換えてください。
1.交点を指定
 ※この時右クリックで、1点挿入⇔2点間交点自動を切替出来ます。→ 2点間自動へ

~2点間自動の場合~
1.最初の交点を指定
2.最終交点を指定
(2つの交点間にある全ての交点にブロック挿入します)

▲注意
1.最終交点指定時に途中キャンセルすると、"sortents"の値が"127"のままとなります。
2.2点間自動の場合、挿入されるブロックは"2交点指定時の傾き"となります。
3.マクロが長い為、カスタマイズダイアログに直接貼付け出来ない場合は
  メニューファイルに直接貼り付けて下さい。

■更新履歴
・2018/05/22 Ver.2018 追記
・2016/06/09 Ver.2013・2016 構築線対応版 追記
・2008/03/04 UP



AutoCADではじめる建築パース制作/秀和システム

¥3,990
Amazon.co.jp

[133]
文字二重線付加 Ver.2017 [2017/11/30 UP]
*^C^C$m=setenv;to;0;$(nth,$(getenv,to),offset;;\;select;non;@;non;@;;copy;p;;non;@;non;@;erase;p;;undo;be;setenv;to;1;-attedit;y;;;;non;@;non;@;;$M="""$(if,$(getvar,cmdactive),;setenv;to;0,)""",,,,,)$(nth,$(getenv,to),,;to;2;explode;l;"""$m=$(if,$(getvar,cmdactive),;)"""explode;l;"""""""$m=$(if,$(getvar,cmdactive),;)"""""""select;l;,,,,)$(nth,$(getenv,to),,,;to;3;ucs;e;l;sortents;127;line;non;@;non;@0.05<0;;extend;p;;f;non;@-0.02",0.1;non;@0,-0.2;;f;non;@-0.02,0.1;non;@0,"-0.2;;,,,)$(nth,$(getenv,to),,,,;to;4;line;non;@;non;@0.05<90;;extend;p;;f;non;@0.1",-0.02;non;@-0.2,0;;f;non;@0.1,-0.02;non;@-0.2,"0;;;lengthen;dy;;;l;;;ucs;e;l;erase;l;,,)$(nth,$(getenv,to),,,,,chprop;l;;c;1;;move;p;;non;@-0.05<0;non;$(*,$(getvar,perimeter),0.37)<0;copy;p;;non;@;non;$(*,$(getvar,perimeter),0.63)<0;ucs;p;;p;copybase;0<0;p;l;;undo;e;u;pasteclip;non;0<0)^M

2017 動作確認済


文字二重線付加 [2008/2/12 UP]
*^C^C$m=setenv;to;0;$(nth,$(getenv,to),offset;;\;select;non;@;non;@;;copy;p;;non;@;non;@;erase;p;;undo;be;setenv;to;1;-attedit;y;;;;non;@;non;@;;$M="""$(if,$(getvar,cmdactive),;setenv;to;0,)""",,,,,)$(nth,$(getenv,to),,;to;2;explode;l;"""$m=$(if,$(getvar,cmdactive),;)"""explode;l;"""""""$m=$(if,$(getvar,cmdactive),;)"""""""select;l;,,,,)$(nth,$(getenv,to),,,;to;3;ucs;e;l;sortents;127;line;non;@;non;@0.05<0;;extend;p;;f;non;@-0.02",0.1;non;@0,-0.2;;f;non;@-0.02,0.1;non;@0,"-0.2;;,,,)$(nth,$(getenv,to),,,,;to;4;line;non;@;non;@0.05<90;;extend;p;;f;non;@0.1",-0.02;non;@-0.2,0;;f;non;@0.1,-0.02;non;@-0.2,"0;;;lengthen;l;;ucs;e;l;erase;l;,,)$(nth,$(getenv,to),,,,,chprop;l;;c;1;;move;p;;non;@-0.05<0;non;$(*,$(getvar,perimeter),0.37)<0;copy;p;;non;@;non;$(*,$(getvar,perimeter),0.63)<0;ucs;p;;p;copybase;0<0;p;l;;undo;e;u;pasteclip;non;0<0)^M

[動作確認済]
LT2000/LT2004/LT2007/LT2008
R2004/R2005/R2006/R2007/R2008


●使い方
1.文字を選択
※ただし、ブロック化された文字を選択しても、二重線は引けます。
尚、属性文字に関しては、誤って選択しても、二重線が引けないように
対応しています。

▲注意
1.文字以外を選択しないで下さい。
2.マクロが長い為、カスタマイズダイアログに直接貼付け出来ない場合は
  メニューファイルに直接貼り付けて下さい。

■更新履歴
・2017/11/30
バージョン2017対応マクロ追加

・2008/2/12
以前、某掲示板にて、[ 文字に消し線(二重線)を引く ]マクロを
テリー大先生が作成されていました。
また、Ver.2007用に修正して欲しいとの要望がありましたので
試行錯誤しながらですが、どうにか修正出来ました。

上記のマクロは、2000i以前のバージョンでは使用出来ませんので
今回、修正して、2000i以前のバージョンでも使える様に修正しました。
その代わり、文字・属性以外のオブジェクトを選択すると
マクロが途中で止まりますので注意して下さい。

で、その後更に・・・
"属性を誤って選択した場合、分解されたまま止まってしまう"部分を修正しています。
お試し下さい。

AutoCAD入門―よくわかる2次元&3次元CADシステム/日刊工業新聞社

¥3,360
Amazon.co.jp

[132]
属性値ファイル名変更(自動) [2008/1/23 UP]
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;att2;「属性名」;zoom;w;non;0","0;non;$(getvar,limmax);setenv;to;1,;to;2;-attedit;y;*;$(getenv,att2);;w;non;0","0;non;$(getvar,limmax);;v;r;;,)$(nth,$(getenv,to),,,-attedit;n;n;*;$(getenv,att2);;;$(substr,$(getvar,dwgname),1)^H^H^H^H;GRAPHSCR;id;^C;^Z)^M


LT2004 R2005/R2006 動作確認済


●使い方
※最初に「属性名」の部分を、"変更する属性名"に書換えてください。
1.マクロを実行すると、「属性名」の属性値がファイル名に変更されます。
 ※図面範囲内の属性値を変更します。
尚、図面ファイル名が、"00_表紙.dwg" の様な場合の
前3文字"00_"を記入したくない場合は、マクロ中の最後の方の
$(substr,$(getvar,dwgname),1)」の数値"1"を"4"にすると、
"00_"は記入されません。
使用されている図面ファイル名に合わせて、数値を変更してお使い下さい。

▲注意
1.図面範囲外の属性値は変更しません。
  LIMITS[図面範囲設定]コマンドで、図面範囲を指定して下さい。
  尚、図面範囲内に、同じ属性名が2つ以上ある場合は、1つしか変更されません。
2.属性名が長過ぎる、マクロで使用出来ない全角文字を使用している等の場合
  上記マクロでは動作しない場合もあります。

■コメント
自分の場合、図面枠の"図面名称"等の、属性値変更に使用しています。
文字記入しなくていいんで、結構便利です♪

※尚、手動変更マクロは、以下を参照

属性値ファイル名変更(手動)
*^C^Coffset;;^X属性を選択^X\;select;non;@;non;@;;-attedit;y;;;;@;;v;r;$M=$(substr,$(getvar,dwgname),1)^H^H^H^H;^M



すぐに使えて役に立つ!AutoLISP with Dialo/鳥影社

¥3,570
Amazon.co.jp