本帖最后由 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)
- )
|