¿£Áö´Ï¾î ±â¼úºí·Î±×

;;*************************************************************************
;;Set screw draw
;;*************************************************************************
(defun bot_er (s)
(if (/= s "Function Cancelled")
(if (= s "quit / exit abort")
 (princ) (princ (strcat "nERROR :" s))
))
(setvar "cmdecho" ocmde)                              
(setvar "osmode" oosmo)
(setq *error* olderr)
(princ))
;---------------------------------------------------------------
(defun dtr (dtr1)(* pi (/ dtr1 180.00)))
;----------------------------------------------------------------
(defun C:
Setbolt (/ olderr ocmde osmode an2 b1 size da ph b e m k gd dg dp dk dl lh l1 l2 l3
p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 e1 e2 e3 e4 e5
e9 e10 e11 e12 e13 e14 e15 e16 e17 e18)
(setq olderr *error* *error* bot_er)
(setq ocmde (getvar "cmdecho"))
(setq oosmo (getvar "osmode"))
(setvar "cmdecho" 0)
(setvar "osmode" 32)
(graphscr)
(initget 1)
(setq pt (getpoint "nPick base pont : " ))
(setvar "osmode" 0)
(prompt "nBolt Range: 3,4,5,6,8,10,12,14,16,18,20")   
(initget 7)
(setq an2 (getreal "nBolt Size:M" ))
(initget 7)
(setq bl (getreal "nBolt length (mm) : " ))
(cond
((= an2 3)  (setq size '( 3 0.5 1.5 0.3 1.5 0.6)))
((= an2 4)  (setq size '( 4 0.7 2 0.3 2 0.8)))
((= an2 5)  (setq size '( 5 0.8 2.5 0.5 2.5 0.9)))
((= an2 6)  (setq size '( 6 1.0 3 0.5 3 1)))
((= an2 8)  (setq size '( 8 1.25 4 0.6 4 1.2)))
((= an2 10) (setq size '( 10 1.5 5 0.8 4 1.5)))
((= an2 12) (setq size '( 12 1.75 6 1 5 2)))
((= an2 14) (setq size '( 14 2.0 6 1 6 2)))
((= an2 16) (setq size '( 16 2.0 8 1.1 6 2)))
((= an2 18) (setq size '( 18 2.5 8 1.1 8 2.5)))
((= an2 20) (setq size '( 20 2.5 10 1.2 8 2.5)))
) ;cond
(setq d1 (nth 0 size)
      ph (nth 1 size)
       b (nth 2 size)
       e (nth 3 size)
       m (nth 4 size)
       k (nth 5 size)
      gd (- d1 (* 1.082532 ph))                   
      dg (* (/ (/ b 2.0) (cos (dtr 30.0))) 2.0)    
      dp (/ (- d1 gd) 2.0)                        
     dk1 (/ (/ b 2.0) (cos (dtr 30.0)))           
      sl (/ (/ dg 2.0) (cos (dtr 30.0)))          
      lh (/ (- d1 gd) 2.0)
      l1 (/ e (sin (dtr 30.0)))
      l2 (/ lh (cos (dtr 30.0))) 
      l3 (/ lh (cos (dtr 45.0)))) 
(setq p1 (polar pt (dtr 0.0) (/ d1 2.0))
      p2 (polar p1 (dtr 270.0) e)
      p3 (polar p2 (dtr 150.0) l1)
      p4 (polar p2 (dtr 150.0) l2)
      p7 (polar p2 (dtr 180.0) d1)
      p5 (polar p7 (dtr 30.0) l1)
      p6 (polar p7 (dtr 30.0) l2)
     p11 (polar p1 (dtr 270.0) bl)
      p8 (polar p1 (dtr 270.0) (- bl k))
      p9 (polar p11 (dtr 180.0) k)
     p10 (polar p8 (dtr 225.0) l3)
     P12 (polar p11 (dtr 180.0) d1)
     P13 (polar p8 (dtr 180.0) d1)
     p14 (polar p12 (dtr 0.0) k)
     p15 (polar p10 (dtr 180.0) gd)
     p16 (polar pt (dtr 0.0) (/ dg 2.0))
     p17 (polar p16 (dtr 270.0) m)
     p18 (polar pt (dtr 0.0) (/ dk1 2.0))
     p19 (polar p18 (dtr 270.0) m)
     p20 (polar pt (dtr 270.0) m)
     p21 (polar p17 (dtr 210.0) (/ sl 2.0))
     p22 (polar p17 (dtr 180.0) dg))
(command "layer" "s" "0" "") ;¿ÜÇü¼±·¹À̾î
(command "line" p2 p3 "")   (setq e1 (entlast))
(command "line" p3 p5 "")   (setq e19 (entlast))
(command "line" p9 p14 "")  (setq e20 (entlast))
(command "line" p5 p7 "")   (setq e2 (entlast)) 
(command "line" p13 p14 "") (setq e3 (entlast))
(command "line" p9 p8 "")   (setq e4 (entlast))  
(command "line" p7 p13 "")  (setq e8 (entlast))
(command "line" p2 p8 "")   (setq e11 (entlast))
 
(command "line" p7 p2 "")   (setq e6 (entlast)) ;
(command "line" p8 p2 "")   (setq e5 (entlast)) ; »ó´Ü Chamf¼±
(command "line" p13 p8 "")  (setq e7 (entlast)) ; ÇÏ´Ü Chamf¼±
(command "line" p6 p15 "")  (setq e9 (entlast)) ;¿ÞÂÊÇÑ´Ü Chamf¼±
(command "line" p6 p15 "")  (setq e9 (entlast)) ;¿ÞÂÊ°ñ¼±
(command "line" p4 p10 "")  (setq e10 (entlast)) ;¿À¸¥ÂÊ°ñ¼±
(command "layer" "s" "33" "") ;¼ûÀº¼±(À°°¢È¨)·¹À̾î
(command "line" p16 p17 "") (setq e12 (entlast))   
(command "line" p18 p19 "") (setq e13 (entlast))
(command "line" p20 p17 "") (setq e14 (entlast))
(command "mirror" e12 "" pt p20 "") (setq e15 (entlast))
(command "mirror" e13 "" pt p20 "") (setq e16 (entlast))
(command "mirror" e14 "" pt p20 "") (setq e17 (entlast))
(command "arc" p17 p21 p22)         (setq e18 (entlast))
(command "change" e6 e5 e7 e9 e10 "" "P" "C" "8" "") ;»ó´Ü Chamf¼±,ÇÏ´Ü Chamf¼±,°ñ¼± »ö»óȸ»ö
(command "rotate" e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11 e12 e13 e14 e15 e16 e17 e18 e19 e20 "" pt pause)
;-----------------------
(setvar "cmdecho" ocmde)                              
(setvar "osmode" oosmo)
(setq *error* olderr)
(princ)                                              
)