;;
;;Dowel Pin 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" ;--°¢µµÈ¯»êÀ» À§ÇÑ--------------------------------------------------
(defun dtr (dtr1)(* pi (/ dtr1 180.00)))
;--ȸÀüÀ» À§ÇÑ--------------------------------------------------------
(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 C:
DPINF
(/ olderr ocmde osmode cla dsc bp) ;¸í·É¾î head
(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 len (getreal "n¡í¡í Input the Pin length (mm) : " ))
;--Cal--------------------------------------------------------------
(setq hdia (/ dia 2.0)
      hlen (/ len 2.0) 
      ucp (/ dia 10.0) 
  lcp (/ dia 10.0) 
  uch (/ dia 10.0) 
  lchu (/ dia 4.0) 
  lchl (/ dia 20.0) 
      );setq
;--°¢ Æ÷ÀÎÆ®ÁöÁ¤----------------------------------------------------
(setq p1 (polar bp (dtr 90.0) hlen) 
      p2 (polar bp (dtr 270.0) hlen) 
   p3 (polar bp (dtr 90.0) (- hlen uch)) 
   p4 (polar bp (dtr 270.0) (- hlen lchu)) 
   p5 (polar p3 (dtr 180.0) hdia) 
   p6 (polar p4 (dtr 180.0) hdia)
   p7 (polar p3 (dtr 0.0) hdia) 
   p8 (polar p4 (dtr 0.0) hdia) 
   p9 (polar p1 (dtr 180.0) (- hdia uch)) 
   p10 (polar p1 (dtr 0.0) (- hdia uch)) 
   p11 (polar p2 (dtr 180.0) (- hdia lchl)) 
   p12 (polar p2 (dtr 0.0) (- hdia lchl)) 
   p13 (polar p1 (dtr 180.0) hdia) 
   p14 (polar p1 (dtr 0.0) hdia) 
   hp1 (polar bp (dtr 180.0) hdia) 
   hp2 (polar bp (dtr 0.0) hdia) 
   hp3 (polar p3 (dtr 180.0) (- hdia uch)) 
   hp4 (polar p3 (dtr 0.0) (- hdia uch))
   hp5 (polar hp3 (dtr 135.0) uch)
   hp6 (polar hp4 (dtr 45.0) uch)     
   );setq
;--Draw----------------------------------------------------  
(setvar "osmode" 0)
(out_lay)
;..¿ÜÇü±×¸®±â
(command "line" p9 p10 "")
(setq ss(ssadd)
       ss(ssadd (setq lst(entlast)) ss))
(command "arc" p9 hp5 p5)
(command "arc" p10 hp6 p7)
(command "line" p5 p6 p11 p12 p8 p7 "")
(command "fillet" "r" uch)
(command "undo" "be" "")
(command "fillet" "c" p11  hp5 )
(command "fillet" "c" p12  hp6 )
(command "line" p5 p7 "")(setq he1 (entlast))
(command "line" p6 p8 "")(setq he2 (entlast))
(command "change" he1 he2 "" "P" "C" "8" "")
(setq cl (getstring "nAre you want Center Line? <Yes/No>[No]: ")) ;Á߽ɼ± ÇÊ¿ä¿©ºÎ Áú¹®
(if (or (= cl "y")(= cl "Y"))
 (progn
  (setq cucp (polar p1 (dtr 90.0) (/ len 10.0))
        clcp (polar p2 (dtr 270.0) (/ len 10.0))
 );setq
 (cen_lay)
 (command "line" cucp clcp "")
 );progn
 );if
;--Pin spec writing----------------------------------------------------
(command "layer""m""Ghost""c""95" "" "l" "continuous" "" "p""n" "" "")
;È­¸é¿¡ Ç¥½Ã´Â µÇÁö¸¸ Àμâ´Â ¾ÈµÇ´Â ·¹ÀÌ¾î ¸¸µë
(command "layer" "s" "ghost" "") ; ·¹À̾î¹Ù²Þ
(setq ts (* dsc (/ dtx 2.0)))
(command "text" "j" "m" bp ts "0" (strcat "%%C"(rtos dia 2 2) "x" (rtos len 2 2)"L"))
; ÀÔ·ÂÇÑ Çɱ԰ÝÀ» È­¸é¿¡ Ç¥½Ã(Àμâ´Â ¾ÈÇÔ)
(command "rotate" (entlast) "" bp "90" "")
;--±×·ÁÁø ÇÉ È¸Àü¿©ºÎ-----------------------------------
 (command "rotate" (ss-add) "" bp pause)
;--------------------------------------------------------------
(setvar "clayer" cla)
(setvar "cmdecho" ocmde)                              
(setvar "osmode" oosmo)
(setq *error* olderr)
(princ)                                              
);end of defun