AutoLISP - IV Ambiente de programação Visual Lisp
João Manuel R. S. Tavares Joaquim Oliveira Fonseca
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 2
Ambiente de programação Visual Lisp
O software Visual Lisp é um ambiente de programação para a linguagem AutoLisp do AutoCAD.
O ambiente de programação Visual Lisp é composto por: – editor de texto (colorido ressaltando a sintaxe do AutoLisp) – depurador (debuger) - verificador de código:
mensagens de erro mais detalhadas associadas a expressões erróneas;
execução controlada; visualizador de variáveis (watch);
– gerenciador de projetos: aplicações compostas por mais de um arquivo .lsp.
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 3
Acesso ao Visual Lisp Editor pelo AutoCAD
1. Iniciar o AutoCAD; 2. Executar o Visual Lisp:
– pelo menu TOOL: 1. selecionar submenu AutoLISP; 2. escolher Visual Lisp Editor.
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 4
Interface do Visual Lisp Editor
Barra de menus
Barras de ferramentas
Janela de código
Consola Lisp Janela Trace
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 5
Transitar entre o Visual Lisp e o AutoCAD
Do AutoCAD para o Visual Lisp: – Digitar _vlide na linha de comando.
Do Visual Lisp para o AutoCAD: – Utilizar o alt + tab do windows. – Se ambas janelas estivarem visíveis, clicar na janela
desejada. – Clicar no botão com o símbolo do AutoCAD no Visual
Lisp.
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 6
Abrir um arquivo AutoLisp no Visual Lisp
Na janela do Visual Lisp:
– Clicar File Open... no menu Open ou clicar no ícone Open File da barra de ferramentas standard;
– Selecionar o arquivo .lsp desejado; – Clicar no botão OK.
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 7
Colorido do editor
Visual Lisp Editor é “color coding”, por exemplo: – azul: funções internas (car, setq ...); – verde: números; – magenta: strings; – vermelho: parênteses; – preto: símbolos (nome de funções e variáveis
definidas pelo utilizador); – fundo cinza (background color): comentários.
Ajuda a visualizar erros de digitação.
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 8
Load de programas .lsp no Visual Lisp
Carregar (executar um load) um programa .lsp dentro do editor do Visual Lisp:
– Abrir o programa .lsp no Visual Lisp; – Clicar no botão Load active edit window ; – A janela console (horizontal inferior) mostrará quantas
formas (funções) foram carregadas, por exemplo: “;2 forms loaded from ....”
(A opção Load Selection, botão apenas carrega as linhas selecionadas – útil para determinar erros.)
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 9
Executar funções
No Visual Lisp digitar na janela console (nome-da-função), por exemplo: (c:inyn)
Obs: funções devem sempre ser chamadas entre parênteses, mesmo se foram definidas como comando. Somente o AutoCAD as interpreta como comando.
No AutoCAD na linha de comando digitar o nome da função, por exemplo: command: inyn
Obs: o AutoCAD só consegue executar funções loaded pelo Visual Lisp se foram definidas como comando.
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 10
Sair do Visual Lisp Editor
Para concluir uma sessão de trabalho no Visual Lisp Editor escolher no menu File a opção Exit.
Se o arquivo .lsp no editor de texto tiver sido alterado sem ter sido gravado, o Visual Lisp Editor irá perguntar se deseja gravar o conteúdo do editor. Neste caso, deve-se responder SIM ou NÃO.
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 11
Debugging - corrigindo programas
Erros de programação podem ser de digitação, de sintaxe e/ou lógicos.
O Visual Lisp oferece os seguintes recursos para detetar e corrigir estes erros:
– execução controlada; – acompanhamento visual de variáveis; – verificação da pilha de execução; – mensagem de erro detalhada associada a uma expressão
errónea; – editor colorido enfatizando a sintaxe da linguagem; – formatador de texto.
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 12
Executar um programa no modo debug
Um programa em Autolisp é executado no modo debug por expressões entre parênteses (parenthentical expressions). Obs: um programa em Pascal é executado no modo debug por linha de programação (isto é, por comando).
Funcionalidades de debugging são controladas de vários lugares do Visual Lisp:
– do editor; – da console; – dos menus.
Para utilizar estas funcionalidades: 1. Abrir o programa a ser “depurado” no Visual Lisp. 2. Carregar o programa. 3. Colocar um ou mais breakpoints no código do programa.
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 13
Colocar breakpoints
Breakpoints são pontos de pausa de execução inseridos num programa para possibilitar a sua verificação (debugging).
Como inserir breakpoints: 1. Ir para o editor do Visual Lisp. 2. Posicionar o cursor em frente ao parêntese de abertura da
expressão desejada. 3. Selecionar:
no menu Debug a opção Toggle Breakpoint ou na barra de ferramentas Debug o botão Set Breakpoint .
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 14
Executar um programa até um breakpoint
1. Ir para a janela console do Visual Lisp; 2. Digitar o nome da função a ser executada seguida de
um ENTER; 3. Se necessário, responder aos prompts do programa no
AutoCAD; 4. Quando o programa alcançar o breakpoint a execução
fará uma pausa. Nesse momento pode-se: – pedir para visualizar variáveis; – executar o programa passo a passo; – continuar a execução até outro breakpoint, etc.
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 15
Executar o programa passo a passo
Estando a execução do programa em pausa num determinado breakpoint:
– Para executar uma expressão selecionar Step Over na barra de ferramentas Debug;
– Para entrar numa expressão selecionar Step Into na barra de ferramentas Debug.
Observar o ícone Status Button da barra de ferramentas Debug que mostra onde o programa está parado, isto é:
– antes de uma expressão I( ) ou – depois de uma expressão ( )I.
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 16
Estando a execução do programa em pausa num determinado breakpoint:
– Selecionar no menu Debug a opção Watch Last para visualizar o valor da última variável atualizada
– Selecionar com um clique duplo no editor a variável que deseja visualizar e escolher o ícone óculos (Add Watch) na janela Watch.
Para retomar a execução de um programa até o final do arquivo ou até outro breakpoint:
– Selecionar o botão Continue do barra de ferramentas Debug.
Visualizar o valor de variáveis
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 17
Fechar janelas no Visual Lisp Editor
É possível fechar quase todas janelas no Visual Lisp, basta dar um clique no ícone correspondente (canto superior esquerdo) no cabeçalho da janela.
As únicas exceções são a janela console e a janela trace. Essas janelas nunca fecham.
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 18
Verificar o balanceamento de parênteses
1. Selecionar no menu Tools, Format code in ... (botão ). 2. O Visual Lisp irá formatar o código. 3. Se um casamento erróneo de parênteses for encontrado, a
mensagem “UNBALANCE OPENING BRACKET FOUND. ADD CLOSING BRACKET? YES/NO” será mostrada. Se for respondida com YES, um parêntese é adicionado no final do arquivo. Com certeza este não é o lugar correto do parêntese que está em falta. Portanto, torna-se necessário percorrer o código no editor na procura do lugar correto. Com o código formatado essa tarefa é facilitada.
4. Colocar o parêntese no lugar correto e apagar o parêntese acrescentado automaticamente no final do arquivo.
5. Mais uma vez selecionar no menu Tools, Format code in ... . (Com o botão apenas são formatadas as linhas selecionadas – útil para determinar erros.)
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 19
Mecanismos de verificação de parênteses
O menu Edit oferece os seguintes mecanismos para a verificação de parênteses:
– Match Forward: procura o ) correspondente a um abre parêntese;
– Match Backward: procura ( correspondente a um fecha parêntese;
– Select Forward: marca a expressão do parêntese de abertura até o correspondente de fecho;
– Select Backward: marca a expressão do parêntese de fecho até o correspondente de abertura.
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 20
Verificar a sintaxe de um programa
1. Ir para o janela de edição do Visual Lisp. 2. Selecionar no menu Tools a opção Check .... (botão ). 3. Se aparecer uma mensagem erro na janela console é
porque existe erro de sintaxe. 4. Dar clique-duplo sobre a mensagem de erro para a
expressão errónea no programa ser marcada. 5. A mensagem de erro dará uma indicação do tipo de erro
que existe. (Com o botão apenas são verificadas as linhas selecionadas – útil para determinar erros.)
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 21
Utilizar o código colorido para encontrar erros de sintaxe
Como já referido o código em Autolisp no editor do Visual Lisp é colorido. As cores têm significado, por exemplo:
– azul = funções internas (car, setq ...); – preto = símbolos (nome de funções e variáveis definidas pelo
utilizador); – ...
É comum digitar errado o nome de uma função interna (por exemplo iff para if ou iniget para initget ...). Como toda a lista de programa inicia com uma subrotina ou função deve-se observar a cor do átomo no início de cada lista. Com certeza na sua maioria será de cor azul.
Portanto, deve-se prestar atenção em listas que iniciam com um átomo preto. Verificar se existe um erro de digitação ou se é o nome de uma função definida no programa.
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 22
Erros de execução
Existem erros que só aparecem durante a execução. Por exemplo:
1. Fazer o Load de um programa; 2. Executar o programa; 3. Responder no AutoCAD as mensagens
necessárias; 4. Uma mensagem de erro aparece, por exemplo:
“;***ERROR: bad argument type for compare: 36.0555 (155.0 155.0 0)”
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 23
Inspecionar a pilha de execução de um programa
Quando um erro de execução ocorrer: 1. Selecionar no menu View a opção Error Trace; 2. Uma janela com o histórico dos cálculos executados
surgirá, mostrando no topo a função onde ocorreu o erro e abaixo as chamadas anteriores, até a chamada da função principal.
3. Para ir ao local do erro via pilha de execução: 1. Selecionar a linha na pilha contendo a expressão com o erro; 2. Clicar no botão da direita do rato e selecionar a opção
Source Position; 3. Fazer uma análise, com recursos vistos anteriormente (por
exemplo visualizando o valor de variáveis), da causa do erro indicado.
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 24
Gravar um programa
Uma vez editado e depurado um programa, este deve ser gravado:
1. Ir para o editor do Visual Lisp; 2. Selecionar no menu File a opção Save As; 3. Selecionar o nome do programa e o subdiretório
onde o programa será gravado.
2011@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 25
Sistema de ajuda do Visual Lisp
O Visual Lisp tem um sistema de ajuda completo e bastante útil.