線分を含む場合のポリライン化
^C^Cselect;$M=$(if,$(getvar,cmdactive),¥,)pe;m;p;;y;j;10;;
※^C^Cselect;$M=$(if,$(getvar,cmdactive),¥,)
の部分についてはについては
https://ameblo.jp/totthi-macro/entry-11394602811.html
を参考にさせていただきました。
これにより、先にオブジェクトを選択してからでも、選択せずに開始しても、どちらでも実行可能になります。
これを使わずに書くとこう
そのまんま後半のみ、マクロというより、単にコマンド並べてるだけですね。
解説
^C ← キャンセル
^C ← キャンセル
pe ← ポリライン編集
; ← エンター
m ← 一括
; ← エンター
¥ ← 選択を待つ
; ← エンター
; ← エンター
y ← ポリラインに変更しますか?の答え
; ← エンター
j ← 結合
; ← エンター
10 ← 許容距離を入力
; ← エンター
; ← エンター
ただし、これだとオプジェクトを選択してからマクロを実行しても、ポリライン編集を実行した時点で選択が解除されるので、もう一度オブジェクトを選択させられる事になります。
ポリライン同士のポリライン化
上記のだと、ポリライン同士のポリライン化(結合)ができないので、以下のように改造
^C^Cselect;$M=$(if,$(getvar,cmdactive),¥,)pe;m;p;;j;10;;
(線分をポリライン化する場合とほぼ同じですが、ポリライン同士なので、線分をポリラインに変換する確認の答え=「 y 」が不要になるわけです。)
ポリライン同士の場合だけ、こちらを使っています。
線分を含む場合と、ポリライン同士の場合で、ツールボタンを2つ用意しています。あまりスマートではないけれど、他にやり方が分からないのでずっとそれでやっています。
複雑なマクロを組めばできるのかも知れませんが、、別に特に問題は感じていないのと、あまり複雑なマクロとか組んでも、何ヶ月か何年かしたら、完全に忘れ去っていて自分でも中身が理解できなくなるのが目に見えているので(笑)
コメント