Dj_T_Rex2002 发表于 2022-7-5 18:01:30

VPLayer Lisp冻结选择

大家好,
 
 
好的,所以我一直在到处搜索,甚至在这里,我没有找到任何关于我的问题。我创建了具有特定层名称的块。我知道我可以键入VPLAYER,然后冻结,然后输入并选择对象,然后再次输入两次,以便层在视图端口中冻结。一遍又一遍地做这件事是相当乏味的。是否有一个lisp例程可以通过键入lets say LLF并选择当前视口中要冻结的对象来完成所有这些功能?提前谢谢。

Dj_T_Rex2002 发表于 2022-7-5 18:34:51

好的,我发现了这个,但是,它只允许我选择一个项目。有没有办法将其修改为可以选择多个对象的位置?
 
 

(defun c:vlf ()
(prompt
    "\nPick entity on the layer you want freeze in this Viewport: ")
(setq name (cdr (assoc 8 (entget (car (entsel))))))
(command "_vplayer" "f" name "" "")
(princ)
)

提前谢谢。

BIGAL 发表于 2022-7-5 18:54:53

您可以使用ssget选择多个对象并检索对象层名称,在一个简单版本中,如果您在同一层上拾取对象,它将为一个层多次执行vplayer f。
 

(defun c:vlf ( / x layname ss )
(prompt
    "\nPick entities on the layers you want freeze in this Viewport: ")
(setq ss (ssget ))

(setq x 0)
(repeat (sslength ss)
(setq layname (cdr (assoc 8 (entget (ssname ss x))))))
(command "_vplayer" "f" layname "" "")
(princ)
(setq x (+ x 1))
)
)

Dj_T_Rex2002 发表于 2022-7-5 19:16:27

谢谢BIGAL,但它给了我与上面相同的结果。我试图在多个层中关闭多个对象。当我使用原始代码或您提供的代码时,它会一次执行一个。它并没有关闭所有层,而是单独关闭。我需要它作为一个团队来做。
页: [1]
查看完整版本: VPLayer Lisp冻结选择