exercicio de programação realizado por Carolina Santos 20141220 
Modelaçãoo e visualização Tridimensional em Arquitectura | Prof. Luis Romão | MIARQ 3ED

(defun c:tetra ()
    (setvar "osmode" 0)
	(setvar "3dosmode" 0)
    (command "ucs" (getpoint "Indique o ponto de inserção: ") "")
    (command "pyramid" "s" "4" "0,2,3" (alea 1 5) (alea 4 9))
    (command "copy" "last" "" "d" "0,0" "0,0")
    (command "pyramid" "s" "3" "1,2,0" (alea 1 5) (alea 4 9))
    (command "pyramid" "s" "5" "2,1,1" (alea 1 5) (alea 4 9))
    (command "copy" "last" "" "d" "0,3" "0,5")
    (command "pyramid" "s" "3" "3,1,2" (alea 1 5) (alea 4 8))
	(command "pyramid" "s" "3" "-1,0,0" (alea 3 6) (alea 4 9))
    (command "box" "c" "1,0,5" "c" (alea 1 5))
	(command "copy" "last" "" "d" "0,0" "0,0")
	(command "ucs" "w")
)

(defun alea ( min max / )
	(+ min (valor (- max min)))
)

(defun valor (num)
	(* num (rnd))
)

(defun rnd (/ modulus multiplier increment random)
  (if (not seed)
    (setq seed (getvar "DATE"))
  )
  (setq modulus    65536
        multiplier 25173
        increment  13849
        seed  (rem (+ (* multiplier seed) increment) modulus)
        random     (/ seed modulus)
  )
)

