Tharwat 发表于 2022-7-5 18:08:05

FWIW,您可以在反转可见性时放弃if语句:

(PutEverythingInvisible ss t)
;; t   = Make objects Invisible.
;; nil = Make objects Visible.

Grrr 发表于 2022-7-5 18:13:36

顺便说一句,我忘了提到之前(在创建这个线程之前)我在练习/学习反应堆(使用Lee Mac的模板-最初的是“属性反应堆”)。结果与OP的要求很接近,因此可能很方便:

(defun ReverseVisibility ( ss / i e)
(repeat (setq i (sslength ss))
   (setq e (entget (ssname ss (setq i (1- i)))))
   (entmod (append e (list (cons 60 (if (cdr (assoc 60 e)) 0 1)))))
   )
)

用法:
REACTNAME开启反应堆
当进行选择时,它是隔离的
reactnameoff关闭反应堆。
 
是的:使用了较慢的VLA方法。

halam 发表于 2022-7-5 18:15:38

这是否意味着一个名称应用于一个组,名称是什么?当物体被隔离时,我想给一个不同的背景。以查看您是否处于“不同的显示模式”。。与revit中一样,当灯泡关闭时,所有对象都会显示不同。

Lee Mac 发表于 2022-7-5 18:17:34

Grrr,阅读关于此函数SSMEMB的信息

Grrr 发表于 2022-7-5 18:21:26

 
不,我指的是反应堆的名字——你可以把它改成:“VisibilityReactorOn”而不是“reactonameon”。正如我在帖子中所写,这是一项实践工作。
 
 
我刚读过。。但是我遗漏了什么——我可以在代码中的哪里应用SSMEMB?

halam 发表于 2022-7-5 18:24:48

在以下部分:
因此,不需要第二个重复函数,只需添加带if表达式的ssmemb函数来检查所选对象是否为成员,执行此操作,否则执行此操作。

Tharwat 发表于 2022-7-5 18:27:11

再次感谢Tharwat!总是从你身上一点一点地学到新东西。

Grrr 发表于 2022-7-5 18:30:51

Tharwat 发表于 2022-7-5 18:34:00

In the following part:
So there is no need for the second repeat function just adding the ssmemb function with if expression to check out if the selected object is a member, do this , otherwise this.

Grrr 发表于 2022-7-5 18:38:35

Thanks, once again Tharwat! Always learning something new from you bit by bit.
页: 1 [2]
查看完整版本: “x”上的反向选择集