Xadrez - 3D Autocad e NotePad ++
Apresentação do enúnciado
Xadrez
Passo 1: LISP disponível no site do docente, aleatório, adicionar no Lisp "xadrez" criado na aula anterior
Passo 2: "APPLOAD" , LISP Xadrez
Passo 3: "SHADEMODE" (enter)
Passo 4: Comando "XAD" , para repetir a peça
Passo 5: Modo automatizado
1 (defun c:xad ( / lista)
2 (command "ucs" (getpoint " Indique o ponto de inserção da peça. ") "")
3 (setq nu 0)
4 (command "circle" "0,0,0" (valor 10))
5 (guardar)
6 (command "circle" "0,0,20" (valor 8))
7 (guardar)
8 (command "circle" "0,0,25" (valor 5))
9 (guardar)
10 (command "circle" "0,0,30" (valor 5))
11 (guardar)
12 (command "circle" "0,0,40" (valor 10))
13 (guardar)
14 (solido)
15
16 (command "ucs" "")
17 )
18 (defun solido ()
19 (command "loft")
20 (foreach p lista (command p))
21 (command "" "")
22 )
23 (defun guardar()
24 (setq lista (append lista (list (set (read (strcat "entidade" (rtos nu))) (entlast)))))
25 )
26 (defun valor (num)
27 (* num (rnd))
28 )
29 (defun rnd (/ modulus multiplier increment random)
30 (if (not seed)
31 (setq seed (getvar "DATE"))
32 )
33 (setq modulus 65536
34 multiplier 25173
35 increment 13849
36 seed (rem (+ (* multiplier seed) increment) modulus)
37 random (/ seed modulus)
38 )
39 )
1 (defun c:xad ( / lista)
2 (command "ucs" (getpoint " Indique o ponto de inserção da peça. ") "")
3 (setq nu 0)
4 (command "circle" "0,0,0" (valor 10))
5 (guardar)
6 (command "circle" "0,0,20" (valor 8))
7 (guardar)
8 (command "circle" "0,0,25" (valor 5))
9 (guardar)
10 (command "circle" "0,0,30" (valor 5))
11 (guardar)
12 (command "circle" "0,0,40" (valor 10))
13 (guardar)
14 (solido)
15
16 (command "ucs" "")
17 )
18 (defun solido ()
19 (command "loft")
20 (foreach p lista (command p))
21 (command "" "")
22 )
23 (defun guardar()
24 (setq lista (append lista (list (set (read (strcat "entidade" (rtos nu))) (entlast)))))
25 )
26 (defun valor (num)
27 (* num (rnd))
28 )
29 (defun rnd (/ modulus multiplier increment random)
30 (if (not seed)
31 (setq seed (getvar "DATE"))
32 )
33 (setq modulus 65536
34 multiplier 25173
35 increment 13849
36 seed (rem (+ (* multiplier seed) increment) modulus)
37 random (/ seed modulus)
38 )
39 )
Passo 6: Para fazer o CAVALO acrescenta-se um valor a y nos pontos da circunferência
Passo 2: "POLYGON" 4 lados (0,0,0), circunescrito raio 7
Passo 3: "POLYGON" 4 lados (0,0,10), circunescrito raio 5
Passo 4: "POLYGON" 4 lados (0,0,0), circunescrito raio 14
Passo 5: "LOFT", seleciona-se os polignos por ordem
Passo 6: No NotePad ++
1 (defun c:xad ( / lista)
2 (command "ucs" (getpoint " Indique o ponto de inserção da peça. ") "")
3 (setq nu 0)
4 (command "polygon" 4 "0,0,0" "i" (valor 7))
5 (guardar)
6 (command "polygon" 4 "0,0,10" "i" (valor 5))
7 (guardar)
8 (command "polygon" 4 "0,0,40" "i" (valor 6))
9 (guardar)
10 (solido)
11
12 (command "ucs" "")
13 )
14 (defun solido ()
15 (command "loft")
16 (foreach p lista (command p))
17 (command "" "")
18 )
19 (defun guardar()
20 (setq lista (append lista (list (set (read (strcat "entidade" (rtos nu))) (entlast)))))
21 )
22 (defun valor (num)
23 (* num (rnd))
24 )
25 (defun rnd (/ modulus multiplier increment random)
26 (if (not seed)
27 (setq seed (getvar "DATE"))
28 )
29 (setq modulus 65536
30 multiplier 25173
31 increment 13849
32 seed (rem (+ (* multiplier seed) increment) modulus)
33 random (/ seed modulus)
34 )
35 )
Passo 7: Para fazer uma rotação
1 (defun c:xad ( / lista)
2 (command "ucs" (getpoint " Indique o ponto de inserção da peça. ") "")
3 (setq nu 0)
4 (command "polygon" 4 "0,0,0" "i" (valor 7))
5 (guardar)
6 (command "polygon" 4 "0,0,10" "i" (valor 5))
7 (command "rotate" "last" "" "0,0,0" (valor 180))
8 (guardar)
9 (command "polygon" 4 "0,0,40" "i" (valor 6))
10 (guardar)
11 (solido)
12
13 (command "ucs" "")
14 )
15 (defun solido ()
16 (command "loft")
17 (foreach p lista (command p))
18 (command "" "")
19 )
20 (defun guardar()
21 (setq lista (append lista (list (set (read (strcat "entidade" (rtos nu))) (entlast)))))
22 )
23 (defun valor (num)
24 (* num (rnd))
25 )
26 (defun rnd (/ modulus multiplier increment random)
27 (if (not seed)
28 (setq seed (getvar "DATE"))
29 )
30 (setq modulus 65536
31 multiplier 25173
32 increment 13849
33 seed (rem (+ (* multiplier seed) increment) modulus)
34 random (/ seed modulus)
35 )
36 )
1 (defun c:xad ( / lista)
2 (command "ucs" (getpoint " Indique o ponto de inserção da peça. ") "")
3 (setq nu 0)
4 (command "polygon" 4 "0,0,0" "i" (valor 7))
5 (guardar)
6 (command "polygon" 4 "0,0,10" "i" (valor 5))
7 (guardar)
8 (command "polygon" 4 "0,0,40" "i" (valor 6))
9 (guardar)
10 (solido)
11
12 (command "ucs" "")
13 )
14 (defun solido ()
15 (command "loft")
16 (foreach p lista (command p))
17 (command "" "")
18 )
19 (defun guardar()
20 (setq lista (append lista (list (set (read (strcat "entidade" (rtos nu))) (entlast)))))
21 )
22 (defun valor (num)
23 (* num (rnd))
24 )
25 (defun rnd (/ modulus multiplier increment random)
26 (if (not seed)
27 (setq seed (getvar "DATE"))
28 )
29 (setq modulus 65536
30 multiplier 25173
31 increment 13849
32 seed (rem (+ (* multiplier seed) increment) modulus)
33 random (/ seed modulus)
34 )
35 )
Passo 7: Para fazer uma rotação
1 (defun c:xad ( / lista)
2 (command "ucs" (getpoint " Indique o ponto de inserção da peça. ") "")
3 (setq nu 0)
4 (command "polygon" 4 "0,0,0" "i" (valor 7))
5 (guardar)
6 (command "polygon" 4 "0,0,10" "i" (valor 5))
7 (command "rotate" "last" "" "0,0,0" (valor 180))
8 (guardar)
9 (command "polygon" 4 "0,0,40" "i" (valor 6))
10 (guardar)
11 (solido)
12
13 (command "ucs" "")
14 )
15 (defun solido ()
16 (command "loft")
17 (foreach p lista (command p))
18 (command "" "")
19 )
20 (defun guardar()
21 (setq lista (append lista (list (set (read (strcat "entidade" (rtos nu))) (entlast)))))
22 )
23 (defun valor (num)
24 (* num (rnd))
25 )
26 (defun rnd (/ modulus multiplier increment random)
27 (if (not seed)
28 (setq seed (getvar "DATE"))
29 )
30 (setq modulus 65536
31 multiplier 25173
32 increment 13849
33 seed (rem (+ (* multiplier seed) increment) modulus)
34 random (/ seed modulus)
35 )
36 )
Sem comentários:
Enviar um comentário