如何应用lisp提取封闭多段线中面积最大的图元?
如何应用lisp提取封闭多段线中面积最大的图元?刚入明经,发现这是一个学习交流CAD经验的很好的平台,谢谢各位大佬!! 最大的高亮。
(defun c:tt5 (/ maxmj ss sslst)
(setq ss (ssget '((0 . "LWPOLYLINE") (70 . 1))) sslst (ss->lst ss))
(setq maxmj (car (vl-sort sslst '(lambda (a b) (> (vla-get-area (vlax-ename->vla-object a)) (vla-get-area (vlax-ename->vla-object b)))))))
(redraw maxmj 3)
(princ)
)
;;选集->表
(defun ss->lst (ss / I L)
(repeat (setq i (sslength ss))
(setq L (cons (ssname ss (setq i (1- i))) L))
)
L
) start4444 发表于 2020-2-23 00:23
最大的高亮。
(defun c:tt5 (/ maxmj ss sslst)
(setq ss (ssget '((0 . "LWPOLYLINE") (70 . 1))) ssls ...
学习了,lambda 还可以这样用,我都是mapcar一起组合用。谢谢! start4444 发表于 2020-2-23 00:23
最大的高亮。
(defun c:tt5 (/ maxmj ss sslst)
(setq ss (ssget '((0 . "LWPOLYLINE") (70 . 1))) ssls ...
非常感谢,要是能把其他封闭图元删除就更好了
页:
[1]