本帖最后由 自贡黄明儒 于 2013-11-18 14:13 编辑
 - ;两线不平行时,画角平分线
- (defun HH:Bisect (en1 en2 / E1EN E1ST E2EN E2ST P0 P1E P1S P2E P2S PT1 PT2 PT3 X Y)
- (setq e1st (vlax-curve-getStartPoint en1))
- (setq e1en (vlax-curve-getendPoint en1))
- (setq e2st (vlax-curve-getStartPoint en2))
- (setq e2en (vlax-curve-getendPoint en2))
- (setq p0 (inters e1st e1en e2st e2en nil))
- (if (> (distance p0 e1st) (distance p0 e1en))
- (setq p1s e1st p1e e1en)
- (setq p1s e1en p1e e1st)
- )
- (if (> (distance p0 e2st) (distance p0 e2en))
- (setq p2s e2st p2e e2en)
- (setq p2s e2en p2e e2en)
- )
- (setq PT1 (polar p0 (angle p0 p1s) 10))
- (setq PT2 (polar p0 (angle p0 p2s) 10))
- (setq PT3 (mapcar '(lambda (X Y) (/ (+ X Y) 2.0)) PT1 PT2))
-
- (setq PT3 (inters p0 PT3 p1s p2s nil))
- (entmake (list (cons 0 "LINE") (cons 10 P0) (cons 11 PT3)))
- )
- (defun C:W1 (/ EN1 EN2)
- (setq en1 (car (entsel)))
- (setq en2 (car (entsel)))
- (HH:Bisect en1 en2)
- (princ)
- )
|