-- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x -- -- FUNCAO: Gravar os dados de um mapa 2D produzido pelo FEMM -- em um arquivo texto para analise em outro programa. -- -- VERSAO: 1.1 -- -- LINGUAGEM: lua script -- -- AUTOR: Gabriel Frones (grfrones@if.usp.br) -- Henrique Barbosa (hbarbosa@if.usp.br) -- -- HITORICO: -- 22/10/09 - Primeira versao, por G.Frones -- 23/10/09 - Versao extendida e comentada, por H.Barbosa -- -- USO: -- 1. Definir o intervalo e a resolucao, modificando as linhas -- abaixo, e salvar o arquivo. -- 2. No FEMM, com o mapa do potencial aberto, clique no icone a -- esquerda , e selecione o arquivo. -- 3. Pronto, se nao aparecer nenhuma mensagem de erro, o arquivo -- de saida ja foi gravado! -- -- RESTRICOES -- So funciona para o grafico do campo eletrico, pois usamos a -- funcao: eo_getpointvalues(x,y). Se quiser usar este script -- para gravar o mapa do campo magnetico, procure no help -- do FEMM (Help > Help Topics) a secao "Lua Script" e veja -- qual a funcao deve ser usado no caso de uma simulacao -- magnetica. -- -- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x -- -- INTEVALO -- Defina as posicoes iniciais e finais, nas direcoes x e y, -- para ser gravado no arquivo. Use a mesma unidade de distancia -- que esta definida no programa -- Ex: Os valores abaixo supoe que voce usou "cm" e que a cuba -- foi desenhada entre as coordenadas 0cm e 35cm xmin = 0.0 xmax = 35.0 ymin = 0.0 ymax = 35.0 -- RESOLUCAO -- Especifique quantos pontos quer dividir cada um destes intevalos -- Lembre-se que nao adianta pedir mais pontos do que o numero -- de triangulos (meshes) ao longo de cada linha. -- Ex: Como a cuba tem 35cm, com 350 pontos vai dar 1 ponto -- a cada milimetro. nx = 350 ny = 350 arq = "c:\\Documents and Settings\\Henrique\\Desktop\\mapa.txt" -- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x -- -- NAO MEXER DAQUI PARA BAIXO -- -- x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x handle = openfile(arq, "w") for i = 0,nx do for j = 0,ny do xpos = xmin + i*(xmax-xmin)/nx ypos = ymin + j*(ymax-ymin)/ny V,Dx,Dy,Ex,Ey,ex,ey,nrg = eo_getpointvalues(xpos,ypos) write(handle, xpos, " ", ypos, " ", V, "\n") end end closefile(handle) -- fim do script