Advertisement
Guest User

Untitled

a guest
Oct 17th, 2017
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (defun ext_polygon(p s a / p2 p3 p4 p5 p6 p7 pa1 pa2)
  2.     (setq p1 (list 0.0 0.0))
  3.     (setq p2 (polar '(0.0 0.0) 0 (* s 4)))
  4.     (setq p3 (list (+ (car p2) (* s 5)) (* s 5)))
  5.     (setq p4 (list (car p2) (+ (cadr p2) (* s 10))))
  6.     (setq p5 (list 0.0 (* s 10)))
  7.     (setq p6 (list s (* s 9)))
  8.     (setq p7 (list s s))
  9.  
  10.     (setq pa1 (list 0.0 s))
  11.     (setq pa2 (list 0.0 (* s 9)))
  12.        
  13.     (setq p1 (turn_point p1 p a))
  14.     (setq p2 (turn_point p2 p a))
  15.     (setq p3 (turn_point p3 p a))
  16.     (setq p4 (turn_point p4 p a))
  17.     (setq p5 (turn_point p5 p a))
  18.     (setq p6 (turn_point p6 p a))
  19.     (setq p7 (turn_point p7 p a))
  20.     (setq pa1 (turn_point pa1 p a))
  21.     (setq pa2 (turn_point pa2 p a))
  22.    
  23.     (command "_line" p2 p "")
  24.     (command "_arc" p1 "_c" pa1 "_a" 90)
  25.     (command "_line" p7 p6 "")
  26.     (command "_arc" p6 "_c" pa2 "_a" 90)
  27.     (command "_line" p5 p4 "")
  28.     (command "_arc" p2 p3 p4 "")
  29.    
  30. )
  31.  
  32. (defun int_polygon(p s a / p1 p2 p3 p4 p5)
  33.     (setq p1 (list (* s 3) s))
  34.     (setq p2 (list (* s 4) s))
  35.     (setq p3 (list (* s 7) (* s 5)))
  36.     (setq p4 (list (* s 4) (* s 9)))
  37.     (setq p5 (list (* s 3) (* s 9)))
  38.    
  39.     (setq p1 (turn_point p1 p a))
  40.     (setq p2 (turn_point p2 p a))
  41.     (setq p3 (turn_point p3 p a))
  42.     (setq p4 (turn_point p4 p a))
  43.     (setq p5 (turn_point p5 p a))
  44.    
  45.     (command "_line" p2 p1 p5 p4 "")
  46.     (command "_arc" p2 p3 p4 "")
  47. )
  48.  
  49. (defun turn_point(p bp a)
  50.     (list (+ (car bp) (- (* (car p) (cos a)) (* (cadr p) (sin a))))
  51.           (+ (cadr bp) (+ (* (car p) (sin a)) (* (cadr p) (cos a)))))
  52. )
  53.  
  54. (defun c:draw_letter(/ p s a)
  55.     (setq p (getpoint "Input base point: "))
  56.     (setq s (getdist "Pick letter size"))
  57.         (setq a (getangle "Pick angle"))
  58.  
  59.     (setq s (/ s 10))
  60.    
  61.     (ext_polygon p s a)
  62.     (int_polygon p s a)
  63. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement