请不要错过,这不是一个按需开发的机构!
可能需要调整蓝色部件以适合您的情况;只要确保所有层都未锁定。
- ;;; Replace Blocks By List (20-III-2014)
- (defun c:RBBL( / blockOld blockNew ssetBlocks entBlock assocBlock )
- (foreach blockOld '("[color=blue]B1[/color]" "[color=blue]B2[/color]" "[color=blue]B3[/color]") ;;;list of blocks to replace
- (if (and (tblsearch "BLOCK" blockOld)
- (tblsearch "BLOCK" (setq blockNew (strcat "modified_" blockOld))))
- (if (setq ssetBlocks (ssget "_X" (list '(0 . "INSERT") (cons 2 blockOld))))
- (while (> (sslength ssetBlocks) 0)
- (entmod (subst (cons 2 blockNew)
- (assoc 2 (setq assocBlock (entget (setq entBlock (ssname ssetBlocks 0)))))
- assocBlock))
- (ssdel entBlock ssetBlocks)
- )
- )
- )
- )
- (princ)
- )
顺便说一句,这并不考虑嵌套块。 |