Hi Alls,
My brain still lock to solve my problem, I would rename alls the block in area drawing if the block contained 25 pcs or more, my code can't rename it.
(defun c:rmb (/ btyp ed ent_old etyp old opt ss
sse sse_ent_old sse_old str xstr)
(if
(setq ss (car (entsel "\nSelect an object block")))
(progn
(setq sse (entget ss))
(setq etyp (cdr (assoc 0 sse)))
(if
(= etyp "INSERT")
(progn
(setq str (cdr (assoc 2 sse)))
(setq opt (getstring t (strcat "\nEnter new name of block< " str " >: ")))
(if (= opt "")(setq opt str))
(setq ssx (ssget "x" (list (cons 0 "INSERT")
(cons 100 "AcDbBlockReference")
(cons 2 str))))
(setq ssl (sslength ssx))
(setq cnt 0)
(repeat
ssl
(setq ent (ssname ssx cnt))
(setq sse_old (entget ent))
(setq btyp (cdr (assoc 0 sse_old)))
(if
(= btyp "INSERT")
(progn
(setq xstr (cons 2 opt))
(setq ed (entmod (subst xstr (assoc 2 sse_old) sse_old)))
) ; progn
(alert "\nThis not block")
) ; if
(setq cnt (1+ cnt))
) ; repeat
) ; progn
(alert "\nInvalid insert objeck")
) ; if
) ; progn
(alert "\nInvalid selected object,please try again")
) ; if
(princ)
) ; defun