尝试了audit命令,但不起作用 好的,谢谢你的回答。
有一个愉快的周末 请编辑帖子#1以包含代码标签。 你好
当我加载autocad时,是否可能加载我的DWG,如果图层已冻结,则该命令不会执行任何操作?我必须首先解冻每个层,命令才能工作。。。有什么想法吗?
-编辑-
或在我尝试时,当我运行命令(“a1”)时,即使我解冻层,它也不会做任何事情。。。与lisp冲突的是我的图层被锁定。当我打开它时,它融化了。。。再说一遍,你知道吗?
谢谢 该程序似乎在我的环境中按预期运行;锁定的图层不会影响其操作,同样,如果图层已冻结,则只需解冻即可。唯一会影响冻结操作的是,如果冻结时图层是当前图层,则也可以使用简单的条件来检查图层与CLAYER系统变量的设置:
(defun c:a1 nil (FreezeThawLayer "Arch - Niveau 1"))
(defun c:a2 nil (FreezeThawLayer "Arch - Niveau 2"))
(defun c:a3 nil (FreezeThawLayer "Arch - Niveau 3"))
(defun FreezeThawLayer ( layer / dx en in ss )
(if (null (setq en (tblobjname "LAYER" layer)))
(entmake
(list
'(0 . "LAYER")
'(100 . "AcDbSymbolTableRecord")
'(100 . "AcDbLayerTableRecord")
(cons 2 layer)
'(70 . 0)
)
)
(if
(and
(not (eq (strcase (getvar 'CLAYER)) (strcase layer)))
(setq en (entget en)
dx (assoc 70 en)
en (entmod (subst (cons 70 (boole 6 1 (cdr dx))) dx en))
)
(setq ss (ssget "_X" (list (cons 8 layer))))
)
(repeat (setq in (sslength ss))
(entupd (ssname ss (setq in (1- in))))
)
)
)
(princ)
)
页:
1
[2]