本帖最后由 xyp1964 于 2023-12-4 21:22 编辑
 - (defun c:tt ()
- "多段线首尾相连,选择后按顺序返回表"
- (if (setq ss (ssget '((8 . "主管"))))
- (progn
- (setq lst (ssnamex ss)
- lst (vl-remove-if '(lambda (x) (/= (type (cadr x)) 'ENAME)) lst)
- lst (mapcar 'cadr lst)
- lst (mapcar '(lambda (x)(list x(vlax-curve-getStartPoint x)(vlax-curve-getEndPoint x)))lst)
- s1 (car lst)
- lst (cdr lst)
- lst0 (list (list 0 s1))
- p1 (last s1)
- p2 (cadr s1)
- i 0
- )
- (while (setq a (vl-remove-if-not '(lambda (x) (member p1 (cdr x))) lst))
- (setq s2 (car a)
- i (1+ i)
- lst0 (cons (list i s2) lst0)
- p1 (car (vl-remove p1 (cdr s2)))
- lst (vl-remove s2 lst)
- )
- )
- (setq i 0)
- (while (setq a (vl-remove-if-not '(lambda (x) (member p2 (cdr x))) lst))
- (setq s2 (car a)
- i (1- i)
- lst0 (cons (list i s2) lst0)
- p2 (car (vl-remove p2 (cdr s2)))
- lst (vl-remove s2 lst)
- )
- )
- (setq lst (vl-sort lst0 '(lambda (x y) (< (car x) (car y)))))
- (setq lst (mapcar 'caadr lst))
- ;|(setq ptn (mapcar 'xyp-CurveMidPoint lst)
- i 0
- aa(mapcar '(lambda (x) (setq i (1+ i)) (xyp-Text 5 x (itoa i)))ptn)
- l1 (xyp-Pline ptn nil)
- )|;
- )
- )
- (princ)
- )
|