最初由 chen_xxx 发布
[B]程序如下:
;zixiong.w(defun c:th(/ a b ent ent2 elist etype oldval bltxt entdata btxt ostr pt oltxt )
(princ "\n ******* 文字替换程序 ******* Writen by 正航")
(princ "\n 请选择复制?.. [/B] 
- [FONT=courier new]
- ;zixiong.w
- (defun c:th (/ a b ent ent2 elist etype oldval bltxt entdata btxt ostr
- pt oltxt)
- (princ "\n ******* 文字替换程序 ******* Writen by 正航")
- (princ "\n 请选择复制源文字目标:")
- (setq ent (nentsel))
- (if (= ent nil)
- (setq oldval (getstring "\n 请输入文字:"))
- (progn
- (setq
- ent2 ent
- elist (entget (car ent))
- etype (cdr (assoc 0 elist))
- )
- (setq oldval (cdr (assoc 1 elist)))
- (princ "\n ")
- (princ "\n复制文字内容为: ")
- (princ oldval)
- )
- )
- (setq q 9)
- (while q
- (princ "\n ")
- (setq bltxt (nentsel "\n请选择需要替换的文字目标:"))
- (if (= bltxt nil)
- (setq q nil)
- (progn
- (setq entdata (entget (car bltxt))
- btxt (cdr (assoc 1 entdata))
- ostr btxt
- )
- (setq elist (entget (car bltxt)))
- (setq etype (cdr (assoc 0 elist)))
- ;; (setq oltxt (car (assoc 1 elist)))
- (setq oltxt (cdr (assoc 1 elist)))
- (if (= etype "ATTRIB")
- (progn
- (setq pt (cadr bltxt))
- (command ".attedit" "" "" "" "" pt "" "V" "R" oldval "n")
- )
- (progn
- (setq btxt oldval)
- (entmod (subst (cons 1 btxt) (assoc 1 entdata) entdata))
- (if (setq bltxt (car (reverse (cadddr bltxt))))
- (entupd bltxt)
- )
- )
- )
- )
- )
- (princ "\n原文字为:")
- (princ oltxt)
- (princ ". 已被替换为: ")
- (princ oldval)
- (princ " .")
- )
- (princ)
- )
- [/FONT]
|