autocad lisp遍列选择集
时间: 2023-07-05 12:12:36 浏览: 518
您好!针对您的问题,可以使用Lisp中的foreach函数遍历选择集,示例代码如下:
```
(defun c:test (/ ss)
(setq ss (ssget))
(if ss
(progn
(foreach obj (vl-remove-if-not '(lambda (x) (eq 'AcDbEntity (type x))) (mapcar 'vlax-ename->vla-object (ssnamex ss))))
; 对每个实体执行操作
)
(princ "\nNo objects selected.")
)
(princ)
)
```
上述代码中,先使用ssget函数获取选择集,然后使用vl-remove-if-not函数过滤掉非实体对象,再使用mapcar函数将每个对象转换为vla-object类型,最后使用foreach函数对每个实体对象执行操作。
希望能帮到您!
阅读全文