この掲示板は AutoCADマクロ屋本舗 の掲示板です。

【 注意 】最初に必ず ↓↓ 下記内容 ↓↓ を参照ください。
① マクロが分からない方は、まず 【 マクロ講座 】 を参照ください。
② 質問の前に 【 マクロ使用前の注意事項 】 をお読みください。
③ 質問する時は、新規投稿フォーム下の【 新規投稿時のお願い 】を必ずお読みください。

モデル空間の全てのオブジェクトを3回分解するマクロ
モデル空間の全てのオブジェクトを3回分解するマクロ、
もしくはLISPを作りたいのですが、全て選択して分解というのが
単純にはできないらしく、困っています。
なお、使用バージョンはLT2025です。
どなたか方法をご存知の方がいらっしゃったらご教示いただけますでしょうか。
何卒よろしくお願いいたします。
  • もも
  • 2025/08/04 (Mon) 07:51:20
Re: モデル空間の全てのオブジェクトを3回分解するマクロ
どうでしょうか。(LT2025は持ってませんので、動くか判りません)
^C^Cxplode;all;;;;^C^Cxplode;all;;;;^C^Cxplode;all;;;;^C^C^Z

分解できるオブジェクトが無い時でも、エラーにならない様にしてるつもりです。
  • Hamu
  • 2025/08/04 (Mon) 10:08:52
Re: モデル空間の全てのオブジェクトを3回分解するマクロ
Hamuさま

早速のご回答ありがとうございます!

教えていただいたマクロを試したのですが、
ハッチングとマルチテキストは分解されませんでした。
拡張分解はハッチングとマルチテキストには対応していない模様です。
  • もも
  • 2025/08/04 (Mon) 10:16:36
Re: モデル空間の全てのオブジェクトを3回分解するマクロ
こういうことでしょうか?

(defun c:extri (/ ss)
(repeat 3
(setq ss (ssget "X"))
(initcommandversion 2)
(command "explode" ss "")
)
)


>全て選択して分解というのが単純にはできないらしく、困っています。
古いバージョンのexplodeでは、1度に1個のオブジェクトしか分解できなかったため、Lispでcommand関数にてexplodeを使うとその動きになるからでしょうか。(以下URLの#3参照)
https://forums.augi.com/showthread.php?11688-Explode-in-LISP-Does-Not-Explode-Selection-Set

initcommandversionを使うことで、今のコマンドの動きにすることができます。
  • LUNE
  • 2025/08/04 (Mon) 11:36:26
Re: モデル空間の全てのオブジェクトを3回分解するマクロ
LUNEさま

無事にできました!
「initcommandversion」については存じ上げておらず、大変勉強になりました。
心より感謝申し上げます。
  • もも
  • 2025/08/04 (Mon) 14:50:50

返信フォーム






プレビュー (投稿前に内容を確認)