13
CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 2009@FEUP/DEMec-SDI JST/JOF 1 AutoLISP - IV Ambiente de programação Visual Lisp João Manuel R. S. Tavares Joaquim Oliveira Fonseca 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) - verificador de código: mensagens de erro mais detalhadas associadas a expressões erróneas; 2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 2 execução controlada; visualizador de variáveis (watch); gerenciador de projectos: aplicações compostas por mais de um arquivo .lsp.

Autolisp IV

Embed Size (px)

Citation preview

Page 1: Autolisp IV

CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 2009@FEUP/DEMec-SDI

JST/JOF 1

AutoLISP - IVAmbiente de programação Visual Lispp g ç p

João Manuel R. S. Tavares

Joaquim Oliveira FonsecaJoaquim 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) - verificador de código:

mensagens de erro mais detalhadas associadas a expressões erróneas;

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp2

; execução controlada; visualizador de variáveis (watch);

– gerenciador de projectos: aplicações compostas por mais de um arquivo .lsp.

Page 2: Autolisp IV

CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 2009@FEUP/DEMec-SDI

JST/JOF 2

Acesso ao Visual Lisp Editor pelo AutoCAD

1. Iniciar o AutoCAD;

2. Executar o Visual Lisp: – pelo menu TOOL:

1. seleccionar submenu AutoLISP;

2. escolher Visual Lisp Editor.

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp3

Interface do Visual Lisp Editor

Barra de menus

Barras de ferramentas

Janela de código

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp4

Consola LispJanela Trace

Page 3: Autolisp IV

CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 2009@FEUP/DEMec-SDI

JST/JOF 3

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.

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp5

– 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:

– 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.

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp6

Page 4: Autolisp IV

CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 2009@FEUP/DEMec-SDI

JST/JOF 4

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

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp7

– 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

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp8

j ( )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.)

Page 5: Autolisp IV

CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 2009@FEUP/DEMec-SDI

JST/JOF 5

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

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp9

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.

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

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp10

Editor irá perguntar se deseja gravar o conteúdo do editor. Neste caso, deve-se responder SIMou NÃO.

Page 6: Autolisp IV

CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 2009@FEUP/DEMec-SDI

JST/JOF 6

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; – acompanhamento visual de variáveis;

verificação da pilha de execução;

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp11

– 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:

– do editor; – da console;

d

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp12

– 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.

Page 7: Autolisp IV

CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 2009@FEUP/DEMec-SDI

JST/JOF 7

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

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp13

expressão desejada.

3. Seleccionar: 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. 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:

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp14

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.

Page 8: Autolisp IV

CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 2009@FEUP/DEMec-SDI

JST/JOF 8

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.

Ob í St t B tt d b d f t

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp15

Observar o ícone Status Button da barra de ferramentasDebug que mostra onde o programa está parado, isto é:

– 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:

– 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.

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp16

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.

Page 9: Autolisp IV

CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 2009@FEUP/DEMec-SDI

JST/JOF 9

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 j l t E j l f h

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp17

janela trace. Essas janelas nunca fecham.

Verificar o balanceamento de parênteses

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

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp18

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.)

Page 10: Autolisp IV

CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 2009@FEUP/DEMec-SDI

JST/JOF 10

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;

S l t F d ã d ê t d

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp19

– 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. 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 clique-duplo sobre a mensagem de erro para a ã ó d

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp20

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.)

Page 11: Autolisp IV

CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 2009@FEUP/DEMec-SDI

JST/JOF 11

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

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp21

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. Fazer o Load de um programa; 2. Executar o programa; 3. Responder no AutoCAD as mensagens

á i

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp22

necessárias; 4. Uma mensagem de erro aparece, por exemplo:

“;***ERROR: bad argument type for compare: 36.0555 (155.0 155.0 0)”

Page 12: Autolisp IV

CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 2009@FEUP/DEMec-SDI

JST/JOF 12

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

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp23

p perro;

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.

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;

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp24

3. Seleccionar o nome do programa e o subdirectório onde o programa será gravado.

Page 13: Autolisp IV

CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp 2009@FEUP/DEMec-SDI

JST/JOF 13

Sistema de ajuda do Visual Lisp

O Visual Lisp tem um sistema de ajuda completo e bastante útil.

2009@JST/JOF CFAC: AutoLISP (IV) - Ambiente de programação Visual Lisp25