AutoLISP -IV Ambiente de programação Visual Lisp João Manuel R. S. Tavares / JOF 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 projectos: aplicações compostas por mais de um arquivo.lsp. 2 JOF / João Manuel R. S. Tavares 1
Acesso ao Visual Lisp Editor pelo AutoCAD 1. Iniciar o AutoCAD; 2. Executar o Visual Lisp: pelo menu TOOL: 1. seleccionar AutoLISP; 2. escolher Visual Lisp Editor. 3 Interface do Visual Lisp Editor Barra de menus Barras de ferramentas Janela de código Consola Lisp Janela Trace 4 JOF / João Manuel R. S. Tavares 2
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. 5 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; Seleccionar o arquivo.lsp desejado; Clicar no botão OK. 6 JOF / João Manuel R. S. Tavares 3
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. 7 Load de programas.lsp no Visual Lisp Carregar (interpretar, ou executar um load) um programa.lsp dentro do editor do Visual Lisp: Abrir o programa xxxx.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... 8 (A opção Load Selection, botão apenas carrega as linhas seleccionadas útil para determinar erros.) JOF / João Manuel R. S. Tavares 4
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 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. 10 JOF / João Manuel R. S. Tavares 5
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: execução controlada do programa; acompanhamento visual de variáveis; verificação da pilha de execução do programa; mensagem de erro detalhada associada a uma expressão errónea; editor colorido enfatizando a sintaxe da linguagem; formatador de texto. 11 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. 12 JOF / João Manuel R. S. Tavares 6
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. Seleccionar: no menu Debug a opção Toggle Breakpoint ou na barra de ferramentas Debug o botão Set Breakpoint. 13 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. 14 JOF / João Manuel R. S. Tavares 7
Executar o programa passo a passo Estando a execução do programa em pausa num determinado breakpoint: 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. 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. 15 Visualizar o valor de variáveis Estando a execução do programa em pausa num determinado breakpoint: 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. Para retomar a execução de um programa até o final do arquivo ou até outro breakpoint: Seleccionar o botão Continue do barra de ferramentas Debug. 16 JOF / João Manuel R. S. Tavares 8
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 excepções são a janela console e a janela trace. Essas janelas nunca fecham. 17 Verificar o balanceamento de parênteses 18 1. Seleccionar 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 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. 4. Colocar o parêntese no lugar correcto e apagar o parêntese acrescentado automaticamente no final do arquivo. 5. 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.) JOF / João Manuel R. S. Tavares 9
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. 19 Verificar a sintaxe de um programa 20 1. Ir para o janela de edição do Visual Lisp. 2. Seleccionar 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 um 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 seleccionadas útil para determinar erros.) JOF / João Manuel R. S. Tavares 10
Utilizar o código colorido para encontrar erros de sintaxe Como anteriormente foi 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. 21 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) 22 JOF / João Manuel R. S. Tavares 11
Inspeccionar a pilha de execução de um programa Quando um erro de execução ocorrer: 1. Seleccionar 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. Seleccionar a linha na pilha contendo a expressão com o erro; 2. Clicar no botão da direita do rato e seleccionar 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. 23 Gravar um programa Uma vez editado e depurado um programa, este deve ser gravado: 1. Ir para o editor do Visual Lisp; 2. Seleccionar no menu File a opção Save As; 3. Seleccionar o nome do programa e o subdirectório onde o programa será gravado. 24 JOF / João Manuel R. S. Tavares 12
Sistema de ajuda do Visual Lisp O Visual Lisp tem um sistema de ajuda completo e bastante útil. 25 JOF / João Manuel R. S. Tavares 13