 - (defun c:1w (/ aj an an0 bl cx gr jl jp lm-get-circlepts-pt1 loop p0 pj sx)
- (defun lm-get-circlepts-pt1 (pt10 bj an0 co / an an1 d pt pt1)
- (setq d (/ 360.0 8))
- (setq an (+ an0 (* pi 0.25)))
- (setq an1 an0)
- (setq pt (polar pt10 an1 bj))
- (grdraw pt10 pt co)
- (setq pt (polar pt10 an bj))
- (grdraw pt10 pt co)
- (repeat 4
- (setq pt (polar pt10 an1 bj))
- (setq pt1 pt)
- (setq an1 (+ an1 (* (/ (/ 360.0 32) 180.0) pi)))
- (setq pt (polar pt10 an1 bj))
- (grdraw pt1 pt co)
- )
- )
- (if (setq p0 (getpoint "\n请指定第一点:"))
- (progn
- (setq sx 6 cx 4 jl 0.4)
- (setq loop t)
- (while loop
- (setq gr (grread t 8) aj (car gr) jp (cadr gr))
- (cond
- ((= aj 3) (setq loop nil) (redraw) (setq aj "左键") )
- ((= aj 25) (setq loop nil) (redraw) (setq aj "右键") )
- ((= aj 5)
- (redraw)
- (setq pj (distance p0 jp))
- (setq bl (*(getvar'viewsize)jl))
- (setq an0 (* pi 1.875))
- (repeat 8
- (lm-get-circlepts-pt1 p0 bl an0 cx)
- (setq an0 (+ an0 (* pi 0.25)))
- )
- (setq an (angle p0 jp))
- (cond
- ((< (* pi 0.125) an (* pi 0.375)) (lm-get-circlepts-pt1 p0 bl (* pi 0.125) sx))
- ((< (* pi 0.375) an (* pi 0.625)) (lm-get-circlepts-pt1 p0 bl (* pi 0.375) sx))
- ((< (* pi 0.625) an (* pi 0.875)) (lm-get-circlepts-pt1 p0 bl (* pi 0.625) sx))
- ((< (* pi 0.875) an (* pi 1.125)) (lm-get-circlepts-pt1 p0 bl (* pi 0.875) sx))
- ((< (* pi 1.125) an (* pi 1.375)) (lm-get-circlepts-pt1 p0 bl (* pi 1.125) sx))
- ((< (* pi 1.375) an (* pi 1.625)) (lm-get-circlepts-pt1 p0 bl (* pi 1.375) sx))
- ((< (* pi 1.625) an (* pi 1.875)) (lm-get-circlepts-pt1 p0 bl (* pi 1.625) sx))
- ((or (<= (* pi 1.875) an (* pi 2)) (<= 0 an (* pi 0.125)))(lm-get-circlepts-pt1 p0 bl (* pi 1.875) sx))
- )
- (if (> pj (*(getvar'viewsize)jl))
- (setq loop nil aj "移动鼠标")
- )
- )
- )
- )
- )
- )
- (princ)
- )
|