Buscar

Introdução ao AutoLISP

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

AutoLISP - I 
Introdução 
João Manuel R. S. Tavares 
Joaquim Oliveira Fonseca 
2 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
Bibliografia 
 Programação em AutoCAD, Curso Completo 
Fernando Luís Ferreira, João Santos 
FCA 
 
 Programando em AutoLISP 
Kramer, W. e Kramer 
MAKRON Books do Brasil Editora Ltda 
 
 Domine a 110% AutoCAD 13 
Pedro Leão Neto 
FCA 
 
 Programando em AutoLISP 
R. C. Ruschel, DCC-FEC-UNICAMP 
http://www.fec.unicamp.br/~regina/alisp0.html 
3 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
AutoLISP o que é? 
 O AutoLisp é baseado na linguagem de 
programação LISP (List Processing); de 
aprendizagem simples, porém poderosa. 
 O AutoCAD tem um interpretador de Lisp 
embebido, que permite a digitação de 
expressões/funções AutoLisp na linha de 
comando e a sua interpretação automática. 
 O AutoCAD incluí rotinas AutoLisp bastante 
úteis nos subdirectórios sample e support. 
4 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
Aplicações em AutoLisp 
 São armazenadas em arquivos ASCII com 
extensão .lsp. 
 Devem ser previamente carregadas para o 
ambiente do AutoCAD para serem executadas. 
 Como carregar: 
– na linha de comando; 
– pelo menu Tools, opção AutoLISP ...; 
– de forma automática incluindo-a no arquivo 
acad.lsp. 
5 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
Aplicações em AutoLisp 
 Carregamento de 
programas em 
autoLISP pela opção 
Load... do submenu 
AutoLISP existente 
no menu Tools. 
6 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
Visual Lisp Editor 
 O AutoCAD 
incluí um editor 
de programas 
em AutoLISP: o 
Visual Lisp 
Editor 
executado a 
partir do 
submenu 
Autolisp do 
menu Tools. 
7 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
Lisp 
 A linguagem de programação Lisp é: 
– da mesma época do Fortran; 
– diferente de outras linguagens de programação, por 
exemplo, dados e programas são tratados da mesma forma 
(tudo como listas) e são colocados no mesmo espaço de 
memória do computador; 
– linguagem interpretada; isto é, toda vez que o programa é 
executado o código fonte é avaliado; 
– muito utilizada em programação na área da inteligência 
artificial. 
 
 O Lisp utiliza a notação infixa (operador seguido dos 
operandos): 1 + 2 (+ 1 2) 
8 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
Listas - composição 
 Cada instrução em Lisp inicia com “(“, termina 
com “)” e é composta por átomos, que podem 
ser: 
– um número inteiro; 
– um número real; 
– uma cadeia de caracteres (uma string); 
– um símbolo: nome de função interna ou 
definida pelo utilizador; 
– uma variável: um símbolo que representa o 
nome de um dado; 
9 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
Listas - composição 
– um nil: valor nulo (vazio); 
– um apontador para um arquivo (file descritor); 
– uma sub-rotina: nome de funções internas e 
externas do AutoLisp; 
– um nome de entidade: código numérico 
associado ao objeto numa sessão de 
trabalho; 
– conjunto de seleção: conjunto de objetos 
selecionados. 
10 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
Listas - Exemplos 
 Exemplos de listas de dados: 
 
– (2.0 3.5 7.6) 
– ("paola" (11 06 1996) 3.150 51) 
(sub lista) 
11 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
Listas - Exemplos 
 Lista de programa (primeiro elemento é um nome de função ou 
uma subrotina): 
– (setq A 21) 
setq é uma função, A é um símbolo (nome de variável) 
 
– (list 2 3 4) 
list é uma função 
 
– (defun vistalatdir () (command "vpoint" "1,0,0")) 
defun e command são funções 
 
– (vistalatdir) 
vistalatdir é um símbolo (nome de função). 
12 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
Avaliando expressões em Lisp 
 O interpretador do Lisp é denominado avaliador. 
 Toda a entrada em Lisp é processada por meio do 
avaliador. 
 Tudo dentro do AutoLisp em relação ao avaliador retorna 
um valor como resultado, por exemplo: 
– quando um elemento de dado é apresentado ao avaliador, 
o valor atribuído ao elemento é retornado; 
– quando um símbolo é apresentado, o valor da ligação atual 
do símbolo é retornado; 
– quando uma lista de programa, é apresentada, essa é 
executada e o valor final da execução é retornado. 
13 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
Avaliando listas de programa 
 Se o primeiro elemento da lista for o nome de 
uma subrotina ou de uma função definida, a 
subrotina ou a função é executada; o restante 
da lista é usado como parâmetros (para a 
subrotina ou para a função em questão). 
 Se o primeiro elemento da lista não for uma 
função ou subrotina, obtém-se uma mensagem 
de erro: “bad function” (função incorreta). 
 
Exemplos de avaliação de listas de 
programa 
 (list 1 2 3) - constrói uma lista de 3 números 
inteiros; retorna (1 2 3); 
 (2.0 3.0 6.6) - retorna erro: bad function; 
 (setq a 1.0) - retorna o valor 1.0 atribuído à 
variável a; 
 (set 'a 1.0) - idem mas usando o símbolo '; 
 (set (quote a) 1.0) - idem mas usando a 
subrotina/função interna quote. 
14 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
15 
AutoLisp na linha de comando do 
AutoCAD 
 É possível avaliar expressões em AutoLisp e até funções 
na linha de comando do AutoCAD. 
 Este recurso é muito utilizado para experimentação e 
teste. 
 Basta digitar na linha de comando a expressão ou função 
desejada, por exemplo: 
– Command: (setq A 2.0) 
2.0 
– Command: (setq B 3.0) 
3.0 
Retorno 
Retorno 
2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
16 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
AutoLisp na linha de comando do 
AutoCAD 
 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 
17 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
AutoLisp na linha de comando do 
AutoCAD 
 Command: (command "line" p1 p2 "") 
line From point: 
to point: 
to point: 
Command: nil 
 Command: (defun vistalatdir() (command "vpoint" 
"1,0,0")) 
VISTALATDIR 
 Command: (vistalatdir) 
Chamada de um 
comando do 
AutoCAD 
18 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
Carregar programas AutoLisp no 
AutoCAD 
 Na linha de comando digitar: (load “unidade-de-
disco:\\sub-diretório\\nome-do-promaga-com-
extensão”), por exemplo: 
Command: (load "c:\\trab\\programa1.lsp") 
 
 Na opção Load Application ... do menu Tools 
indicar o arquivo a ser carregado, procurando 
sua localização com auxílio do botão File, e 
depois carregá-lo acionando o botão Load. 
19 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
Exemplo - isomets.lsp 
 Conteúdo do arquivo isomets.lsp: 
 
;;;Vista isometrica lat-dir, fundo, por-cima 
(defun c:iso1() 
 (command "vpoint" "1,1,1")) 
;;;Vista isometrica lat-esq, fundo, por-cima 
(defun c:iso2() 
 (command "vpoint" "-1,1,1")) 
;;;Vista isometrica lat-dir, frente, por-cima 
(defun c:iso3() 
 (command "vpoint" "1,-1,1")) 
; = início de comentário 
Comando Autocad 
20 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
Exemplo - isomets.lsp 
 Carregar o arquivo isomets.lsp e executar as 
funções: 
 
Command: (load "c:\\trab\\isomets.lsp") 
ISO3 
Command: iso1 
vpoint Rotate/ <0.0000 0.0000 1.0000>: 1,1,1 
Regenerating drawing 
Command: nil 
Última função 
carregada 
21 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
Exemplo - media.lsp 
 Conteúdo do arquivo media.lsp: 
 
;;;Programa principal 
(defun c:mediatestes() 
 (setq t1 (getreal "\nNota teste-1: ")) 
 (setq t2 (getreal "\nNota teste-2: ")) 
 (setq nota (soma-e-divide)) 
 (princ "\nMedia dos testes= ") 
 (princ nota) (princ) 
) 
;;;funcao soma-e-divide 
(defun soma-e-divide() 
 (/ (+ t1 t2) 2.0) 
) 
(Para não aparecer 
“Command: nil”.) 
22 2011@JST/JOF CFAC: AutoLISP (I) - Introdução 
Exemplo - media.lsp 
 Carregar o arquivo media.lsp e executar a função 
mediatestes: 
 
Command: (load "c:\\trab\\media.lsp") 
SOMA-E-DIVIDE 
Command: mediatestes 
Nota teste-1: 15.0 
Nota teste-2: 17.0 
Media dos testes = 16.0 
Command: 
	AutoLISP - I�Introdução
	Bibliografia
	AutoLISP o que é?
	Aplicações em AutoLisp
	Aplicações em AutoLisp
	Visual Lisp Editor
	Lisp
	Listas - composição
	Listas - composição
	Listas - Exemplos
	Listas - Exemplos
	Avaliando expressões em Lisp
	Avaliando listas de programa
	Exemplos de avaliação de listas de programa
	AutoLisp na linha de comando do AutoCAD
	AutoLisp na linha de comando do AutoCAD
	AutoLisp na linha de comando do AutoCAD
	Carregar programas AutoLisp no AutoCAD
	Exemplo - isomets.lsp
	Exemplo - isomets.lsp
	Exemplo - media.lsp
	Exemplo - media.lsp

Outros materiais