VPLayer Lisp冻结选择
大家好,好的,所以我一直在到处搜索,甚至在这里,我没有找到任何关于我的问题。我创建了具有特定层名称的块。我知道我可以键入VPLAYER,然后冻结,然后输入并选择对象,然后再次输入两次,以便层在视图端口中冻结。一遍又一遍地做这件事是相当乏味的。是否有一个lisp例程可以通过键入lets say LLF并选择当前视口中要冻结的对象来完成所有这些功能?提前谢谢。 好的,我发现了这个,但是,它只允许我选择一个项目。有没有办法将其修改为可以选择多个对象的位置?
(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)
)
提前谢谢。 您可以使用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))
)
)
谢谢BIGAL,但它给了我与上面相同的结果。我试图在多个层中关闭多个对象。当我使用原始代码或您提供的代码时,它会一次执行一个。它并没有关闭所有层,而是单独关闭。我需要它作为一个团队来做。
页:
[1]