;; ;;; 解冻指定冻结的图层 ;;; (defun *error*(msg) (princ "\n你按了取消键,") (princ msg) (princ "!") (princ) ) (defun c:layfrzon(/ layname layerentname ennewtable) (setvar "cmdecho" 0) (setq layname (getstring "\n请输入想要解冻的图层名<ESC退出>:")) (tblnext "layer" T) (if (/= "" layname) (progn (setq layerentname (tblobjname "layer" layname)) (setq ennewtable (entget layerentname)) (if (= (cdr (assoc '70 ennewtable)) 1) (progn (entmod (subst (cons 70 0) (assoc '70 ennewtable) ennewtable)) (COMMAND "REGENALL") (princ (strcat "\n图层<" layname ">已经解冻!!!")) (princ) ) (progn (princ (strcat "\n你输入的图层<" layname ">不是冻结状态!!!")) (princ) ) ) ) (progn (PRINC "\n没有输入图层名或指定的图层名不存在,请输入正确的图层名,退出按ESC键!!!") (princ) ) ) )
这个程序本来是想根据用户输入解冻指定的图层,但现在问题是: 解冻操作时,也都可以解冻,但只有第一个可以显示出来,以后其它的都不能显示出来。 请高手帮我看下, 这是怎么回事。 在此表示感谢了! |