armyzh 发表于 2020-2-22 22:26:25

如何应用lisp提取封闭多段线中面积最大的图元?

如何应用lisp提取封闭多段线中面积最大的图元?

armyzh 发表于 2020-2-22 22:28:07

刚入明经,发现这是一个学习交流CAD经验的很好的平台,谢谢各位大佬!!

start4444 发表于 2020-2-23 00:23:45

最大的高亮。
(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
)

434939575 发表于 2020-2-23 10:31:07

start4444 发表于 2020-2-23 00:23
最大的高亮。
(defun c:tt5 (/ maxmj ss sslst)
        (setq ss (ssget '((0 . "LWPOLYLINE") (70 . 1))) ssls ...

学习了,lambda 还可以这样用,我都是mapcar一起组合用。谢谢!

armyzh 发表于 2020-2-25 14:47:06

start4444 发表于 2020-2-23 00:23
最大的高亮。
(defun c:tt5 (/ maxmj ss sslst)
        (setq ss (ssget '((0 . "LWPOLYLINE") (70 . 1))) ssls ...

非常感谢,要是能把其他封闭图元删除就更好了
页: [1]
查看完整版本: 如何应用lisp提取封闭多段线中面积最大的图元?