 - (defun c:zx (/ s1 zx_kz zx_p)
- (if (= zx_bl nil)
- (setq zx_bl 100)
- )
- (if (= zx_ys nil)
- (setq zx_ys 0)
- )
- (setq s0 (entlast)
- mode t
- zx_p (getpoint "等待....输入点: ")
- )
- (if (= zx_p nil)
- (setq zx_kza nil)
- )
- (while mode
- (setq gr (grread t 4 3)
- co (car gr)
- )
- (if (or (= co 5) (= co 3))
- (setq p1 (cadr gr)
- p1 (xyp-Grvecs-Osnap p1)
- dd (distance zx_p p1)
- rad (angle zx_p p1)
- pm (polar zx_p rad (/ dd 2.))
- p2 (polar zx_p (+ pi rad) (* 2 zx_ys))
- p7 (polar p1 rad (* 2 zx_ys))
- p3 (polar pm (+ pi rad) zx_bl)
- p6 (polar pm rad zx_bl)
- p4 (polar pm (+ (/ pi 2.) rad) (* 2 zx_bl))
- p5 (polar pm (+ (* 1.5 pi) rad) (* 2 zx_bl))
- )
- )
- (cond ((= co 5)
- (if s1
- (entdel s1)
- )
- (setq s1 (xyp-Pline (list p2 p3 p4 p5 p6 p7)
- nil
- )
- )
- )
- ((= co 3)
- (if s1
- (entdel s1)
- )
- (setq s1 (xyp-Pline (list p2 p3 p4 p5 p6 p7)
- nil
- )
- zx_p p1
- s1 nil
- )
- )
- ((or (= co 2) (= co 25))
- (setq mode nil)
- (entdel s1)
- )
- )
- )
- (xyp-PeditJoin (xyp-SSelEntnext s0) 0)
- (redraw)
- (princ)
- )
- (defun c:zxset ()
- (setq zx_bl (getreal "\n请输入出图比例: [100] ")
- zx_ys_if (Getstring "\n请输入是否有延伸线: [N] ")
- )
- (if (= zx_bl nil)
- (setq zx_bl 100)
- )
- (if (or (= zx_ys_if nil) (/= zx_ys_if))
- (setq zx_ys 0)
- (setq zx_ys zx_bl)
- )
- )
|