不知行不行。
 - (defun c:tt( )
- (vl-load-com)
- (setvar "osmode" 1)
- (setq ENT (entsel "选择箍筋:"))
- (setq mt1 (getpoint "输入特定点:"))
- (setq enst (car ENT))
- (setq d1 0.0 d2 0.0 d3 0.0 d4 0.0 )
- (vla-getboundingbox(vlax-ename->vla-object enst) 'minp 'maxp)
- (setq tt1(vlax-safearray->list minp)
- tt3(vlax-safearray->list maxp)
- t1 (list (car tt1) (cadr tt1))
- t2 (list (car tt1) (cadr tt3))
- t3 (list (car tt3) (cadr tt3))
- t4 (list (car tt3) (cadr tt1))
- mt (list (car mt1) (cadr mt1))
- )
- (setq d1 (distance t1 mt));;计算各坐标点与制定点的距离
- (setq d2 (distance t2 mt));;计算各坐标点与制定点的距离
- (setq d3 (distance t3 mt));;计算各坐标点与制定点的距离
- (setq d4 (distance t4 mt));;计算各坐标点与制定点的距离
- (setq dt1 (cons d1 t1))
- (setq dt2 (cons d2 t2))
- (setq dt3 (cons d3 t3))
- (setq dt4 (cons d4 t4))
- ;;; (setq dt1 (cons d1 (list (car tt1)(cadr tt1))))
- ;;; (setq dt2 (list d2 (car tt1)(cadr tt3)))
- ;;; (setq dt3 (list d3 (car tt3)(cadr tt3)))
- ;;; (setq dt4 (list d4 (car tt3)(cadr tt1)))
- (setq lst (list dt1 dt2 dt3 dt4))
- (setq lst (vl-sort lst '(lambda (a b) (< (car a) (car b))))
- lst (mapcar 'cadr lst)
- )
- (setq A (car LST))
- (setq st1 (list (car A) (cadr A)))
- )
|