请高手看下我的文字改层的命令有什么问题
(defun c:wzgc () (CMDLA0) (command "color" "bylayer") (setq wenzhi (cdr (assoc 1 (entget (car (entsel "\n请点取想要归层的文字:")))))) (initget "1 2 3 4") (setq key (getkword "\n请选择文字匹配方式:左边匹配(1)\\右边匹配(2)\\中间匹配(3)\\完全匹配(4)")) (MKLA "tangchao" 2) (command "color" "bylayer") (cond ((= key 1) (setq s1 (ssget "x" (LIST (CONS 0 "TEXT") (CONS 1 (STRCAT wenzhi "*")))))) ((= key 2) (setq s1 (ssget "x" (LIST (CONS 0 "TEXT") (CONS 1 (STRCAT "*" wenzhi)))))) ((= key 3) (setq s1 (ssget "x" (LIST (CONS 0 "TEXT") (CONS 1 (STRCAT "*" wenzhi" *")))))) ((= key 4) (setq s1 (ssget "x" (LIST (CONS 0 "TEXT") (CONS 1 (STRCAT wenzhi)))))) (t (setq s1 (ssget "x" (LIST (CONS 0 "TEXT") (CONS 1 (STRCAT wenzhi)))))) ) (progn (setq YH_sslength (sslength s1)) (setq YH_no 0) (while (< YH_no YH_sslength) (setq YH_select (entget (ssname s1 YH_no))) (setq YH_select (subst (cons 8 "tangchao") (assoc 8 YH_select) YH_select)) (entmod YH_select) (setq YH_no (1+ YH_no)) ) (setq wenzi nil) (princ "\n程序提示:修改完成.") ) ;(princ "\n程序提示: 没有找到要修改的图元.") ;) (CMDLA1) (princ) )
(defun CMDLA0 () (setq cmdech (getvar "CMDECHO")) (setq oom (getvar "orthomode")) (setq osm (getvar "osmode")) (SETQ LA (getvar "clayer")) (setq rmode (getvar "regenmode")) (setq pw (getvar "plinewid")) (setvar "regenmode" 0) (setvar "CMDECHO" 0) (princ) )
(defun CMDLA1 () (setvar "CMDECHO" cmdech) (setvar "orthomode" oom) (setvar "osmode" osm) (setvar "clayer" LA) (setvar "regenmode" rmode) (setq s1 nil) (setvar "plinewid" pw) (princ) )
(Defun MKLA (name color) (If (= (Tblsearch "layer" name) nil) (Command "layer" "m" name "c" color name "") (Command "layer" "t" name "s" name "c" color name "") ) )
|