;;
;;Reamer Hole draw
;;
(defun bot_er (s)
(if (/= s "Function Cancelled")
   (if (= s "quit / exit abort")
   (princ) (princ (strcat "nERROR :" s)) ));if,if
(setvar "cmdecho" ocmde) (setvar "osmode" oosmo)(setvar "clayer" cla)
(setq *error* olderr)
(princ))
(defun dtr (dtr1)(* pi (/ dtr1 180.00)))
(defun tan(x)  (/ (sin x) (cos x)))
(defun ss-add () (while (setq lst(entnext lst))(ssadd lst ss) ))
;--·¹À̾îÁ¦¾î-------------------------------------------------------
(defun out_lay () (command "layer" "s" "0" "")) ;¿ÜÇü¼±·¹À̾î 0     ¢º[»ç¿ëÀÚ°¡ ÁöÁ¤]
(defun cen_lay () (command "layer" "s" "22" "")) ;Á߽ɼ±·¹À̾î 22 ¢º[»ç¿ëÀÚ°¡ ÁöÁ¤]
(defun img_lay () (command "layer" "s" "77" "")) ;°¡»ó¼±·¹À̾î 77 ¢º[»ç¿ëÀÚ°¡ ÁöÁ¤]

;--[¸ÞÀθ®½À]----------------------------------------------------------
(defun C:ream (/ olderr ocmde osmode cla dsc bp)
(setq olderr *error* *error* bot_er)
(setq ocmde (getvar "cmdecho")  oosmo (getvar "osmode")
  cla (getvar "clayer")   dsc (getvar "dimscale")
  dtx (getvar "dimtxt")   );setq
(setvar "cmdecho" 0)
(setvar "osmode" 32)
(graphscr)
(initget 1)
(setq Bp (getpoint "n¡í¡í Pick the Base point : " ))
(initget 7)
(setq dia (getreal "n¡í¡í Input the Pin diameter (mm) : " ))
(initget 7)
(setq Dp (getreal "n¡í¡í Input the Hole depth (mm) : " ))
(initget 7)
(setq Ch (getreal "n¡í¡í Input the chamfer dist. : " ))
(setq hd (/ dia 2.0) 
   Qd (/ dia 4.0)
   tanL (* Qd (tan (dtr 30))) 
      ucp (/ dia 10.0)
  lcp (/ dia 10.0)
      );setq
(setq cp1 (polar bp (dtr 270.0) ch)
      cp2 (polar bp (dtr 270.0) dp)
      cp3 (polar cp2 (dtr 270.0) tanL)   
  lp1 (polar bp (dtr 180.0) (+ hd ch))
  lp2 (polar cp1 (dtr 180.0) hd)
  lp3 (polar cp2 (dtr 180.0) hd)
  lp4 (polar cp2 (dtr 180.0) qd)   
  rp1 (polar bp (dtr 0.0) (+ hd ch))
  rp2 (polar cp1 (dtr 0.0) hd)
  rp3 (polar cp2 (dtr 0.0) hd)
  rp4 (polar cp2 (dtr 0.0) qd)
   );setq
(setvar "osmode" 0)
(out_lay)
(command "line" lp1 lp2 "")
(setq ss(ssadd)
       ss(ssadd (setq lst(entlast)) ss))
(command "line" lp2 lp3 rp3 rp2 rp1 "")
(command "line" lp4 cp3 rp4 "")
(command "line" lp2 rp2 "")(setq e1 (entlast))
(command "change" e1 "" "P" "C" "8" "")
(setq cl (getstring "nAre you want Center Line? <Yes/No>[No]: "))
(if (or (= cl "y")(= cl "Y"))
 (progn
  (setq cucp (polar bp (dtr 90.0) (/ dia 5.0))
        clcp (polar cp3 (dtr 270.0) (/ dia 5.0))
 );setq
 (cen_lay)
 (command "line" cucp clcp "")
 );progn
 );if
;È­¸é¿¡ Ç¥½Ã´Â µÇÁö¸¸ Àμâ´Â ¾ÈµÇ´Â ·¹ÀÌ¾î ¸¸µë
(command "layer""m""Ghost""c""95" "" "l" "continuous" "" "p""n" "" "")
(command "layer" "s" "ghost" "")
(setq ts (* dsc (* dtx 0.25)))
(setq tp (polar bp (dtr 270) dsc))
(command "text" "j" "m" tp ts "0" (rtos dia 2 3)) ; ÀÔ·ÂÇÑ Çɱ԰ÝÀ» È­¸é¿¡ Ç¥½Ã(Àμâ´Â ¾ÈÇÔ)
 (command "rotate" (ss-add) "" bp pause)
(setvar "clayer" cla)
(setvar "cmdecho" ocmde)                              
(setvar "osmode" oosmo)
(setq *error* olderr)
(princ)                                              
);end of defun