À°°¢º¼Æ® ¸Ó¸® ±×¸®±â - ¿Í¼Å Æ÷ÇÔ
(defun dtr (a) (* pi (/ a 180.0))) ; Degree to Radian
(defun rtd (a) (/ (* a 180.0) pi)) ; Radian to Degree
(defun C:WNUT(/ m dp bp h b yd sd yt t1 ang p01 p02 p03 l p04 p41 p40 p42 p05 xl p04a p41a p40a p42a p06 p61 p62)
(setq old_lt (getvar "celtype")
        old_c (getvar "cecolor")
        old_om (getvar "osmode") )
(initget 1 "3 4 5 6 8 10 12 14 16 18 20 22 24 27 30 33 36")
(setq M (atoi (getkword "n> Input  - bolt size (M)[3~36]: ")) loop 1)
(setq dp (getpoint "n> Pick - start point : "))
(setq bp (getpoint dp "n> Pick - drawing direction: ") loop 1)
(cond
((= 3 M)  (SETQ H 2.4 B 5.5 YD 7  sd 5.9  YT 0.5 T1 0.7))
((= 4 M)  (SETQ H 3.2 B 7   YD 9  sd 7.6  YT 0.8 T1 1.0))
((= 5 M)  (SETQ H 4   B 8   YD 10 sd 9.2  YT 1.0 T1 1.3))
((= 6 M)  (SETQ H 5   B 10  YD 13 sd 12.2 YT 1.6 T1 1.5))
((= 8 M)  (SETQ H 6.5 B 13  YD 17 sd 15.4 YT 1.6 T1 2.0))
((= 10 M) (SETQ H 8   B 17  YD 21 sd 18.4 YT 2.0 T1 2.5))
((= 12 M) (SETQ H 10  B 19  YD 24 sd 21.5 YT 2.5 T1 3.0))
((= 14 M) (SETQ H 11  B 22  YD 28 sd 24.5 YT 2.5 T1 3.5))
((= 16 M) (SETQ H 13  B 24  YD 30 sd 28.0 YT 2.0 T1 4.0))
((= 18 M) (SETQ H 15  B 27  YD 34 sd 31.0 YT 3.0 T1 4.6))
((= 20 M) (SETQ H 16  B 30  YD 37 sd 33.8 YT 3.0 T1 5.1))
((= 22 M) (SETQ H 18  B 32  YD 39 sd 37.7 YT 3.0 T1 5.6))
((= 24 M) (SETQ H 19  B 36  YD 44 sd 40.3 YT 4.0 T1 5.9))
((= 27 M) (SETQ H 22  B 41  YD 50 sd 45.3 YT 4.0 T1 6.8))
((= 30 M) (SETQ H 24  B 46  YD 56 sd 49.9 YT 4.0 T1 7.5))
((= 33 M) (SETQ H 26  B 50  YD 60 sd 54.7 YT 5.0 T1 8.2))
((= 36 M) (SETQ H 29  B 55  YD 66 sd 59.1 YT 5.0 T1 9.0))
(t        (SETQ H 31  B 60  YD 72 sd 63.1 YT 6.0 T1 9.5))
     ); cond
(setvar "osmode" 0)
(setq ang (angle dp bp) dst (distance bp dp))
(setq p01 (polar dp (- ang pi) yt))
(setq p02 (polar p01 (+ ang (* pi 0.5)) (/ sd 2.0)))
(setq p03 (polar dp (- ang pi) (+ yt t1)))
(setq l (/ B (* 2.0 (cos (dtr 30.0)))))
(setq p04 (polar p03 (+ ang (* pi 0.5)) (/ L 2.0)))
(setq p41 (polar p04 (+ ang (* pi 0.5)) (/ L 2.0)))
(setq p40 (polar p03 (- ang (* pi 0.5)) (/ L 2.0)))
(setq p42 (polar p40 (- ang (* pi 0.5)) (/ L 2.0)))
(setq p05 (polar p01 (+ ang (* pi 1.5)) t1))
(setq xl  (* h 0.1))
(setq p04a (polar p04 (+ ang pi) (- h xl)))
(setq p41a (polar p41 (+ ang pi) (- h xl)))
(setq p40a (polar p40 (+ ang pi) (- h xl)))
(setq p42a (polar p42 (+ ang pi) (- h xl)))
(setq p06 (polar p03 (+ ang pi) h))
(setq p61 (polar p06 (+ ang (* pi 0.5)) (- l (/ l 4.0))))
(setq p62 (polar p06 (- ang (* pi 0.5)) (- l (/ l 4.0))))
(command  "line" (polar dp (+ (* pi 0.5) ang) (/ yd 2.0))
           (polar (getvar "lastpoint") (- ang pi) yt)
           (polar (getvar "lastpoint") (- ang (* pi 0.5)) yd)
           (polar (getvar "lastpoint") ang yt) "")  
(command  "line" p02 (polar (getvar "lastpoint") (- ang pi) t1)
                     (polar (getvar "lastpoint") (- ang (* pi 0.5)) sd)
                     (polar (getvar "lastpoint") ang t1) "")
(command "line" p01 (polar (getvar "lastpoint") (- ang (* pi 0.75)) (* (SQRT 2.0) T1)) "")
(command "copy" "l" "" p05 p01 )
(command "layer" "set" "Defpoints" "")
(COMMAND "COLOR" "8" ) ;º¼Æ®±Ô°Ý ¹®ÀÚ »ö»ó
(COMMAND "STYLE" "STANDARD" "" "" "" "" "" "" "") ;º¼Æ®±Ô°Ý Ç¥±â
(command "text" "j" "c" dp 3 "" m)
(command "layer" "set" "0" "") ;º¼Æ®±Ô°Ý ¿ÜÇü¼± ·¹À̾î
(COMMAND "COLOR" "ByBlock" )
(command  "line" p04 p04a "")
(command  "line" p41 p41a "")
(command  "line" p40 p40a "")
(command  "line" p42 p42a "")
(command  "line" p61 p62 "")
(command  "line" p41 p42 "")
(command "arc" p41a p61 p04a)
(command "arc" p04a p06 p40a)
(command "arc" p40a p62 p42a)
(command "linetype" "set" old_lt "" "color" old_c)
(setvar "osmode" old_om)
);dfun