Anda di halaman 1dari 1

;; By CAB 01.05.

09
(defun c:BlockRename2 (/ bp prefix siffix n obj usercmd)
;; ignore xref, xref dependent and anonymous
(defun GetBlkNames (/ data result)
(while (setq data (tblnext "block" (null data)))
(if (zerop (logand 21 (cdr (assoc 70 data))))
(setq result (cons (cdr (assoc 2 data)) result))
)
)
(acad_strlsort result)
)

(if (and
(setq bp (getstring t "\nEnter Block name pattern to match: "))
(setq find (getstring t "\nEnter string to replace: "))
(setq replace (getstring t "\nEnter replacement string: "))
)
(progn
(setq usercmd (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(command "_undo" "_begin")
;; Walk through the collection
(foreach n (GetBlkNames)
(if (and (/=(substr n 1 1)"_") ; ignore blocknames starting with underscore
(wcmatch (strcase n) (strcase bp))
)
(if (vl-catch-all-error-p
(vl-catch-all-apply
'(lambda ()
(if (/= (setq NewName (vl-string-subst replace find n)) n)
(progn
(command "_.-rename" "_b" n NewName)
(princ (strcat "\n" n " --> " NewName))
)
(princ (strcat "\nSkiped Block " n " *** "))
)
)
)
)
(prompt (strcat "\nError for block name: " NewName))
)
)
)
(command "_undo" "_end")
(setvar "CMDECHO" usercmd)
)
)
(princ)
)

Anda mungkin juga menyukai