Escolar Documentos
Profissional Documentos
Cultura Documentos
Bibliografia
Programao em AutoCAD, Curso Completo Fernando Lus Ferreira, Joo Santos FCA Programando em AutoLISP Kramer, W. e Kramer MAKRON Books do Brasil Editora Ltda Domine a 110% AutoCAD 13 Pedro Leo Neto FCA Programando em AutoLISP R. C. Ruschel, DCC-FEC-UNICAMP http://www.fec.unicamp.br/~regina/alisp0.html
CFAC: AutoLISP (I) - Introduo
2009@JST/JOF
AutoLISP o que ?
O AutoLisp baseado na linguagem de programao LISP (List Processing); de aprendizagem simples, porm poderosa. O AutoCAD tem um interpretador de Lisp embebido, que permite a digitao de expresses/funes AutoLisp na linha de comando e a sua interpretao automtica. O AutoCAD inclu rotinas AutoLisp bastante teis nos subdirectrios sample e support.
CFAC: AutoLISP (I) - Introduo
2009@JST/JOF
Aplicaes em AutoLisp
So armazenadas em arquivos ASCII com extenso .lsp. Devem ser previamente carregadas para o ambiente do AutoCAD para serem executadas. Como carregar:
na linha de comando; pelo menu Tools, opo AutoLISP ...; de forma automtica incluindo-a no arquivo acad.lsp.
CFAC: AutoLISP (I) - Introduo
2009@JST/JOF
Aplicaes em AutoLisp
Carregamento de programas em autoLISP pela opo Load... do submenu AutoLISP existente no menu Tools.
2009@JST/JOF
O AutoCAD inclu um editor de programas em AutoLISP: o Visual Lisp Editor executado a partir do submenu Autolisp do menu Tools.
CFAC: AutoLISP (I) - Introduo
2009@JST/JOF
Lisp
da mesma poca do Fortran; diferente de outras linguagens de programao, por exemplo, dados e programas so tratados da mesma forma (tudo como listas) e so colocados no mesmo espao de memria do computador; linguagem interpretada; isto , toda vez que o programa executado o cdigo fonte avaliado; muito utilizada em programao na rea da inteligncia artificial.
2009@JST/JOF
Listas - composio
Cada instruo em Lisp inicia com (, termina com ) e composta por tomos, que podem ser: um nmero inteiro; um nmero real; uma cadeia de caracteres (uma string); um smbolo: nome de funo interna ou definida pelo utilizador; uma varivel: um smbolo que representa o nome de um dado;
CFAC: AutoLISP (I) - Introduo
2009@JST/JOF
Listas - composio
um nil: valor nulo (vazio); um apontador para um arquivo (file descriptor); uma sub-rotina: nome de funes internas e externas do AutoLisp; um nome de entidade: cdigo numrico associado ao objecto numa sesso de trabalho; conjunto de seleco: conjunto de objectos seleccionados.
CFAC: AutoLISP (I) - Introduo
2009@JST/JOF
Listas - Exemplos
(sub lista)
10
2009@JST/JOF
Listas - Exemplos
Lista de programa (primeiro elemento um nome de funo ou uma subrotina): (setq A 21) setq uma funo, A um smbolo (nome de varivel)
(list 2 3 4) list uma funo (defun vistalatdir () (command "vpoint" "1,0,0")) defun e command so funes (vistalatdir) vistalatdir um smbolo (nome de funo).
CFAC: AutoLISP (I) - Introduo
11
2009@JST/JOF
O interpretador do Lisp denominado avaliador. Toda a entrada em Lisp processada por meio do avaliador. Tudo dentro do AutoLisp em relao ao avaliador retorna um valor como resultado, por exemplo:
quando um elemento de dado apresentado ao avaliador, o valor atribudo ao elemento retornado; quando um smbolo apresentado, o valor da ligao actual do smbolo retornado; quando uma lista de programa, apresentada, essa executada e o valor final da execuo retornado.
CFAC: AutoLISP (I) - Introduo
12
2009@JST/JOF
Se o primeiro elemento da lista for o nome de uma subrotina ou de uma funo definida, a subrotina ou a funo executada; o restante da lista usado como parmetros (para a subrotina ou para a funo em questo). Se o primeiro elemento da lista no for uma funo ou subrotina, obtm-se uma mensagem de erro: bad function (funo incorrecta).
13
2009@JST/JOF
(list 1 2 3) - constri uma lista de 3 nmeros inteiros; retorna (1 2 3); (2.0 3.0 6.6) - retorna erro: bad function; (setq a 1.0) - retorna o valor 1.0 atribudo varivel a; (set 'a 1.0) - idem mas usando o smbolo '; (set (quote a) 1.0) - idem mas usando a subrotina/funo interna quote.
CFAC: AutoLISP (I) - Introduo
14
2009@JST/JOF
possvel avaliar expresses em AutoLisp e at funes na linha de comando do AutoCAD. Este recurso muito utilizado para experimentao e teste. Basta digitar na linha de comando a expresso ou funo desejada, por exemplo:
Retorno Retorno
15
2009@JST/JOF
Command: (setq C (+ A B)) 5.0 Command: !C 5.0 Command: (setq p1 (list 1 2)) (1 2) Command: (setq p2 (list 10 20)) (10 20)
Escrever valor de C
16
2009@JST/JOF
Command: (command "line" p1 p2 "") line From point: to point: Chamada de um comando do to point: AutoCAD Command: nil Command: (defun vistalatdir() (command "vpoint" "1,0,0")) VISTALATDIR Command: (vistalatdir)
CFAC: AutoLISP (I) - Introduo
17
2009@JST/JOF
Na linha de comando digitar: (load unidade-dedisco:\\sub-diretrio\\nome-do-promaga-comextenso), por exemplo: Command: (load "c:\\trab\\programa1.lsp") Na opo Load Application ... do menu Tools indicar o arquivo a ser carregado, procurando sua localizao com auxlio do boto File, e depois carreg-lo accionando o boto Load.
CFAC: AutoLISP (I) - Introduo
18
2009@JST/JOF
Exemplo - isomets.lsp
19
2009@JST/JOF
Exemplo - isomets.lsp
20
2009@JST/JOF
Exemplo - media.lsp
21
2009@JST/JOF
Exemplo - media.lsp
22
2009@JST/JOF