Mostrando postagens com marcador arquivos fas. Mostrar todas as postagens
Mostrando postagens com marcador arquivos fas. Mostrar todas as postagens

Arquivos FAS

Buenas moçada!!!
Vi no forum que ainda tem gente que não sabe criar arquivos fas, vamos lá, é bem simples!!!

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 ESTÃO, 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 espaços, ok?

Apareceram diversas lisps lá no quadrinho da esquerda... Selecione as que desejar e clique o botão ">". Pronto elas vão para o quadrinho da direita, isso significa que já fazem parte do projeto

Agora digamos que queremos adicionar lisps que estão numa outra pasta qualquer...
Basta clicar o botão "..." que está o "Look in", procurar esta pasta e o quadrinho da esquerda será preenchido com as lisps ali disponíveis... Simples não?


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


Em "Compilation Mode" marque "Optimize", sinceramente não notei diferença significativa com o modo Standard, mas em fim... Algumas compilações podem ser problemáticas sem esta opção

No "Merge mode" você tem a opção 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 facil, menos demorado (e trava menos o cad principalmente se você ainda usa o cad 2000 em uma máquina lenta)

A opção "Message Mode" pode ficar na segunda opção, ela controla quais problemas serão mostrados na janela "Output" que é mostrada quando compilamos o projeto... logo você verá isso

Deixe ainda a opção "Safe optimize" marcada... Também não notei nada em relação a isto...
Já a opção "Localize Variables" serve para o compilador informar quais variaveis locais não foram declaradas como tal. Como você sabe, se uma variavel local não é declarada como local, ela se torna global e isso pode comprometer a memória disponível para do cad... Isso era problema antigamente, quando memória era um recurso caro, mas agora.... bem... Deixe marcado, para o caso de você não compilar o arquivo FAS para VLX, assim, não corre o risco de "contaminar" variáveis ou mesmo programas lisp de terceiros....

Na caixinha "Fas directory" é onde será salvo o arquivo FAS... clique o botão "..." e escolha esta pasta. Enquanto que a caixinha "Tmp directory" é uma pasta para onde vão os arquivos temporários gerados durante a compilação; escolha uma pasta DIFERENTE da pasta onde estão os lisps ou para onde irá o arquivo FAS, pos nesta pasta temporária estará cheio de arquivos *.ob" e isso so "polui" a pasta, hehehehe e poderão ser apagados posteriormente

O botão "Edit Global Declarations" deixe quieto.. não é necessário editar nada lá...

Feito isso tudo, vai aparecer esta janelinha:


Experimente agora dar um duplo clique no nome de qualquer lisp desta janelinha!!!
bacana não? ela se abra, sem você ter que ir pelo menu "File"!!!

Bom, vê os 5 botões que estão 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 não 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 alterações em poucas lisps, demora menos...
Pra você ter ideia, o "output" do "tbn.prj" tem cerca de 2000 linhas, ao clicar o quarto botão... se fizer apenas a edição de uma lisp, apenas algumas coisas serão efetivamente alteradas no arquivo FAS e o quinto botão é a melhor opção

Em fim, clique o quarto botão...
A janela "" vai aparecer...
Ela irá mostrar todos os erros e avisos ocorridos durante o processo de compilar...


Vê as linhas marcadas de azul? Vão 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 função EVAL e ela dá esse aviso sempre, isto é, se deixar a opção de mostrar avisos ligada....

As vezes vão aparecer erros, por exemplo de argumentos inválidos e ficará muito facil descobrir onde, basta dar uma olhada na janela "Build Output"

Feitas as correções, é so clicar o quinto botão:


Pronto, uma nova janela "Build Output" será criada....
Com erros e avisos ou não...

Agora vá ate onde o arquivo FAS deveria estar:


Agora veja a estrutura de pastas que criei... Lembra que a pasta temporária 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 DIFERENÇA!!!
AINDA MAIS SE VOCÊ COLOCA ALGUMA ROTINA PARA EXECUTAR IMEDIATAMENTE APÓS 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 definição de (algumacoisa)

senão, ao carregar o arquivo FAS resultante, dará erro de função indefinida, sacou?


é isso...
Depois mostro como usar este projeto de arquivo FAS mais algumas DCLs e criar um módulo VLX que contém os dois, aí vai ficar mais profissional o esquema!!!

lisps_dlls

Tá... vamos simplificar as coisas, vou postar uma vez só, hein!! alguns já me perguntaram por que postei as subrotinas uma de cada vez... bom... nem eu sei, enfim, TODAS as SUBROTINAS que uso nos meus programas estão neste pacote: lisps_dlls.zip sendo necessário têla carregada ao usar qualquer ROTINA aqui postada..
Isso simplifica as coisas, pois posso postar apenas a ROTINA, sendo que as SUBROTINAS estão neste pacote, e antes que alguem me pergunte: "e os fontes???", estão aqui no blog... basta procurar
Qualquer hora coloco a lista de subrotinas que estão no pacote, o que cada uma faz, a lista de argumentos e as saídas delas... mas isso fica pra outra hora...