(defun c:slhole()
(setq F (getvar "blipmode")) (setvar "blipmode" 0)
(setq p (getpoint "Insert point:"))
(setq D (getint "\n Enter screw size [4] [6] [8] [10] [12] [16] [20] [22]:"))
(setq L (getint "Enter plate thickness:"))
(setq A (getreal "Enter slhole angle:"))
(setq B (* pi (/ A 180)))
(if (= D 4)
 (progn
  (setq D1 4.4)
  (setq D2 8)
  (setq H 4.4)))
(if (= D 6)
 (progn
  (setq D1 6.5)
  (setq D2 11)
  (setq H 6.5)))
(if (= D 8)
 (progn
  (setq D1 8.8)
  (setq D2 14)
  (setq H 8.6)))
(if (= D 10)
 (progn
  (setq D1 11)
  (setq D2 17.5)
  (setq H 10.8)))
(if (= D 12)
 (progn
  (setq D1 13)
  (setq D2 20)
  (setq H 13)))
(if (= D 16)
 (progn
  (setq D1 18)
  (setq D2 26)
  (setq H 17.5)))
(if (= D 20)
 (progn
  (setq D1 22)
  (setq D2 30)
  (setq H 21.0)))
(if (= D 22)
 (progn
  (setq D1 24)
  (setq D2 32)
  (setq H 23.0)))
(setq p1 (polar p B H))
(setq p2 (polar p B L))
(setq p3 (polar p1 (+ B (/ pi 2)) (/ D1 2.0)))
(setq p4 (polar p1 (- B (/ pi 2)) (/ D1 2.0)))
(setq p5 (polar p1 (+ B (/ pi 2)) (/ D2 2.0)))
(setq p6 (polar p1 (- B (/ pi 2)) (/ D2 2.0)))
(setq p7 (polar p (+ B (/ pi 2)) (/ D2 2.0)))
(setq p8 (polar p (- B (/ pi 2)) (/ D2 2.0)))
(setq p9 (polar p2 (+ B (/ pi 2)) (/ D1 2.0)))
(setq p10 (polar p2 (- B (/ pi 2)) (/ D1 2.0)))
(command "line" p7 p5 p6 p8 "")
(command "line" p3 p9 "")
(command "line" p4 p10 "")
(setvar "blipmode" F))
