Você está na página 1de 7

Autolisp - Parte 2

Este post foi originalmente escrito em 2008 (!!!) e vai te ajudar a usar o VLIDE para compilar seu programa autolisp para arquivos FAS. Que o autolisp compilado. Sugiro voce ler atentamente o post inicial de autolisp, para aprender a escrever seu primeiro programinha!!! Mas por que compilar? bem... Proteger o codigo fonte, agrupar um monte de programas lisp em um nico arquivo, etc.... Primeiro abra o editor do visual lisp, com o comando VLISP Em seguida, no meno "Project" escolha "New Project":

Vai pedir para salvar em algum lugar o novo projeto... Dica: SALVE NA MESMA PASTA QUE AS SUAS LISPS ESTO, assim, ao aparecer a tela abaixo, j vai estar preenchida a lista do quadro da esquerda com as lisps encontradas nesta pasta, veja:

No caso, salvei o projeto com o nome "f:/autocad/tbn2/lisps/tbn.prj" ah, nomes de projetos tem que ser somente com letras e sem espaos, ok? Apareceram diversas lisps (arquivos *.lsp) l no quadrinho da esquerda... Selecione as que desejar e clique o boto ">". Pronto elas vo para o quadrinho da direita, isso significa que j fazem parte do projeto. Agora digamos que queremos adicionar lisps que esto numa outra pasta qualquer... Basta clicar o boto "..." que est o "Look in", procurar esta pasta e o quadrinho da esquerda ser preenchido com as lisps ali disponveis... Simples no?

Bom, agora, uma parte muito importante!! Clique a aba "Build Options":

Em "Compilation Mode" marque "Optimize", sinceramente no notei diferena significativa com o modo Standard, mas em fim... Algumas compilaes podem ser problemticas sem esta opo No "Merge mode" voc tem a opo de criar um arquivo FAS para cada lisp ou um unico arquivo FAS para todas as lisps. Eu uso um nico arquivo FAS, para carregar depois mais fcil, menos demorado (e trava menos o cad principalmente se voc ainda usa o autocad 2000 em uma mquina lenta) A opo "Message Mode" pode ficar na segunda opo, ela controla quais problemas sero mostrados na janela "Output" que mostrada quando compilamos o projeto... logo voc ver isso. Deixe ainda a opo "Safe optimize" marcada... Tambm no notei nada em relao a isto..., mas em fim... J a opo "Localize Variables" serve para o compilador informar quais variveis locais no foram declaradas como tal. Como voc sabe, se uma varivel local no declarada como local, ela se torna global e isso pode comprometer a memria disponvel para do cad... Isso era problema antigamente, quando memria era um recurso caro, mas agora.... bem... O motivo seria no sobreescrever nomes de subrotinas por exemplo. Deixe marcado, para o caso de voc no compilar o arquivo FAS para VLX, assim, no corre o risco de "contaminar" variveis ou mesmo programas lisp de terceiros.... Na caixinha "Fas directory" onde ser salvo o arquivo FAS... clique o boto "..." e escolha esta pasta. Enquanto que a caixinha "Tmp directory" uma pasta para onde vo os arquivos temporrios gerados durante a compilao; escolha uma pasta DIFERENTE da pasta onde esto os lisps ou para onde ir o arquivo FAS, pos nesta pasta temporria estar cheio de arquivos *.ob" e isso s "polui" a pasta, hehehehe e podero ser apagados posteriormente. O boto "Edit Global Declarations" deixe quieto.. no necessrio editar nada l... Feito isso tudo, vai aparecer esta janelinha:

Experimente agora dar um duplo clique no nome de qualquer lisp desta janelinha!!! bacana no? ela se abra, sem voc ter que ir pelo menu "File"!!! Bom, v os 5 botes que esto na janelinha? O primeiro mostra a tela de propriedades do projeto, aquele do "Project Properties" O segundo, carrega o arquivo FAS se ele j estiver compilado, se no estiver, ele compila e carrega o arquivo FAS. o treceiro carrega as lisps do projeto, uma a uma O quarto compila o projeto, use quando for alterar muitas rotinas antes de recompilar O quinto recompila, use quando fizer alteraes em poucas lisps, demora menos... Pra voc ter ideia, o "output" do "tbn.prj" tem cerca de 2000 linhas, ao clicar o quarto boto... se fizer apenas a edio de uma lisp, apenas algumas coisas sero efetivamente alteradas no arquivo FAS e o quinto boto a melhor opo. Em fim, clique o quarto boto... A janela "" vai aparecer...

Ela ir mostrar todos os erros e avisos ocorridos durante o processo de compilar:

V as linhas marcadas de azul? Vo aparecer algumas, quase sempre.... experimente clicar duas vezes uma delas.... Vai abrir a lisp correspndente na linha onde est o erro marcado!!! Bacana n? Por exemplo, cliquei o aviso "; warning: run time evaluated expression: (READ X)" e mostrou:

Bom, cabe a voc analizar os erros... Neste caso, o aviso acontece porque usei a funo EVAL e ela d esse aviso sempre, isto , se deixar a opo de mostrar avisos ligada.... As vezes vo aparecer erros, por exemplo de argumentos invlidos e ficar muito facil descobrir onde, basta dar uma olhada na janela "Build Output" Feitas as correes, so clicar o quinto boto:

Pronto, uma nova janela "Build Output" ser criada.... Com erros e avisos ou no... Agora v ate onde o arquivo FAS deveria estar:

Agora veja a estrutura de pastas que criei... Lembra que a pasta temporria est em C:\temp? as lisps estao na pasta LISPS e o FAS na pasta FAS.... ajuda a organizxar as coisas.... IMPORTANTE: a ordem em que as lisps aparecem na janelinha acima FAZ TODA A DIFERENA!!! AINDA MAIS SE VOC COLOCA ALGUMA ROTINA PARA EXECUTAR IMEDIATAMENTE APS CARREGAR O ARQUIVO FAS COM O APPLOAD porque: se voc chamar a rotina assim: (defun algumacoisa (/)...) e colocar em algum outro arquivo lisp isto: (algumacoisa) este outro arquivo dever VIR DEPOIS do arquivo lisp que contem a definio de (algumacoisa) seno, ao carregar o arquivo FAS resultante, dar erro de funo indefinida, sacou?

isso... Depois mostro como usar este projeto de arquivo FAS mais algumas DCLs e criar um mdulo VLX que contm os dois, a vai ficar mais profissional o esquema!!!

Você também pode gostar