jly0406 发表于 2014-1-6 21:03:51

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))
)

434939575 发表于 2014-10-9 17:42:48

辛苦了
页: [1]
查看完整版本: lisp 替换字符串