home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / cad / jun93.zip / TIP875.LSP < prev    next >
Lisp/Scheme  |  1993-05-19  |  1KB  |  44 lines

  1. ;;TIP 875: DOTLINE.LSP (C)1993, WATSON KILBOURNE
  2.  
  3. ;;  Dotted linetype with variable spacing and dot diameter
  4. ;;  Watson Kilbourne, October 12, 1992
  5.  
  6. (defun C:DOTLINE (/ CE BM OE SP EP DS BD DD AN NU PA)
  7.    (setq CE (getvar "cmdecho"))
  8.    (setq BM (getvar "blipmode"))
  9.    (defun NE (NE)
  10.       (setvar "cmdecho" CE)
  11.       (setvar "blipmode" BM)
  12.       (princ "Function cancelled")
  13.       (princ)
  14.    )
  15.    (setq OE *error* *error* NE)
  16.    (while (= SP nil) (setq SP (getpoint "\nStart of dotted line: ")))
  17.    (while (= EP nil) (setq EP (getpoint "\nNext point of dotted line: ")))
  18.    (setq DS (distance SP EP))
  19.    (setq BD (getdist "\nPick or enter distance between dots: "))
  20.    (if (= BD nil) (setq BD (/ DS 20)))
  21.    (setq DD (getdist "\nPick or enter diameter of dots: "))
  22.    (if (= DD nil) (setq DD (/ BD 4)))
  23.    (setvar "cmdecho" 0)
  24.    (setvar "blipmode" 0)
  25.    (while
  26.       (not (= EP nil))
  27.       (setq DS (distance SP EP)
  28.          AN (angle SP EP)
  29.          NU (/ DS BD)
  30.          PA SP
  31.       )
  32.       (repeat (fix (+ NU 1))
  33.          (command ".donut" "0.001" DD PA "")
  34.          (setq PA (polar PA AN BD))
  35.       )
  36.       (setq SP EP)
  37.       (setq EP (getpoint SP "\nNext point: <RETURN or ENTER to quit> "))
  38.    )
  39.    (setvar "blipmode" BM)
  40.    (setvar "cmdecho" CE)
  41.    (setq *error* OE OE nil)
  42.    (princ)
  43. )
  44.