・ 選択したブロック図形(図形タイプ INSERT )のみブロック名を変更する
名前変更 (RENAME) を使ってブロック名を変更すると、同一図面に同名ブロックが複数存在すると、すべてのオブジェクトのブロック名が変わってしまいます。
そこで、選択した INSERT
図形のエンティティーデータをコピーして、ブロック名のみ変更して定義し直すことで、あたかも、一つのブロック図形のみ、名前を変更したようにすることができます。
(setq ent (entget (entsel "\nブロック図形を選択"))) (setq blk (tblobjname "block" (cdr (assoc 2 ent)))) ;ブロック名でテーブルを調べる、最初の図形名はブロック定義 (entmake (subst (cons 2 "new_name") (assoc 2 (entget blk)) (entget blk))) ;ブロック定義のブロック名だけnew_nameに書き換えてentmake (while (setq blk (entnext blk)) ;ネストされた図形をすべて entmake (entmake (entget blk)) ) (entmake '((0 . "endblk"))) ;最後にブロックの終了endblk (entmod (subst (cons 2 "new_name") (assoc 2 ent) ent)) ;INSERT図形のエンティティーのブロック名をnew_nameに書き換えてentmod
参考文献:「おぉとりすぷの広場」 記事番号<16356>