home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 8 / CDASC08.ISO / VRAC / CAD08N06.ZIP / ARCFLIP.LSP < prev    next >
Lisp/Scheme  |  1993-04-28  |  1KB  |  63 lines

  1. ;;;Listing 1: ARCFLIP.LSP
  2. ;;; example function to use (arcflip), by Peter Sheerin
  3. ;;; March 17, 1993
  4.  
  5. (defun C:FLIP ()
  6.   (setq ss (ssget))
  7.   (setq cnt 0)
  8.   (while (< cnt (sslength ss))
  9.     (arcflip (ssname ss cnt))
  10.     (setq cnt (+ 1 cnt))
  11.   )
  12. );defun
  13.  
  14. ;;; (arcflip), by David Sieracki
  15. ;;; March 9, 1993
  16. ;;; Tips & Trics
  17. (defun arcflip (ent1 / vec opt cpt sang eang)
  18.  
  19. (setq elst (entget ent1))
  20.  
  21. (if (and
  22.     (or (equal (cdr (assoc 0 elst)) "ARC")
  23.         (equal (cdr (assoc 0 elst)) "CIRCLE")
  24.     )
  25.     (equal '(0 0 -1) (trans (cdr (assoc 210 elst)) 0 1 t) 0.1e-12)
  26.     );and
  27. (progn
  28.  
  29. (setq vec (mapcar '- (cdr (assoc 210 elst))))
  30. (setq cpt (trans (setq opt (cdr (assoc 10 elst))) ent1 vec))
  31.  
  32.  
  33. (if (= (cdr (assoc 0 elst)) "ARC")
  34. (progn
  35.     (setq sang
  36.         (angle cpt
  37.             (trans
  38.                 (polar opt (cdr (assoc 51 elst)) 1.0)
  39.             ent1 vec)
  40.         )
  41.     )
  42.     (setq eang
  43.         (angle cpt
  44.             (trans
  45.                 (polar opt (cdr (assoc 50 elst)) 1.0)
  46.             ent1 vec)
  47.         )
  48.     )
  49. );progn
  50. );if
  51.  
  52. (entmod
  53.     (subst (cons 10 cpt) (assoc 10 elst)
  54.         (subst (cons 50 sang) (assoc 51 elst)
  55.             (subst (cons 210 vec) (assoc 210 elst) elst)
  56.     )
  57.   )
  58. );entmod
  59. );progn
  60. );if
  61.  
  62. );defun
  63.