LISPで表(テーブル)オブジェクトのセルに書き込まれている文字列を書き換えたいのですが。
entgetして取得した配列を見て、グループコードの1番と302番が文字列と判断しました。
それら、片方や両方を書き換えて、entmodしても書き変わらない。(entgetした配列の中身は書き換えられている。)
同じ配列でentmakeしたら、空っぽの表ができる。
何か参考になるコードありませんか?
作ったコードが以下です。
(defun C:tableAB (/ ss ent ent2 i DP)
(if (setq ss (ssget "_X"'((0 . "ACAD_TABLE"))))
(progn
(setq i 0)
(repeat (sslength ss)
(setq ent (entget (ssname ss i)) ent2 nil)
(foreach DP ent
(cond
((and (= (car DP) 1) (= (cdr DP) "AAA")) (setq ent2 (append ent2 (list (cons 1 "BBB")))))
((and (= (car DP) 302) (= (cdr DP) "AAA")) (setq ent2 (append ent2 (list (cons 302 "BBB")))))
(T (setq ent2 (append ent2 (list DP))))
)
)
(entmod ent2)
(setq i (1+ i))
)
)
)
(princ)
)
無題
- 表の文字を編集する方法を教えれ下さい
- 2023/06/09 (Fri) 12:18:01