明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1293|回复: 2

这个程序怎么不能完美运行???

[复制链接]
发表于 2007-8-2 19:57 | 显示全部楼层 |阅读模式

;;
;;;  解冻指定冻结的图层
;;;

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

这个程序本来是想根据用户输入解冻指定的图层,但现在问题是:

解冻操作时,也都可以解冻,但只有第一个可以显示出来,以后其它的都不能显示出来。

请高手帮我看下, 这是怎么回事。

在此表示感谢了!

发表于 2007-8-2 21:41 | 显示全部楼层

;;;       (entmod (subst (cons 70 0) (assoc '70 ennewtable) ennewtable))

替换为
       (command "layer" "t" layname "")

 楼主| 发表于 2007-8-5 20:50 | 显示全部楼层

可以告诉我为什么吗?

我想用内部函数啊。

如果用命令,前面也不要这样麻烦了啊。

唉。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-18 17:45 , Processed in 0.202043 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表