お品書き
書き直し中…
とりあえず、中へどうぞ
↓↓↓
スポンサーリンク

【AutoCAD】マクロの条件分岐(if文)(補助線レイヤーの削除)

便利ツール/ソフトウェア
「補助線」というレイヤーを作ってそこに補助線(構築線)を引くようにしています。そして、補助線一括削除コマンドとして、この補助線レイヤーを削除してしまうマクロを書いてボタンに割り振っていました。
^C^C-LAYDEL;N;補助線;;y;
ただし、このやり方には欠点があって、現在画層が「補助線」であった場合に、削除が失敗します。(現在画層は削除できないので)

現在の画層をを一旦違う画像に変更してから実行すれば良いのですが、面倒くさい。

そこで、条件分岐みたいのができないかなぁ?と思って調べてみました。

参考にさせて頂いたのは下記記事(毎度おなじみマクロ屋本舗様ですね、ありがとうございます。)

https://ameblo.jp/totthi-macro/entry-11394592010.html

で、条件分岐を使って現在画層が「補助線」であるかどうかで処理を分けられないかと。

もし現在画層が「補助線」であれば、現在画像を「 0 」に変更してから補助線画層を削除。

もし現在画層が「補助線」以外であれば、そのまま補助線画層を削除。

いろいろ試行錯誤、四苦八苦して・・・

できた~\(^o^)/
$M=$(if,$(eq,$(getvar,clayer),"補助線"),-layer;s;0;;-LAYDEL;N;補助線;;y,-LAYDEL;N;補助線;;y)
条件分岐ができるようになると、できることが飛躍的に増えますね。

しかし・・・ちゃんとマクロの基本をおさらいしてからでないと、色々忘れていてダメですねぇ・・・

おさらい

「 $M= 」というのは、「マクロを中断してこっちの式を先に処理してねぇ」という意味みたいですね、割り込み処理コマンド?

で、「 $(処理) 」の処理を先に行う、と。

マクロ処理のみの場合は、割り込む必要がないので「 $M=$(処理) 」という書き方でOK

という感じの理解であっているのでしょうか?今ひとつよく分かっていないのですが、とりあえず動いたのでOK!w

コメント