切换层
我希望切换一个有h前缀的层选择。在网上找到这个,但它似乎只打开了一层。
有什么我错过的吗?
谢谢
(
defun c:test ()
(if LAYGROUPTOGGLE
(progn
(command "_.-layer" "off" "h-*" "")
(setq LAYGROUPTOGGLE 1)
)
(progn
(command "_.-layer" "on" "*h-*" "")
(setq LAYGROUPTOGGLE NIL)
)
)) 欢迎来到CADTutor。
这足以去掉以h-*
啊,我不是想达到这个目的。
我相当尝试自动地分配和关闭这些层。
我的想法是:
-检查这些层是否打开,然后将其关闭;检查图层是否已关闭,然后将其打开
-手动创建一个变量,每次运行lisp时,该变量的值都会切换:其中,如果variable=nil,则关闭layer;变量=1,打开图层
非常感谢。 切换Tharwat,这里的关键是切换我的朋友
是否必须全部匹配层名称才能切换?如果其中一些关闭了,而另一些没有呢? 是的,全部匹配。如果其中一些已经打开/关闭,对我来说并不重要。 噢,谢谢塔瓦的热烈欢迎。
我很惊讶你注意到了 试试这个。
(defun c:on-off (/ on_off l nm layers v e)
;; Tharwat 22.July.2014 ;;
;; Toogle Layers that their names is ;;
;; started with h- ;;
(defun on_off (code ent) (entmod (subst (cons 62 code) (assoc 62 ent) ent)))
(while (setq l (tblnext "LAYER" (not l)))
(if (wcmatch (setq nm (cdr (assoc 2 l))) "h-*")
(setq layers (cons nm layers))
)
)
(foreach layer layers
(if (minusp (setq v (cdr (assoc 62 (setq e (entget (tblobjname "LAYER" layer)))))))
(on_off (abs v) e)
(on_off (- v) e)
)
)
(princ)
)
我似乎无法运行它,也不了解足够的代码来检查是否有任何错误。REGEN没有帮助。卸下所有其他口吃,排除任何冲突。
以下是我的命令列表:
还有什么我能帮忙的吗?
你是怎么做的?你能解释一下步骤吗?
页:
[1]
2