home *** CD-ROM | disk | FTP | other *** search
- (vmon)
-
- (defun terr(s)
- (if (/= s "Function cancelled")
- (princ (strcat "\nError:" s))
- )
- (command "layer" "s" "0" "")
- (setvar "cmdecho" 1)
- (setvar "thickness" 0)
- (setvar "elevation" elv)
- (setq *error* oer)
- (princ)
- )
-
- (defun C:TER(/ oer tert terh s1 tw tw0 tl1 tl2 axdl x p ang el elv)
- (setvar "cmdecho" 0)
- (setq elv (getvar "elevation"))
- (setvar "elevation" 0)
- (setq oer *error* *error* terr)
- (setq s1 (getstring "\n╩Σ╚δ╤⌠╠¿╩╜╤∙4/3/2/<1>:"))
- (if (= s1 "") (setq s1 "1"))
- (if (and (>= s1 "1") (<= s1 "4")) (progn
- (cond ((= s1 "1") (setq tw 1200 tl1 (getint "\n╩Σ╚δ╤⌠╠¿│ñ╢╚ <3600>:"))
- (if (= tl1 nil) (setq tl1 3600)))
- ((= s1 "2") (setq tw 1200 tl1 (getstring "\n╩Σ╚δ╕≈╤⌠╠¿│ñ╢╚ <3600,3600>:"))
- (if (= tl1 "") (setq tl1 "3600,3600"))
- (sub1 tl1)
- (setq tl1 axdl))
- ((= s1 "3") (setq tw 1200 tl1 (getint "\n╩Σ╚δ╤⌠╠¿│ñ╢╚ <3600>:"))
- (if (= tl1 nil) (setq tl1 3600)))
- ((= s1 "4") (setq tw 2100 tl1 (getint "\n╩Σ╚δ╤⌠╠¿╟░│ñ╢╚ <3600>:"))
- (if (= tl1 nil) (setq tl1 3600))
- (setq tl2 (getint "\n╩Σ╚δ╤⌠╠¿║≤│ñ╢╚ <1100>:"))
- (if (= tl2 nil) (setq tl2 1100))
- (setq tw0 (getint "\n╩Σ╚δ╤⌠╠¿╒²├µ┐φ╢╚ <1200>:"))
- (if (= tw0 nil) (setq tw0 1200)))
- )
- (princ "\n╩Σ╚δ╤⌠╠¿┐φ╢╚ <")
- (princ tw)
- (setq x (getint ">:"))
- (if (/= x nil) (setq tw x))
- (setq terh (getint "\n╤⌠╠¿╕▀╢╚ <1100>:"))
- (if (= terh nil) (setq terh 1100))
- (setq tert (getint "\n╤⌠╠¿└╕░σ║± <120> :"))
- (if (= tert nil) (setq tert 120))
- (graphscr)
- (initget "R")
- (setq p (getpoint "\n▓╬┐╝╡πR/<▓σ╚δ╡π>:"))
- (if (= p "R") (progn (setq p (getpoint "\n▓╬┐╝╡π:"))
- (setq p (getpoint p "\n▓σ╚δ╡π:"))))
- (setq ang (getangle p "\n▓σ╚δ╖╜╧≥ <0>:"))
- (if (= ang nil) (setq ang 0))
- (setvar "thickness" terh)
- (command "layer" "m" "terrace" "")
- (setq p (list (car p) (cadr p) -150))
- (cond ((= s1 "1") (ter1 tl1 tw p ang))
- ((= s1 "2") (ter2 tl1 tw p ang))
- ((= s1 "3") (ter3 tl1 tw p ang))
- ((= s1 "4") (ter4 tl1 tl2 tw0 tw p ang))
- )
- ))
- (command "layer" "s" "0" "")
- (setvar "thickness" 0)
- (setvar "elevation" elv)
- (setvar "cmdecho" 1)
- (setq *error* oer)
- (princ)
- )
-
- (defun ter1(tl11 tw1 p1 ang1 / p2 p3 p4 sn)
- (setq p2 (polar p1 (- ang1 1.57079) tw1))
- (setq p3 (polar p2 ang1 tl11))
- (setq p4 (polar p3 (+ ang1 1.57079) tw1))
- (command "pline" p1 "w" 0 "" p2 p3 p4 "")
- (setq sn (entlast))
- (command "3dface" p1 p2 p3 p4 "")
- (setq p3 (polar p1 ang1 tert))
- (command "offset" "t" (list sn p1) p3 "")
- (command "pedit" sn "w" "0" "")
- )
-
- (defun ter2(tl11 tw1 p1 ang1 / plw ang0 ang2 p2 p3 p4 p5 pl l n)
- (setq plw tert)
- (setq ang0 (- ang1 1.57079) ang2 (+ ang1 1.57079))
- (setq p2 (polar p1 ang0 tw1) p3 (polar p2 ang (apply '+ tl11)) p4 (polar p3 ang2 tw1))
- (command "pline" p1 "w" 0 "" p2 p3 p4 "")
- (command "3dface" p1 p2 p3 p4 "")
- (setq n 0 pl nil)
- (repeat (setq l (length tl11))
- (setq p2 (polar p1 ang1 plw) pl (cons p2 pl))
- (setq p3 (polar p2 ang0 (- tw1 plw)) pl (cons p3 pl))
- (if (or (= n 0) (= n (1- l))) (setq p4 (polar p3 ang1 (- (nth n tl11) (* 1.5 plw)))) (setq p4 (polar p3 ang1 (- (nth n tl11) plw))))
- (setq pl (cons p4 pl))
- (setq p5 (polar p4 ang2 (- tw1 plw)) pl (cons p5 pl))
- (setq n (1+ n) p1 p5)
- )
- (setq pl (reverse pl))
- (command "pline" (nth 0 pl) "w" "0" "")
- (setq n 1)
- (repeat (1- (length pl))
- (command (nth n pl))
- (setq n (1+ n))
- )
- (command)
- )
-
- (defun ter3(tl11 tw1 p1 ang1 / ss p2 p3 p4 plw kw)
- (setq plw tert ss nil ss (ssadd))
- (setq p2 (polar p1 (- ang1 1.57079) tw1))
- (setq p3 (polar p2 ang1 tl11))
- (setq p4 (polar p1 ang1 tl11))
- (command "pline" p1 "w" 0 "" p2 p3 p4 "")
- (ssadd (entlast) ss)
- (command "3dface" p1 p2 p3 p4 "")
- (ssadd (entlast) ss)
- (setq p2 (polar p1 (- ang1 1.57079) (- tw1 plw)))
- (setq p3 (polar p2 ang1 (- tl11 plw)))
- (setq p4 (polar p1 ang1 (- tl11 plw)))
- (command "pline" p2 "w" "0" "" p3 p4 "")
- (ssadd (entlast) ss)
- (initget "Yes No")
- (setq kw (getkword "\n╡≈╒√╤⌠╠¿╬╗╓├ <N>:"))
- (if (= kw "Yes") (progn
- (setq p1 (getpoint "\n╩Σ╚δ╢╘│╞╓ß╡┌╥╗╡π:"))
- (setq p2 (getpoint p1 "\n╩Σ╚δ╢╘│╞╓ß╡┌╢■╡π:"))
- (command "mirror" ss "" p1 p2 "y")))
- )
-
- (defun ter4(tl11 tl22 tw11 tw22 p1 ang1 / p2 p3 p4 p5 p6 plw kw ss)
- (setq plw tert ss nil ss (ssadd))
- (setq p2 (polar p1 (- ang1 1.57079) tw11))
- (setq p3 (polar p2 ang1 tl11))
- (setq p4 (polar p3 (+ ang1 1.57079) tw22))
- (setq p5 (polar p4 (+ ang1 pi) tl22))
- (setq p6 (polar p1 ang1 (- tl11 tl22)))
- (command "pline" p1 "w" 0 "" p2 p3 p4 p5 "")
- (ssadd (entlast) ss)
- (command "3dface" p1 p2 "i" p3 p6 "")
- (ssadd (entlast) ss)
- (command "3dface" "i" p6 p3 p4 p5 "")
- (ssadd (entlast) ss)
- (setq p1 (polar p1 ang1 plw))
- (setq p2 (polar p1 (- ang1 1.57079) (- tw11 plw)))
- (setq p3 (polar p2 ang1 (- tl11 (* 2 plw))))
- (setq p4 (polar p3 (+ ang1 1.57079) (- tw22 (* 2 plw))))
- (setq p5 (polar p4 (+ ang1 pi) (- tl22 plw)))
- (command "pline" p1 "w" "0" "" p2 p3 p4 p5 "")
- (ssadd (entlast) ss)
- (initget "Yes No")
- (setq kw (getkword "\n╡≈╒√╤⌠╠¿╬╗╓├ <N>:"))
- (if (= kw "Yes") (progn
- (setq p1 (getpoint "\n╩Σ╚δ╢╘│╞╓ß╡┌╥╗╡π:"))
- (setq p2 (getpoint p1 "\n╩Σ╚δ╢╘│╞╓ß╡┌╢■╡π:"))
- (command "mirror" ss "" p1 p2 "y")))
- )
-
- (defun instr(st s0 s00 / l n loop x n0 l0)
- (setq l (+ (- (strlen s0) st) 1) l0 0 n0 st n 1 loop t)
- (while (and (<= n l) loop)
- (setq x (substr s0 n0 1))
- (if (eq x s00) (setq loop nil l0 n0) (setq n0 (1+ n0) n (1+ n)))
- )
- (eval l0)
- )
-
-
- (defun sub2(af / l0 sp ep)
- (setq l0 (instr 1 af "*") nl nil)
- (setq sp (substr af 1 (- l0 1)) ep (substr af (+ l0 1)))
- (repeat (atoi sp)
- (setq nl (cons (atof ep) nl))
- )
- )
-
- (defun sub1(axd / l0 l1 ax nl)
- (setq axdl nil)
- (if (and (= (instr 1 axd ",") 0) (> (strlen axd) 0))
- (progn
- (if (> (instr 1 axd "*") 0)
- (progn
- (sub2 axd)
- (setq axdl nl))
- (setq axdl (cons (atof axd) axdl))
- )
- )
- (progn
- (setq l0 0 l1 (instr 1 axd ","))
- (while (> (instr (+ l0 1) axd ",") 0)
- (setq ax (substr axd (+ l0 1) (- l1 l0 1)))
- (if (> (instr 1 ax "*") 0) (progn
- (sub1 ax)
- (setq axdl (append nl axdl))
- )
- (setq axdl (cons (atof ax) axdl))
- )
- (setq l0 l1 l1 (instr (+ l0 1) axd ","))
- )
- (setq ax (substr axd (+ l0 1)))
- (if (> (instr 1 ax "*") 0) (progn
- (sub2 ax)
- (setq axdl (append nl axdl))
- )
- (setq axdl (cons (atof ax) axdl))
- )
- ))
- (setq axdl (reverse axdl))
- )