Lisp选择所有对象
大家好!我正在尝试创建一个lisp,当激活时,它将自动选择和删除几个层上的所有对象,理想情况下,这些对象会写入lisp本身,因此我不必输入任何内容。不幸的是,虽然我可以随着时间的推移理解代码,但我对代码的理解非常有限,不知道我需要什么命令来完成我想做的事情。我有一个不错的开始,这段代码:
(defun c:SALL ()
(setq TargetEnt (car (entsel "\nSelect object on layer to select: ")))
(setq TargetLayer (assoc 8 (entget TargetEnt)))
(sssetfirst nil (ssget "_X" (list TargetLayer)))
(princ)
)
取自
在这里,但我不知道如何让它自动从指定层中选择项目,并且在整个过程结束时添加擦除命令似乎不起作用。
如果有人能帮我完成这件事,我将不胜感激! 欢迎来到CADTutor。
以下是此类程序的一种非常简单的形式:
(defun c:delonlayer ( / i s )
(if (setq s (ssget "_X" '((8 . "Layer1,Layer2,Layer3"))))
(repeat (setq i (sslength s)) (entdel (ssname s (setq i (1- i)))))
)
(princ)
) 完美的谢谢 也许是命令行版本?
(defun delonlayer (lays / i s )
(if (setq s (ssget "_X" (List (cons 8 lays))))
(repeat (setq i (sslength s)) (entdel (ssname s (setq i (1- i)))))
)
(princ)
)
type this on command line
(delonlayer ""Layer1,Layer2,Layer3")
页:
[1]