↓こんなマクロが有るとします。
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),・・・・setenv;to;1,,,,)
$(nth,$(getenv,to),,・・・・setenv;to;2,,,)
$(nth,$(getenv,to),,,・・・・setenv;to;3,,)
$(nth,$(getenv,to),,,,・・・・setenv;to;4,)
$(nth,$(getenv,to),,,,,・・・・setenv;to;0)^M
この様にしても↓同じです。
*^C^C$M=$(nth,$(getenv,to),setenv;to;0;・・・・setenv;to;1,,,,)
$(nth,$(getenv,to),,setenv;to;0;・・・・setenv;to;2,,,)
$(nth,$(getenv,to),,,setenv;to;0;・・・・setenv;to;3,,)
$(nth,$(getenv,to),,,,setenv;to;0;・・・・setenv;to;4,)
$(nth,$(getenv,to),,,,,setenv;to;0;・・・・setenv;to;0)^M
1段落目は既にto=0であるから1段落目なので、更に「setenv;to;0;」を宣言する必要はないです。
なので↓これでOK
*^C^C$M=$(nth,$(getenv,to),・・・・・・・・・・setenv;to;1,,,,)
$(nth,$(getenv,to),,setenv;to;0;・・・・setenv;to;2,,,)
$(nth,$(getenv,to),,,setenv;to;0;・・・・setenv;to;3,,)
$(nth,$(getenv,to),,,,setenv;to;0;・・・・setenv;to;4,)
$(nth,$(getenv,to),,,,,setenv;to;0;・・・・setenv;to;0)^M
では、2段落目以降で、初めに「setenv;to;0;」が必要な理由は何でしょう?
答えは「途中キャンセルしたときに、次回起動で1段落目から始まるように」
だったら、途中キャンセルする事が無い段落では先頭に「setenv;to;0;」は必要ない。
途中キャンセルするのって、ユーザー入力「¥」が有るときだけ。
つまり、「¥」が無い段落では先頭に「setenv;to;0;」を付けなくても良い。
↓こうなります。
*^C^C$M=$(nth,$(getenv,to),・・・・・・・・・・・setenv;to;1,,,,)
$(nth,$(getenv,to),,・・・・・・・・・・・setenv;to;2,,,)
$(nth,$(getenv,to),,,setenv;to;0;・・¥・・setenv;to;3,,)
$(nth,$(getenv,to),,,,・・・・・・・・・・・setenv;to;4,)
$(nth,$(getenv,to),,,,,・・・・・・・・・・・setenv;to;0)^M
もしユーザー入力が1段落目だけだと↓先頭の「setenv;to;0;」は全く不要になります。
*^C^C$M=$(nth,$(getenv,to),・・・・¥・・・・・setenv;to;1,,,,)
$(nth,$(getenv,to),,・・・・・・・・・・setenv;to;2,,,)
$(nth,$(getenv,to),,,・・・・・・・・・・setenv;to;3,,)
$(nth,$(getenv,to),,,,・・・・・・・・・・setenv;to;4,)
$(nth,$(getenv,to),,,,,・・・・・・・・・・setenv;to;0)^M
//////////////////////////////////////////////////////////////////////
それを応用したのがこのマクロ。
寸法の矢印を片方or両方 小黒丸に変更する♪
*^C^C$M=$(nth,$(getenv,to),select;$M="""$(if,$(getvar,cmdactive),\)"""setenv;dimblk;3;;to;1,,,,)$(nth,$(getenv,to),,;dimblk1;$(nth,$(getenv,dimblk),.,_dotsmall,.,_dotsmall);;dimblk2;$(nth,$(getenv,dimblk),.,_dotsmall,_dotsmall,.);;to;2,,,)$(nth,$(getenv,to),,,dim1;override;dimsah;on;dimblk1;$(getenv,dimblk1);dimblk2;$(getenv,dimblk2);;p;;setenv;to;3,,)$(nth,$(getenv,to),,,,setenv;to;0;dist;\$M="""$(if,$(getvar,cmdactive),;setenv;to;4,^C;)""",)$(nth,$(getenv,to),,,,,;dimblk;$(nth,$(getenv,dimblk),3,0,1,2);;to;1)^M
使い方は、
寸法選択(複数可)してマクロ実行。 または、マクロ実行して寸法選択(複数可)
エンターキー連打(クリックでもOK)、ESCで終了。
//////////////////////////////////////////////////////////////////////
「*^C^Csetenv;to;0;$M=$(nth,$(getenv,to),」だと、
先頭の「setenv;to;0;」で選択や処理が中断されるので、作りたいものが作れない事が有る。
それを回避できる(かもしれない)方法の備忘録でした。
「*^C^Csetenv;to;0;$M=$(nth,$(getenv,to),」のマクロを考える
- Lon
- 2021/03/26 (Fri) 16:43:54