¿£Áö´Ï¾î ±â¼úºí·Î±×
Spur Gear ±×¸®´Â ¸®½ÀÀÔ´Ï´Ù.
°£È¤ Ä¡ÇüÀÌ ÀÖ´Â ±â¾î¸¦ ±×¸®´Âµ¥ ¾î·Á¿òÀ» È£¼Ò ÇϽô ºÐÀÌ À־ ¿Ã·Áµå¸³´Ï´Ù.
¾à½Ä±×¸®±â¿Í Ä¡Çü ¸ðµÎ±×¸®±â ¿É¼ÇÀÌ ÀÖ½À´Ï´Ù.
¸í·É¾î´Â SGEAR ÀÔ´Ï´Ù.
·¹ÀÌ¾î ¼³Á¤ ±â´ÉÀº ¸ðµÎ OFF »óÅÂÀÔ´Ï´Ù.
·¹À̾ »ç¿ë ÇϽǷÁ¸é ¸®½À Çϴܺο¡¼­
; (command "layer" "s" "·¹À̾îÀ̸§" "")
4°÷À» ãÀ¸¼Å¼­ ¸Ç ¾Õ ; ºÎÈ£¸¦ »èÁ¦ÇØ ÁÖ½Ã°í ·¹À̾î À̸§À» ³ÖÀ¸½Ã¸é µË´Ï´Ù.
;SPURE GEAR DRAWING..... AutoLisp
; Jeong,YS  ; 1998.2.14
(defun pgr1(a b)   (sqrt (+ (expt a 2) (expt b 2))))
(defun pgr2(a b)   (sqrt (- (expt a 2) (expt b 2))))
(defun expt2  (a)  (expt   a   2))
(defun dtr (a)     (* pi (/ a 180.0)))
(defun rtd (a)     (/ (* a 180.0) pi))
(defun  sin1  (a)  (sin  (dtr  a)))
(defun  cos1  (a)  (cos  (dtr  a)))
(defun tan (a)     (/  (sin  a)   (cos  a)))
(defun tan1 (a)    (/  (sin1 a)   (cos1  a)))
(defun cot (a)     (/  (cos  a)   (sin  a)))
(defun cot1 (a)    (/  (cos1  a)  (sin1  a)))
(defun a-tan (a)   (/ (* (atan a) 180.0) pi))
;-------------------------------------------------------------------------------
(defun c:sgear()
   (graphscr)
 (defun *error* (msg)
    (princ "error: ")(princ msg)
  (setvar "osmode" os)            ;  OS¸ðµå µÇµ¹¸²
 (princ)
 );;defun *error*
   (setq os(getvar "osmode"))
   (setvar "cmdecho" 0)
   (setvar "osmode" 32)
   (setq  bas (getpoint "nPick base point :"))
   (setq m (getreal "nEnter Module ?:"))
   (setq zz (getint "nEnter tooth of No.?:"))
   (setq z (float   zz))
   (setq deg1 (getreal "nEnter pressure angle (14.5 or 20)?:"))
   (initget   1    "S   O")
   (setq   type   (getkword   "Enter  drawing type (Simple=S , Original=O)?:"))
;------------------------------------------------------------------------
   (setq d   (*   m    z))
   (setq d1  (+    d   (*   2     m)))
   (setq d2  (-    d   (*   2.5   m)))
   (setq p   (/   (*   pi     d)    z))
   (setq dp  (/   z    d))
   (setq r1  (/   d    8))
   (setq deg2(/   180    z))
   (setq deg3(/   90     z))
   (setq dd1 (/   d      2))
   (setq dd2 (*   (cos1  deg1)  (/    d    2)))
   (setq dd3 (/  (-   (+  (expt2  dd1)  (expt2   dd2))  (expt2  r1))
             (*   (*   2   dd1)   dd2)))
   (setq dd4 (-   (expt2  (/   1   dd3))  1))
   (setq deg4(a-tan  (sqrt  dd4)))
   (setq deg5(-   deg4   deg3))
   (setq dd5 (/   d1     2))
   (setq dd6 (/  (-   (+  (expt2  dd5)  (expt2   dd2))  (expt2  r1))
             (*   (*   2   dd5)   dd2)))
   (setq dd7 (-   (expt2  (/   1   dd6))  1))
   (setq deg6(a-tan  (sqrt   dd7)))
   (setq deg7(-   deg4   deg6))
   (setq deg8(+   deg2   (*   2   deg7)))
   (setq deg9(-   deg3   deg7))
   (setq w   (*   (*   pi   d1)   (/   deg8   360)))
   (setq r2  (/   w   7))
;------------------------------------------------------------------------
   (setq pt1 (polar   bas   (dtr     (+    90  (+  deg3   deg1)))
             (*   (cos1  deg1)  (/    d    2))))
   (setq pt2 (polar   bas   (dtr     (+    90   deg3))   (/   d   2)))
   (setq pt3 (polar   bas   (dtr      90)    (/   d1   2)))
   (setq pt4 (polar   bas   (dtr      90)    (/   d2   2)))
   (setq pt5 (polar   bas   (dtr     (+    90   deg2))   (/   d2   2)))
   (setq pt6 (polar   bas   (dtr     (-    90     deg5))
             (*   (cos1  deg1)  (/    d    2))))
   (setq pt7 (polar   bas   (dtr     (+    90   deg9))   dd5))
   (setq pt8 (polar   bas   (dtr     0)    (*   dd5   1.1)))
   (setq pt9 (polar   bas   (dtr    90)    (*   dd5   1.1)))
   (setq pt10(polar   bas   (dtr   180)    (*   dd5   1.1)))
   (setq pt11(polar   bas   (dtr   270)    (*   dd5   1.1)))
;------------------------------------------------------------------------
   (setvar "osmode" 0)
  ; (command  "layer"   "s" "22" "") ;Á߽ɼ±
   (command  "line"    pt8     pt10       "")    
   (command  "line"    pt9     pt11       "")
   (command  "circle"   bas  "d"   d)    
(if  (=  type    "O")
  (progn
 ;  (command  "layer"   "s" "11"  "") ;¿ÜÇü¼±
   (command  "arc"   pt3   "c"   bas    pt7)    (setq     ent1     (entlast))
   (command  "arc"   pt4   "c"   bas    pt5)    (setq     ent2     (entlast))
   (command  "arc"   pt7    "c"   pt6    "a"   100)   (setq     ent3     (entlast))
   (command  "fillet"    "r"   r2)
   (command  "fillet"    (list   ent2  pt5)  (list   ent3  pt2))  
                                                (setq     ent4     (entlast))
   (command  "mirror"   ent1   ent2   ent3   ent4  ""   bas   pt9   "")
            (setq   ent5  (entnext   ent4))  (setq   ent6   (entnext   ent5))
            (setq   ent7  (entnext   ent6))  (setq   ent8   (entnext   ent7))
   (command  "pedit"   ent1  "y"   "j"   ent2   ent3   ent4   ent5   ent6
                       ent7    ent8    ""    "")    (setq     ent9     (entlast))
   (command  "array"   ent9   ""   "p"   bas   zz   360   "")
  )  ;e  progn
 (progn
 ;  (command  "layer"   "s"   "11"   "") ;¿ÜÇü¼±
   (command  "circle"   bas  "d"   d1)
 ;  (command  "layer"   "s"   "88"  "") ; °¡»ó¼±
   (command  "circle"   bas  "d"   d2)       
   )  ;e  progn
)  ;e  if
 (setvar "osmode" os) 
   (princ)
)