-
- ;|pts=按分界点列左右直线点表并排序--------------------------------无痕.2004.1
- 测试:
- Command: pts
- 选分界点:
- -> (((10628.5 9484.92 0.0) (14627.4 13324.7 0.0) (16925.9 10523.5 0.0) (19602.4 12632.2 0.0))
- ((26214.7 9012.82 0.0) (27789.1 12474.9 0.0) (32354.8 9107.24 0.0) (37140.8 12065.7 0.0) (38085.5 10114.4 0.0)))
- |;
- [color=blue]
- (defun c:pts ( / pt ss ssv ptlst1 ptlst2)
- (setq ptlst1 nil ptlst2 nil
- pt (getpoint "\n选分界点:")
- ss (ssget "x" '((0 . "LINE")))
- ssv (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
- (vlax-for obj ssv
- (foreach n (list (vlax-get obj 'startpoint) (vlax-get obj 'endpoint))
- (cond ((and ( (car n) (car pt))(not (member n ptlst2))) (setq ptlst2 (cons n ptlst2)))
- )
- ) )
- (list (vl-sort ptlst1 (setq sortlst '(lambda (x y) (< (car x)(car y))))) (vl-sort ptlst2 sortlst))
- )[/color]
|