lisp 替换字符串
(defun c:fid (/ t1 s1 t2 txt1 txt2 n acc en ent new-ent)(while (null (setq en1 (car (entsel "\n请指定要查找的字符串:"))))
)
(setq t1 (y-dxf 1 en1))
(setq s1 (ssget "x" (list (cons 0 "TEXT,MTEXT") (cons 1 t1))))
(while (null (setq en2 (car (entsel "\n请输入要改为的字符串:"))))
)
(if (or (= (y-dxf 0 en2) "MTEXT") (= (y-dxf 0 en2) "TEXT"))
(progn
(setq t2 (y-dxf 1 en2))
(setq txt2 (cons 1 t2))
(setq n (sslength s1)
acc 0
)
(repeat n
(setq en (ssname s1 acc))
(setq ent (entget en))
(setq txt1 (assoc 1 ent))
(setq new-ent (subst txt2 txt1 ent))
(entmod new-ent)
(setq acc (1+ acc))
)
)
(prompt "选择的不是文字,请重试!")
)
(princ)
)
(defun y-dxf (code en)
(setq ent (entget en))
(cdr (assoc code ent))
)
辛苦了
页:
[1]