哦,是的,对不起,我搞错了塞克-我知道我的意思 我也知道你的意思 这可能更适合反应堆。如果有人使用图层下拉菜单打开一个图层,那么他们都会打开。使用reactor,您可以在每个命令后或某个命令后检查层状态,等等。。。。
就这么说吧。。。。
这一点很好,但当它们都打开时,代码将默认关闭一个。
没错,但你仍然可以同时打开/关闭这两个选项。 蒂姆,我试着创造这个,但我似乎不能得到它太多的功能。。。
(defun c:MacON ()
(vl-load-com)
(if (not lay:react)
(progn
(setq lay:react
(vlr-command-reactor nil
(list
(cons :vlr-commandWillStart 'ChkLay))))
(princ "\n<< LAYER REACTOR INITIATED >>")))
(princ))
(defun ChkLay (/ lay1 lay2)
(and (setq lay1 (tblobjname "LAYER" "APPROVED")
lay2 (tblobjname "LAYER" "PRELIMINARY"))
(setq lay1 (vlax-ename->vla-object lay1)
lay2 (vlax-ename->vla-object lay2))
(cond ((vl-every
(function
(lambda (x) (eq :vlax-true (vla-get-layeron x)))) (list lay1 lay2))
(vla-put-layeron lay2 :vlax-false))
((vl-every
(function
(lambda (x) (eq :vlax-false (vla-get-layeron x)))) (list lay1 lay2))
(vla-put-layeron lay1 :vlax-true))))
(princ))
(defun c:MacOFF ()
(if lay:react
(progn
(vlr-remove lay:react)
(setq lay:react nil)
(princ "\n<< LAYER REACTOR DEACTIVATED >>")))
(princ))
希望能在加拿大找到 我知道我落后了,因为我们换成了反应堆,但我想我会放纵一下。
(defun c:laysw (/ lay1 lay2)
(vl-load-com)
(and
(setq lay1 (tblobjname "LAYER" "APPROVED")
lay2 (tblobjname "LAYER" "PRELIMINARY")
) ;_ setq
(setq lay1 (vlax-ename->vla-object lay1)
lay2 (vlax-ename->vla-object lay2)
) ;_ setq
(mapcar
'(lambda (x y)
(vla-put-layeron x y)
) ;_ lambda
(if (eq :vlax-true (vla-get-layeron lay1))
(list lay1 lay2)
(list lay2 lay1)
) ;_ if
'(:vlax-false :vlax-true)
) ;_ mapcar
) ;_ and
(princ)
) ;_ defun 这似乎有效。
命令:LSW切换图层
如果两个层都打开或关闭,则当调用任何命令时,它将打开批准的层。
5
我对反应堆的了解非常有限,所以请相信它的价值 注意:上面没有考虑层的存在。。
页:
1
[2]