ここから本文です

AutoCADのAutoLISP でオブジェクトのDXFグループコードの情報を書き換えるというLI...

wim********さん

2017/3/212:09:50

AutoCADのAutoLISP でオブジェクトのDXFグループコードの情報を書き換えるというLISPを勉強しています。

グループコードが省略される場合もあるようなのですが、その場合、そのグループコードの要素追加することはできるのでしょうか?

例えば、以下のようなオブジェクトの色(グループコード62)を赤色(1)に変更するLISPを作りました。
オブジェクトの色が画層ごと(ByLayer)の場合だと、(62.〇〇)の部分が省略されてしまうようで作動しません。
オブジェクトの色が設定してあると作動します。

(defun c:TEST ()
(setq A (entget (car (entsel))))
(setq A (subst (cons 62 1) (assoc 62 A) A ))
(entmod A)
(princ)
)


これを、画層ごとの設定で情報が省略されている場合でも、(62.XX)を加わえる方法を知りたいです。

よろしくお願いします。

閲覧数:
143
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

sak********さん

2017/3/213:39:55

省略されている場合は
(setq A (append A (list (cons 62 1))))
で動くみたい。
設定してあっても動くみたいです。
(それが良いか悪いか判りませんが)

質問した人からのコメント

2017/3/2 15:35:07

いつもありがとうございます。
思い通りにできました!

設定してあっても動きました。
それが良いか悪いか判りませんがとのことですし、念のため、ちょうど勉強したところなのでifを使って設定してある場合とそうでない場合にわけるLISPを書くのにも挑戦しようと思います。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる