148.二点間中点オフセット | AutoCADマクロ屋本舗
[148]
二点間中点オフセット Ver2016
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;^Xオブジェクト選択^X\;select;nea;@;nea;@;;setenv;p1;$M="""$(getvar,lastpoint)^H^H""";;to;1,,,,,,)$(nth,$(getenv,to),,offset;;^X2つ目のオブジェクト選択^X\;setenv;to;1;select;nea;@;nea;@;;setenv;p2;$M="""$(getvar,lastpoint)^H^H""";zoom;e;dimradius;nea;@;nea;$(getenv,p1);$M="""""""$(if,$(getvar,cmdactive),;setenv;to;2,u;setenv;to;3)""""""",,,,,)$(nth,$(getenv,to),,,dimangular;nea;$(getenv,p1);nea;$(getenv,p2);$M="""$(if,$(getvar,cmdactive),;setenv;to;4,setenv;to;3)""",,,,)$(nth,$(getenv,to),,,,line;nea;$(getenv,p1);per;$(getenv,p2);;lengthen;l;;;;erase;l;;offset;$M="""$(/,$(getvar,perimeter),2)""";@;$(getenv,p1);,,,)$(nth,$(getenv,to),,,,,dist;nea;$(getenv,p2);int;@;$(getenv,p1);arc;nea;$(getenv,p2);c;int;$(getenv,p1);$(getenv,p2);nea;$(getenv,p1);setenv;to;5,,)$(nth,$(getenv,to),,,,,,lengthen;l;;;;erase;L;;setenv;ro;$M="""$(/,$(*,$(getvar,perimeter),180),$(*,$(getvar,distance),3.14159265))""";;to;6,)$(nth,$(getenv,to),,,,,,,;ro;$(if,$(<,180,$(getenv,ro)),$(-,$(getenv,ro),360),);-array;$(getenv,p2);;P;int;$(getenv,p1);$(getenv,p2);3;$M="""$(getenv,ro)""";y;erase;l;)^M

LT2016 動作確認済
※動かない場合は、マクロ中2ヵ所ある「lengthen;l;;;;」の後半のエンター";"を1つ省くと動く可能性あり


二点間中点オフセット
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;^Xオブジェクト選択^X\;select;nea;@;nea;@;;setenv;p1;$M="""$(getvar,lastpoint)^H^H""";;to;1,,,,,,)$(nth,$(getenv,to),,offset;;^X2つ目のオブジェクト選択^X\;setenv;to;1;select;nea;@;nea;@;;setenv;p2;$M="""$(getvar,lastpoint)^H^H""";zoom;e;dimradius;nea;@;nea;$(getenv,p1);$M="""""""$(if,$(getvar,cmdactive),;setenv;to;2,u;setenv;to;3)""""""",,,,,)$(nth,$(getenv,to),,,dimangular;nea;$(getenv,p1);nea;$(getenv,p2);$M="""$(if,$(getvar,cmdactive),;setenv;to;4,setenv;to;3)""",,,,)$(nth,$(getenv,to),,,,line;nea;$(getenv,p1);per;$(getenv,p2);;lengthen;l;;erase;l;;offset;$M="""$(/,$(getvar,perimeter),2)""";@;$(getenv,p1);,,,)$(nth,$(getenv,to),,,,,dist;nea;$(getenv,p2);int;@;$(getenv,p1);arc;nea;$(getenv,p2);c;int;$(getenv,p1);$(getenv,p2);nea;$(getenv,p1);setenv;to;5,,)$(nth,$(getenv,to),,,,,,lengthen;L;;erase;L;;setenv;ro;$M="""$(/,$(*,$(getvar,perimeter),180),$(*,$(getvar,distance),3.14159265))""";;to;6,)$(nth,$(getenv,to),,,,,,,;ro;$(if,$(<,180,$(getenv,ro)),$(-,$(getenv,ro),360),);-array;$(getenv,p2);;P;int;$(getenv,p1);$(getenv,p2);3;$M="""$(getenv,ro)""";y;erase;l;)^M

LT2004/LT2013 動作確認済
※R2010は、オブジェクトによっては動作が安定しません。

●使い方
1.1つ目のオブジェクトを選択
2.2つ目のオブジェクトを選択

※参考画像(赤色オブジェクトがオフセットされたオブジェクト)
$AutoCADマクロ屋本舗-148-01

▲注意
1.マクロ長の為、メニューファイルに直接コピペして下さい。
2.ブロックは選択しないでください。

■更新履歴
・2016/10/26 修正
 ※選択時のズームに対応 (「zoom;e;」を追記)
・2016/6/9  二点間中点オフセット Ver2016 UP
・2013/4/10 二点間中点オフセット UP


AutoCAD 2013/AutoCAD LT 2013 公式トレーニングガイド/オートデスク株式会社

¥3,990
Amazon.co.jp