新版本:
- (defun eea-test-3 (/ f l)
- (defun f (l a b c)
- (cond ((not l)
- (cons (if b
- (cons a (f (cdr (reverse b)) (last b) nil nil))
- (list a)
- )
- (if c
- (f (cdr (reverse c)) (last c) nil nil)
- )
- )
- )
- ((equal (acet-geom-extents a) (ACET-GEOM-SS-EXTENTS-ACCURATE (ssadd (car l) (ssadd a (ssadd)))))
- (f (cdr l) a (cons (car l) b) c)
- )
- ((f (cdr l) a b (cons (car l) c)))
- )
- )
- (if (setq l (ssget '((0 . "LWPOLYLINE") (90 . 4) (-4 . "&=") (70 . 1))))
- (progn (setq l (vl-sort (acet-ss-to-list l)
- (function (lambda (a b) (>= (vlax-curve-getarea a) (vlax-curve-getarea b))))
- )
- )
- (f (cdr l) (car l) nil nil)
- )
- )
- )
运行缓慢... |