本帖最后由 xyp1964 于 2012-3-14 20:50 编辑 
  - ;; 批量对齐
 
 - (defun c:tt ()
 
 -   (setq ukw (UKWORD 1 "1 2" "方向: 1-水平/2-垂直" ukw))
 
 -   (princ "\n选择基准物体: ")
 
 -   (setq ss1 (ssget))
 
 -   (princ "\n选择要对齐物体: ")
 
 -   (setq ss2 (ssget))
 
 -   (if (and ss1 ss2)
 
 -     (progn
 
 -       (setq n (min (sslength ss1) (sslength ss2)))
 
 -       (cond ((= ukw "1")
 
 -       (setq ss1 (car (xyp-List-Div (xyp-Sort ss1 "6" "Y-Max") n))
 
 -      ss2 (car (xyp-List-Div (xyp-Sort ss2 "5" "Y-Max") n))
 
 -       )
 
 -       (mapcar '(lambda (x y)
 
 -    (setq pt (list (car (car y)) (cadr (car x)))
 
 -          s1 (cdr y)
 
 -    )
 
 -    (xyp-move s1 (car y) pt)) ss1 ss2))
 
 -      ((= ukw "2")
 
 -       (setq ss1 (car (xyp-List-Div (xyp-Sort ss1 "6" "X-Min") n))
 
 -      ss2 (car (xyp-List-Div (xyp-Sort ss2 "5" "X-Min") n))
 
 -       )
 
 -       (mapcar '(lambda (x y)
 
 -    (setq pt (list (car (car x)) (cadr (car y)))
 
 -          s1 (cdr y)
 
 -    )
 
 -    (xyp-move s1 (car y) pt)) ss1 ss2)))))
 
 -   (princ)
 
 - )
 
  |