lengthen部分の変更と、Undo終了を追加して、文字数を減らしたら、LT2017でも動きました。
(コマンド履歴を見る限り、エラーの原因は文字数オーバーです。)
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),id;\$M=undo;be;rectang;non;@;non;\setenv;p;"""$(getvar,lastpoint)""";;to;1,;to;2;erase;l;;line;non;@;non;$(getenv,p);;lengthen;dy;;;l;;;ucs;ob;l;id;non;$M="""$(/,$(getvar,perimeter),2)"""<0;oops;ucs;p;id;non;@,,,,,)$(nth,$(getenv,to),,,,;s;0;;x1;$(*,1.001,$(index,0,$(getvar,lastpoint)));;y1;$(*,1.001,$(index,1,$(getvar,lastpoint)));;x2;$M="""$(*,-1,$(getenv,x1));;y2;$(*,-1,$(getenv,y1))""";;to;4;zoom;c;non;0<0;$(getvar,perimeter);select;l;,,,)$(nth,$(getenv,to),,,,,;to;5;trim;p;;f;$(getenv,x1)",$(getenv,y1);$(getenv,x2),$(getenv,y1);$(getenv,x2),$(getenv,y2);$(getenv,x1),$(getenv,y2);$(getenv,x1),"$(getenv,y1);;,;s;$(+,$(getenv,s),1);;to;$M="""$(if,$(=,$(getenv,s),4),6,4)""",)$(nth,$(getenv,to),,,;to;3;erase;l;;ucs;o;non;$(getvar,lastpoint);ucs;ob;l;id;non;0<0;ucs;p,,,,erase;p;;copybase;non;0<0;c;non;$(getenv,x1)",$(getenv,y1);non;$(getenv,x2),"$(getenv,y2);;erase;all;;pasteclip;non;0<0;ucs;p^Cundo;e)^M
文字数削減の為に段落を入れ替えましたので、マクロの流れが見えにくくなってます。
元々が
*^C^C$M=setenv;t;0;$(nth,$(getenv,t),段落0,段落1,,,,,)$(nth,$(getenv,t),,,段落2,,,,)$(nth,$(getenv,t),,,,段落3,,,)$(nth,$(getenv,t),,,,,段落4,,)$(nth,$(getenv,t),,,,,,段落5,段落6)^M
となっていたものを、
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),段落0,段落1,,,,,)$(nth,$(getenv,to),,,,段落3,,,)$(nth,$(getenv,to),,,,,段落4,段落5,)$(nth,$(getenv,to),,,段落2,,,,段落6)^M
としていますので、注意です。
- Lon
- 2018/05/25 (Fri) 16:34:39