home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 15 / CD_ASCQ_15_070894.iso / vrac / mar94cad.zip / TIP966.LSP < prev    next >
Lisp/Scheme  |  1994-02-15  |  1KB  |  37 lines

  1. ; TIP966.LSP: SDIV.LSP   Divide a Distance   (c)1994, Steve Q. Stapleton
  2.  
  3. (defun c:SDIV (/ PT1 PT2 SPAN QU MAXCTRS SPA1 SPA2 SPA3
  4.    FINSPA SEGMS ANG)
  5.    (setvar "cmdecho" 0)
  6.    (setq PT1 (getpoint "Pick first point: ")
  7.    PT2 (getpoint PT1 "Pick second point: "))
  8.    (setq SPAN (distance PT1 PT2))
  9.    (prompt (strcat "\nDistance is: " (rtos SPAN)))
  10.    (initget 1 "Y N")
  11.    (setq QU (getkword "\nMax. ctrs. (Y)es or (N)o?  "))
  12.    (if (= QU "Y")
  13.       (progn
  14.          (setq MAXCTRS (getdist "\nEnter max. ctrs.: ")
  15.             SPA1 (/ SPAN MAXCTRS)
  16.             SPA2  (fix SPA1)
  17.          SPA3 (* MAXCTRS SPA2))
  18.          (if (/= SPAN SPA3) (setq SEGMS (fix(+ 1 SPA2))
  19.          FINSPA (/ SPAN SEGMS)))
  20.    (prompt (strcat "\nSpacing is: "(rtos FINSPA)"\n"))))
  21.    (if (= QU "N")
  22.       (progn
  23.          (setq SEGMS (getint "\nNumber of segments: ")
  24.          FINSPA (/ SPAN  SEGMS))
  25.    (prompt (strcat "\nSpacing is: "(rtos FINSPA)"\n"))))
  26.    (setq ANG (angle PT1 PT2))
  27.    (setvar "blipmode" 0)
  28.    (setvar "snapang" ANG)
  29.    (if (= SEGMS 2)
  30.    (command "POINT" (polar PT1 ANG FINSPA)))
  31.    (if (/= SEGMS 2)
  32.       (command "POINT" (polar PT1 ANG FINSPA)
  33.    "ARRAY" (polar PT1 ANG FINSPA) "" "R" "" (- SEGMS 1) FINSPA))
  34.    (setvar "blipmode" 1)
  35.    (setvar "snapang" 0)
  36. ); end sdiv.lsp 
  37.