domingo, 20 de novembro de 2016

15 NOV // aula 8

CONTINUAÇÃO DA CONSTRUÇÃO DE PEÇAS DE XADREZ
- introdução à utilização de linguagem de programação auto.lisp


Nesta aula foi continuado o exercício da anterior, com a utilização do mesmo ficheiro e dos ficheiros fornecidos pelo docente, na sua página pessoal de ensino.
os ficheiros são: xad_inicio.lsp, sel_auto.lsp e aleatorio.lsp

~~

Nesta aula foram usados os programas AutoCAD e Sublime Text;

Partindo do ficheiro da aula passada, adicionar ao mesmo o último ficheiro .lsp fornecido pelo docente, aleatório.lsp;

Para iniciar o exercício da aula, criou-se um novo ficheiro acadiso;

_command: APPLOAD (enter), seleccionando o ficheiro .lsp da aula anterior, devidamente actualizado e guardado;

_command: SHADEMODE (enter) X (enter);

_command: XAD (enter), de modo a repetir a peça, iniciada na aula anterior;


- a partir do ficheiro em Sublime Text, obtemos:

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  )



_para se tentar obter a forma do cavalo (peça de xadrez) é acrescentado um valor de y nos pontos das circunferências;











No ficheiro AutoCAD

_command: VIEWPORT (enter), de forma a se verem todas as vistas possíveis, seleccionando assim a forma de visualização de 4 JANELAS;


Com a continuação da aula, foram-se fazendo alterações ao ficheiro .lsp, de modo a obtermos novas formas dos polígonos, a partir do Sublime Text;


_Ainda no ficheiro AutoCAD:

_command: -VPOINT (enter) 1,-1,1 (enter);

_command: POLYGON (enter) 4 lados (enter) 0,0,0 (enter) circunscrito num raio=14 (enter);

_command: POLYGON (enter) 4 lados (enter) 0,0,10 (enter) circunscrito num raio=5 (enter);

_command: POLYGON (enter) 4 lados (enter) 0,0,40 (enter) circunscrito num raio=7 (enter);

_command: LOFT (enter) seguindo-se da selecção dos polígonos por ordem ascendente (enter);






No ficheiro de Sublime Text:

1  (defun c:xad ( / lista)
2  (command "ucs" (getpoint " Indique o ponto de interseçã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 "ucs" ""()
15 (command "loft")
16 (foreach p lista (command p))
17 (command "")
18 )
19 (defun guardar()
20 (setq lista (append lista (list (set (strcat "entidade" (rtos nu))) entlast)))))
21 )
22 (defun valor (num))
23 (* num (rnd))
24 )
25 (refun rnd (/ modulus multiplier increment random)
26 (if (not seed)
27 (setq seed (getvar "DATE"))
28 )
29 (setq modulus  65536
30 multiplier 25 173
31 increment 13849
32 seed (rem (+ multiplier seed) increment) modulus)
33 random  (/ seed modulus)
34 )
35 )




para fazer uma rotação:

1  (defun c:xad ( / lista)
2  (command "ucs" (getpoint " Indique o ponto de interseçã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 "ucs" ""()
16 (command "loft")
17 (foreach p lista (command p))
18 (command "")
19 )
20 (defun guardar()
21 (setq lista (append lista (list (set (strcat "entidade" (rtos nu))) entlast)))))
22 )
23 (defun valor (num))
24 (* num (rnd))
25 )
26 (refun rnd (/ modulus multiplier increment random)
27 (if (not seed)
28 (setq seed (getvar "DATE"))
29 )
30 (setq modulus  65536
31 multiplier 25 173
32 increment 13849
33 seed (rem (+ multiplier seed) increment) modulus)
34 random  (/ seed modulus)
35 )
36 )



Sem comentários:

Enviar um comentário