AutoLISP - IV Ambiente de programação Visual Lisp
João Manuel R. S. Tavares Joaquim Oliveira Fonseca
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 ) - verif verificador icador de código: código:
–
gerenciador de projectos:
2
mensagens de erro mais detalhadas associadas a expressões erróneas; execução controlada; visualizadorr de variáveis (watch); visualizado aplicações compostas por mais de um arquivo .lsp .
Acesso ao Visual Lisp Editor pelo AutoCAD 1. 2.
Iniciar o AutoCAD ; Executar o Visual Lisp : –
pelo menu TOOL: 1. 2.
3
seleccionar submenu AutoLISP ; escolher Visual Lisp Editor .
Interface do Visual Lisp Editor
Barra de menus Janela de código
Barras de ferramentas
Janela Trace Consola Lisp
4
Transitar entre o Visual Lisp e o AutoCAD
Do AutoCAD para o Visual Lisp : –
Do Visual Lisp para o AutoCAD : – – –
5
Digitar _vlide na linha de comando. 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 .
Abrir um arquivo AutoLisp no Visual Lisp
Na janela do Visual Lisp : – – –
6
Clicar File Open... no menu Open ou clicar no ícone Open da barra de ferramentas standard ; File Seleccionar o arquivo .lsp desejado; Clicar no botão OK .
Colorido do editor
Visual Lisp Editor é “color coding”, por exemplo: – azul: – – – – –
7
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.
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 interpretadas, por exemplo: “;2 forms loaded from ....”
(A opção Load Selection , botão apenas carrega as linhas seleccionadas – útil para determinar erros.)
8
Executar funções
No Visual Lisp digitar na janela console (nome-dafunçã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.
9
Sair do Visual Lisp Editor
10
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 .
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 detectar e corrigir estes erros: – – – – – –
11
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.
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 : – – –
Para utilizar estas funcionalidades: 1. 2. 3.
12
do editor; da console ; dos menus. Abrir o programa a ser “depurado” no Visual Lisp . Carregar o programa. Colocar um ou mais breakpoints no código do programa.
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. 2. 3.
Ir para o editor do Visual Lisp . Posicionar o cursor em frente ao parêntese de abertura da expressão desejada. Seleccionar:
13
no menu Debug a opção Toggle Breakpoint ou na barra de ferramentas Debug o botão Set Breakpoint
.
Executar um programa até um breakpoint 1. 2. 3. 4.
Ir para a janela console do Visual Lisp ; Digitar o nome da função a ser executada seguida de um ENTER ; Se necessário, responder aos prompts do programa no AutoCAD ; Quando o programa alcançar o breakpoint a execução fará uma pausa. Nesse momento pode-se: – – –
14
pedir para visualizar variáveis; executar o programa passo a passo; continuar a execução até outro breakpoint , etc.
Executar o programa passo a passo
Estando a execução do programa em pausa num determinado breakpoint : – –
Observar o ícone Status Button da barra de ferramentas Debug que mostra onde o programa está parado, isto é: – –
15
Para executar uma expressão seleccionar Step Over na barra de ferramentas Debug ; Para entrar numa expressão seleccionar Step Into na barra de ferramentas Debug .
antes de uma expressão I( ) ou depois de uma expressão ( )I .
Visualizar o valor de variáveis
Estando a execução do programa em pausa num determinado breakpoint : – –
Para retomar a execução de um programa até o final do arquivo ou até outro breakpoint : –
16
Seleccionar no menu Debug a opção Watch Last para visualizar o valor da última variável actualizada Seleccionar com um clique duplo no editor a variável que deseja visualizar e escolher o ícone óculos (Add Watch ) na janela Watch. Seleccionar o botão Continue do barra de ferramentas Debug.
Fechar janelas no Visual Lisp Editor
17
É 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 excepções são a janela console e a janela trace . Essas janelas nunca fecham.
Verificar o balanceamento de parênteses 1. 2. 3.
4. 5.
18
Seleccionar no menu Tools, Format code in ... (botão ). O Visual Lisp irá formatar o código. 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 correcto do parêntese que está em falta. Portanto, torna-se necessário percorrer o código no editor na procura do lugar correcto. Com o código formatado essa tarefa é facilitada. Colocar o parêntese no lugar correcto e apagar o parêntese acrescentado automaticamente no final do arquivo. Mais uma vez seleccionar no menu Tools, Format code in ... .
(Com o botão apenas são formatadas as linhas seleccionadas – útil para determinar erros.)
Mecanismos de verificação de parênteses
O menu Edit oferece os seguintes mecanismos para a verificação de parênteses: – – – –
19
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.
Verificar a sintaxe de um programa 1. 2. 3. 4. 5.
Ir para o janela de edição do Visual Lisp . Seleccionar no menu Tools a opção Check .... (botão ). Se aparecer uma mensagem erro na janela console é porque existe erro de sintaxe. Dar clique-duplo sobre a mensagem de erro para a expressão errónea no programa ser marcada. A mensagem de erro dará uma indicação do tipo de erro que existe.
(Com o botão apenas são verificadas as linhas seleccionadas – útil para determinar erros.)
20
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: – – –
21
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.
Erros de execução
Existem erros que só aparecem durante a execução. Por exemplo: 1. 2. 3. 4.
22
Fazer o Load de um programa; Executar o programa; Responder no AutoCAD as mensagens necessárias; Uma mensagem de erro aparece, por exemplo: “;***ERROR: bad argument type for compare: 36.0555 (155.0 155.0 0) ”
Inspeccionar a pilha de execução de um programa
Quando um erro de execução ocorrer: 1. 2.
3.
Seleccionar no menu View a opção Error Trace ; 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. Para ir ao local do erro via pilha de execução: 1. 2. 3.
23
Seleccionar a linha na pilha contendo a expressão com o erro; Clicar no botão da direita do rato e seleccionar a opção Source Position; Fazer uma análise, com recursos vistos anteriormente (por exemplo visualizando o valor de variáveis), da causa do erro indicado.
Gravar um programa
Uma vez editado e depurado um programa, este deve ser gravado: 1. 2. 3.
24
Ir para o editor do Visual Lisp ; Seleccionar no menu File a opção Save As ; Seleccionar o nome do programa e o subdirectório onde o programa será gravado.
Sistema de ajuda do Visual Lisp
25
O Visual Lisp tem um sistema de ajuda completo e bastante útil.