你好
我试图找到一个lisp,它将搜索和替换用户选择中的文本。
我在网上一个很老的论坛上找到的这段代码几乎完全符合我的需要。
唯一的问题是我想替换句子中的单个单词,而这个代码只在单词单独存在时才替换它。
- (defun c:TRANSLATE()
- (command "cmdecho" "0")
- (command "_.undo" "begin")
- (setq mylist (list
- (list "APPLE" "PEAR")
- (list "BANANA" "STRAWBERRY")
- )
- )
- (setq sset (ssget '((0 . "TEXT"))))
- (setq i 0)
- (while (< i (sslength sset))
- (setq obj (ssname sset i))
- (setq str (cdr (assoc 1 (setq lst (entget obj)))))
- (princ str)
- (princ "\n")
- (foreach item mylist
- (if (eq str (nth 0 item))
- (progn
- (setq newstr (nth 1 item))
- (if newstr
- (entmod (subst (cons 1 newstr)(assoc 1 lst) lst))
- )
- )
- )
- )
- (setq i (1+ i))
- )
- (command "cmdecho" "1")
- (command "_.undo" "end")
- )
有人可以修改它使它为我工作吗?
非常感谢。 |