- (defun c:CHATTRIB (/ ss sn a attag bname oldval newval)
- (defun changeAttribValue (ent atttag oldval newval / entl)
- (while (and ent
- (/= "SEQEND" (cdr (assoc 0 (setq entl (entget ent)))))
- )
- (and (= atttag (cdr (assoc 2 entl)))
- (= oldval (cdr (assoc 1 entl)))
- (entmod (subst (cons 1 newval) (assoc 1 entl) entl))
- (entupd ent)
- (mapcar 'princ (list "\n" oldval " -> " newval))
- )
- (setq ent (entnext ent))
- )
- )
- (and (/= "" (setq bname (getstring "\nBlock name: ")))
- (/= "" (setq attag (getstring T "\nTag: ")))
- (/= "" (setq oldval (getstring T "\nOld value: ")))
- (/= "" (setq newval (getstring T "\nNew value: ")))
- (setq ss (ssget "_X"
- (list '(0 . "INSERT")
- '(66 . 1)
- (cons 2 (strcat "`*U*," bname))
- )
- )
- )
- (repeat (setq a (sslength ss))
- (if (eq (vla-get-effectivename
- (vlax-ename->vla-object
- (setq sn (ssname ss (setq a (1- a))))
- )
- )
- bname
- )
- (changeAttribValue
- sn
- attag
- oldval
- newval
- )
- )
- )
- )
- (princ)
- )(vl-load-com)
|