Lee Mac 发表于 2022-7-6 14:59:50

 
哦,是的,对不起,我搞错了塞克-我知道我的意思

Commandobill 发表于 2022-7-6 15:01:52

我也知道你的意思

TimSpangler 发表于 2022-7-6 15:04:30

这可能更适合反应堆。如果有人使用图层下拉菜单打开一个图层,那么他们都会打开。使用reactor,您可以在每个命令后或某个命令后检查层状态,等等。。。。
 
就这么说吧。。。。

Lee Mac 发表于 2022-7-6 15:10:05

 
这一点很好,但当它们都打开时,代码将默认关闭一个。

TimSpangler 发表于 2022-7-6 15:13:29

 
 
没错,但你仍然可以同时打开/关闭这两个选项。

Lee Mac 发表于 2022-7-6 15:15:49

蒂姆,我试着创造这个,但我似乎不能得到它太多的功能。。。
 

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

mdbdesign 发表于 2022-7-6 15:17:30

 
希望能在加拿大找到

alanjt 发表于 2022-7-6 15:22:12

我知道我落后了,因为我们换成了反应堆,但我想我会放纵一下。
 
(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

TimSpangler 发表于 2022-7-6 15:24:42

这似乎有效。
 
命令:LSW切换图层
 
如果两个层都打开或关闭,则当调用任何命令时,它将打开批准的层。
 
5
 
我对反应堆的了解非常有限,所以请相信它的价值

TimSpangler 发表于 2022-7-6 15:28:33

注意:上面没有考虑层的存在。。
页: 1 [2]
查看完整版本: 切换图层