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

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

フィルター代用
選択したオブジェクトでabcの画層にあるオブジェクトを黄色に変更したいのですが
下記lispだとabc画層を含むグループ化されていてるものも
abcが層以外のものも色が変わってしまいます。

ダイアログがでるfilterコマンドだとグループ化されていても
問題なくabc画層オブジェクトのみ色が変更できます。

どの部分を変更すればいいでしょうか?

(defun c:filterchgcolor ()
(setq Objs (ssget '((8 . "abc"))))
(command-s "._change" Objs "" "p" "c" "2" "")
(princ))
  • 初心者
  • 2025/04/13 (Sun) 09:20:46
Re: フィルター代用
システム変数pickstyleを0にしてからssgetしてみたら。
  • Hamu
  • 2025/04/14 (Mon) 09:03:29
Re: フィルター代用
(command-s "._change" Objs "" "p" "c" "2" "")

(command-s "._change" "p" "" "p" "c" "2" "")
にしてみては?
  • LUNE
  • 2025/04/14 (Mon) 11:39:35
Re: フィルター代用
Objs → "p" に変更したらできました。
ありがとうございます。

下記の部分で "abc" を 変数にすることはできるのでしょうか?

画層名を先に取得した画層を変数にして代入したいのですがエラーがでます。
(ssget '((8 . "abc")))
  • 初心者
  • 2025/04/14 (Mon) 21:51:05
Re: フィルター代用
(defun c:filterchgcolor (/ lay)
(setq lay (assoc 8 (entget (car (entsel)))))
(setq Objs (ssget "_X" (list lay)))
(command-s "._change" "p" "" "p" "c" "2" "")
(princ))

こんな感じでしょうか。
選択オブジェクトの画層の色を変更します。
  • LUNE
  • 2025/04/15 (Tue) 11:14:50
Re: フィルター代用
ありがとうございます。
理想通りになりました。
  • 初心者
  • 2025/04/15 (Tue) 20:41:48

返信フォーム






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