●簡易四則計算マクロ | AutoCADマクロ屋本舗
【特殊】
■簡易四則計算マクロ


本サイトの「マクロ屋掲示板」に、四則計算マクロの修正依頼 が有りました。

そのマクロを使用する事で、マクロ中での簡易的な四則計算が可能です。
以下に例を示します。

【マクロ例1】
オフセット
*^C^Csetenv;v1;\;v0;$M=$($(substr,$(getenv,v1)/1,$(+,1,$(strlen,$(+,$(getenv,v1)))),1),$(+,$(getenv,v1)),$(+,$(substr,$(getenv,v1)/1,$(+,2,$(strlen,$(+,$(getenv,v1)))))));offset;$M="$(getenv,v0)";\
オフセット[nthバージョン]
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;v1;\;v0;$M="""$($(substr,$(getenv,v1)/1,$(+,1,$(strlen,$(+,$(getenv,v1)))),1),$(+,$(getenv,v1)),$(+,$(substr,$(getenv,v1)/1,$(+,2,$(strlen,$(+,$(getenv,v1)))))))""";;to;1,)$(nth,$(getenv,to),,offset;$(getenv,v0))^M


LT2000/LT2004/LT2006 動作確認済み


また、たちばなさんが、マクロの解読を試みて下さいました。
その結果、以下の様にする事で、さらにマクロを短くする事が可能です。

※最初に、下の5行を直接コマンドラインに、一度に貼り付けて下さい。
setenv
-SISOKU
"$M=$($(substr,$(getenv,v1)/1,$(+,1,$(strlen,$(+,$(getenv,v1)))),1),$(+,$(getenv,v1)),$(+,$(substr,$(getenv,v1)/1,$(+,2,$(strlen,$(+,$(getenv,v1)))))))"


その後、以下のマクロ例を実行してください。

【マクロ例2】
オフセット
*^C^Csetenv;v1;\offset;$M=$(getenv,-sisoku);


LT2000/LT2002 動作確認済み LT2004 動作不可

◆説明
最初に

SETENV 変数名を入力: v1
値 <>:


と、コマンドラインに表示されます。

ここで、「5/2」や「4*3」「10-3」「5+4」の様に
テンキーでの四則計算式を記入することが可能です。

また、通常の数値記入小数点の計算も可能です。


ちなみに・・・
R版及びLT2006以降では、この四則計算マクロを使わなくても
calコマンドによる四則計算が可能です。


▲注意
1.あくまでも、簡易的な四則計算なので
  「20/2*5」や「5*2+6」等の計算は行なえません。

2.【マクロ例1】は、ほとんどのバージョンで動作するみたいですが
  【マクロ例2】は、バージョンによって、動作しない場合があります。


■コメント
マクロじゃ無理と思っていた四則計算が
このマクロを付加することで可能となります。

たちばなさんの御協力に感謝します。

しかし、この大元のマクロを考えた方は凄いですね・・・(^^;




使える! AutoCAD & LT カスタマイズブック 使えるカスタムプログラム100、使える.../ソフトバンククリエイティブ

¥3,360
Amazon.co.jp