程序如下: - (defun c:zbth (/)
- (setq os (getvar "osmode"))
- (setvar "osmode" 0)
- (setvar "cmdecho" 0)
- (princ "\n请选择要替换的文字对象:")
- (setq obj (ssget))
- (setq len (sslength obj)
- m 0
- )
- (repeat len
- (setq name (ssname obj m))
- (setq objdata (entget name))
- (setq class (cdr (assoc 0 objdata)))
- (if (or (= class "TEXT") (= class "MTEXT"))
- (progn
- (setq old (assoc 1 objdata))
- (setq old_text (cdr old))
- (setq num (strlen old_text))
- (setq n 1
- new_text ""
- )
- (while (<= n num)
- (setq text (substr old_text n 2))
- (if (and (or (= text "主") (= text "备"))
- (= (substr old_text (+ 2 n) 2) "用")
- )
- (progn
- (if (= text "主")
- (setq text "备用")
- (setq text "主用")
- )
- (setq n (+ n 4))
- )
- (setq n (+ n 2))
- )
- (setq new_text (strcat new_text text))
- )
- (setq new (cons 1 new_text))
- (setq objdata (subst new old objdata))
- (entmod objdata)
- )
- )
- (setq m (1+ m))
- )
- (setvar "osmode" os)
- (prin1)
- )
|