如何简化LISP的“回车”操作? 如附件所示意的LISP是网上找的,是用来改变文字的图层的。 但是每次使用的时候,选取源文字,再选取目标文字后,目标文字不能马上改变图层,必须等再按一次回车或者空格才能完成。 请问,应该如何做,才能简化操作,取消这个”回车“的步骤?
(defun c:tll (/ key ent1 el en n ss th val vt) (setq val 8);设置为图层匹配 (prompt "\n当前匹配设置: 文字图层") (while (/= "TEXT" (cdr (assoc 0 en))) (initget "Set") (setq ent1 (entsel "\n选择源文字对象 :")) (if (= 'STR (type ent1)) (progn (initget " L ") (setq key (getkword)) (cond ((= key "L") (setq val 8 vt "文字图层")) (t (setq val 1 vt "文字内容")) );;;end cond ;;;(setq ent1 nil) (prompt (strcat "\n当前匹配设置: " vt)) );;;end progn (if ent1 (setq en (entget (car ent1)))) );;;end if );;;end while ;;;(setq en (entget ent1)) (setq th (cdr (assoc val en))) (prompt "\n点取要修改的文字:") (setq ss (ssget '((0 . "TEXT")))) (if ss (progn (setq n 0) (command "undo" "group") (while (< n (sslength ss)) (setq el (entget (ssname ss n))) (entmod (subst (cons (car (assoc val el)) th) (assoc val el) el ) ) (setq n (1+ n)) );;;end while (command "undo" "end") (prompt "\n匹配成功!(CS制作)") (princ) );;;end progn (progn (prompt "\n没有选到任何文本,退出!") (princ) ) );;;end if ) |