出来たということ前提で書きます
そしてこれを読んでもよくわからないとは思いますがとりあえず
*^C^C$M=setenv;to;0;
※nthマクロ構文のスタート
構文『0』
$(nth,$(getenv,to),select;\copybase;0<0;p;;erase;p;;setenv;to;1,,,,,,,)
0-1:selectコマンドでマルチ引き出し線選択
0-2:copybaseコマンドで選択したマルチ引き出し線を基点を0<0でクリップボードにコピーする
0-3:eraseコマンドで選んだマルチ引き出し線を削除する
0-4:構文『1』に進む
構文『1』
$(nth,$(getenv,to),,-layout;d;tmplo;;n;tmplo;;s;tmplo;point;0<0;erase;all;;pasteclip;non;0<0;zoom;e;setenv;to;2,,,,,,)
1-1:-layoutコマンドで仮にtmploの名前でレイアウトを作る
1-2:pasteclipコマンドでtmploレイアウトにコピーしたマルチ引き出し線を貼り付ける
1-3:構文『2』に進む
構文『2』
$(nth,$(getenv,to),,,;to;7;select;l;;undo;be;explode;l;region;l;;explode;l;ucs;ob;l;zoom;c;0<0;;ucs;p;setenv;to;3,,,,,)
2-1:selectコマンドでオブジェクトの有無を判断する
2-2:オブジェクトが存在する場合は【2-3】へ/存在しない場合は【2-11】へ
(この方法で切り替えられるのはAutoCAD独自仕様の様で、互換CADではできないと聞いたことが有りますのでご注意を)
2-3:undoコマンドで仮作業の開始位置を指定する
2-4:explodeコマンドでマルチ引き出し線を分解する
2-5:regionコマンドで先端の矢印をソリッドからリージョンに変更する
2-6:explodeコマンドで矢印を分解する
2-7:ucsコマンドで矢印の先端にucs位置を変更する
2-8:zoomコマンドで矢印の先端を画面中央に移動する
2-9:ucsコマンドでucs位置を元に戻す
2-10:構文『3』に進む
2-11:構文『7』に進む
構文『3』
$(nth,$(getenv,to),,,,;p1;$(getvar,VIEWCTR);erase;l;;;l;;;l;;;l;;ucs;ob;l;zoom;c;0<0;;ucs;p;setenv;to;4,,,,)
3-1:setenvコマンドで『p1』に矢印の先端の位置座標$(getvar,VIEWCTR)を記憶させる
3-2:eraseコマンドでマルチテキストと下線だけを残しマルチ引き出し線のオブジェクトを削除する
3-3:ucsコマンドで下線の端点にucs位置を変更する
3-4:zoomコマンドで下線の端点を画面中央に移動する
3-5:ucsコマンドでucs位置を元に戻す
3-6:構文『4』に進む
構文『4』
$(nth,$(getenv,to),,,,,;p2;$(getvar,VIEWCTR);erase;l;;explode;l;textedit;l;undo;e;u;erase;l;;setenv;tex1;ここに貼り付け⇒^X\;to;5,,,)
4-1:setenvコマンドで『p2』に下線の端点の位置座標$(getvar,VIEWCTR)を記憶させる
4-2:eraseコマンドで下線を削除する
4-3:explodeコマンドでマルチテキストを分解する
4-4:texteditコマンドでテキストを選択する(ここで文字列をコピーします)
4-5:undoコマンドで仮作業を終了する
4-6:uコマンドで仮作業前に戻る
4-7:eraseコマンドでマルチ引き出し線を削除する
4-8:setenvコマンドで『tex1』にコピーした文字列を貼り付ける(ここでF2キーを押した方が作業しやすい)
4-9:構文『5』に進む
構文『5』
$(nth,$(getenv,to),,,,,,mleader;$(getenv,p1);$(getenv,p2);$(getenv,tex1);copybase;0<0;l;;erase;l;;setenv;to;6,,)
5-1:mleaderコマンドで削除したマルチ引き出し線と同じ位置にマルチ引き出し線を描き直す
5-2:copybaseコマンドで記入したマルチ引き出し線を基点を0<0でクリップボードにコピーする
5-3:eraseコマンドでマルチ引き出し線を削除する
5-4:構文『6』に進む
構文『6』
$(nth,$(getenv,to),,,,,,,model;pasteclip;non;0<0;-layout;s;tmplo;setenv;to;2,)
6-1:modelコマンドでモデル空間に移動する
6-2:pasteclipコマンドでコピーしたマルチ引き出し線を貼り付ける
6-3:-layoutコマンドでtmploのレイアウトに移動する
6-4:構文『2』に戻る
※その後、選択したマルチ引き出し線の数だけ構文『2』から構文『6』を繰り返し
tmploレイアウトに選択したマルチ引き出し線が無くなった場合だけ
下記構文『7』に移動して終了します
構文『7』
$(nth,$(getenv,to),,,,,,,,model;-layout;d;tmplo;;^Csetenv;to;0)^M
7-1:modelコマンドでモデル空間に移動する
7-2:-layoutコマンドでtmploのレイアウトを削除して終了する
以上です
- chibi-tom
- 2021/11/16 (Tue) 11:01:21