Category : Printer + Display Graphics
Archive   : 1988LISP.ZIP
Filename : GENCURV.LSP
;
;'FUNCTION TO DEFINE A FUNCTION'
;
;DECEMBER, 1987 BY KEN SEGAL
;
(PROMPT "This function generates the 3d curve of your choice\n")
(setq VAR1NAME (getstring "What is first variable's name
(if (equal VAR1NAME "") (setq VAR1NAME "X"))
(setq VAR2NAME (getstring "What is second variable's name
(if (equal VAR2NAME "") (setq VAR2NAME "Y"))
(setq VAR3NAME (getstring "What is third variable's name
(if (equal VAR3NAME "") (setq VAR3NAME "Z"))
(setq FILENAME (getstring "What name would you like for the .LSP file?
(prompt(strcat "What is equation in terms of " VAR1NAME " and " VAR2NAME " ?\n"))
(setq EQUASTR (getstring (strcat VAR3NAME " = ")))
(setq SCRFILE (open "GEN.SCR" "w"))
(write-line (strcat "(load" (chr 34) FILENAME (chr 34) ") " FILENAME) SCRFILE)
(close SCRFILE)
;
;CREATING THE .LSP FILE WHICH ACTUALLY GENERATES YOUR CURVE
;
(setq FIL(open (strcat FILENAME ".LSP") "w"))
(write-line (strcat "(defun C:" FILENAME " ()") FIL)
(write-line (strcat "(defun EQUATE (" VAR1NAME " " VAR2NAME ")") FIL)
(write-line (strcat "(setq " VAR3NAME " " EQUASTR ")") FIL)
(write-line ")" FIL)
(write-line (strcat "(setq CMDMODE(getvar " (chr 34) "cmdecho" (chr 34) ")") FIL)
(write-line (strcat "AMIN(getreal " (chr 34) "What is lower limit for " VAR1NAME "?" (chr 34) ")") FIL)
(write-line (strcat "AMAX(getreal " (chr 34) "What is upper limit for " VAR1NAME "?" (chr 34) ")") FIL)
(write-line (strcat "AINC(getreal " (chr 34) "What is increment for " VAR1NAME "?" (chr 34) ")") FIL)
(write-line (strcat "BMIN(getreal " (chr 34) "What is lower limit for " VAR2NAME "?" (chr 34) ")") FIL)
(write-line (strcat "BMAX(getreal " (chr 34) "What is upper limit for " VAR2NAME "?" (chr 34) ")") FIL)
(write-line (strcat "BINC(getreal " (chr 34) "What is increment for " VAR2NAME "?" (chr 34) ")") FIL)
(write-line "ACOUNT AMIN)" FIL)
(write-line (strcat "(setvar " (chr 34) "cmdecho" (chr 34) "0)") FIL)
(write-line (strcat "(command " (chr 34) "vpoint" (chr 34) " " (chr 34) "1,1,1" (chr 34) " " (chr 34) "line" (chr 34) " (list AMIN BMIN 0.0) " "(list AMAX BMAX 0.0) " (chr 34) (chr 34) ")") FIL)
(write-line (strcat "(command " (chr 34) "zoom" (chr 34) " " (chr 34) "e" (chr 34) " " (chr 34) "erase" (chr 34) " " (chr 34) "l" (chr 34) " " (chr 34) (chr 34) ")") FIL)
(write-line "(while(<= ACOUNT AMAX)" FIL)
(write-line "(setq BCOUNT BMIN)" FIL)
(write-line "(while(<= BCOUNT BMAX)" FIL)
(write-line "(setq PT1(list ACOUNT BCOUNT (equate ACOUNT BCOUNT))" FIL)
(write-line "PT2(list (+ ACOUNT AINC) BCOUNT (equate (+ ACOUNT AINC) BCOUNT))" FIL)
(write-line "PT3(list (+ ACOUNT AINC) (+ BCOUNT BINC) (equate (+ ACOUNT AINC) (+ BCOUNT BINC)))" FIL)
(write-line "PT4(list ACOUNT (+ BCOUNT BINC) (equate ACOUNT (+ BCOUNT BINC))))" FIL)
(write-line (strcat "(command " (chr 34) "3DFACE" (chr 34) "PT1 PT2 PT3 PT4 " (chr 34) (chr 34) ")") FIL)
(write-line "(setq BCOUNT (+ BCOUNT BINC))" FIL)
(write-line ")" FIL)
(write-line "(setq ACOUNT (+ ACOUNT AINC))" FIL)
(write-line ")" FIL)
(write-line (strcat "(command "(chr 34) "zoom" (chr 34) " " (chr 34) "e" (chr 34) ")") FIL)
(write-line (strcat "(setvar "(chr 34) "cmdecho" (chr 34) " CMDMODE )") FIL)
(write-line ")" FIL)
(close FIL)
;
;OKAY! PROGRAM OF YOUR CHOICE IS WRITTEN! NOW LOAD AND
;EXECUTE IT USING 'GEN.SCR'
;
(command "script" "GEN")
Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!
This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.
But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/