Skip to content

Estrutura do Código Fonte

Willian Hideak edited this page Jul 24, 2018 · 2 revisions

Esta página é destinada a exemplificar e definir a estrutura do código fonte do projeto, no qual se encontra dentro da pasta /src (abreviação para Source Code).

Assim como explicado na página sobre Estrutura do Projeto, a pasta /src abriga todo o código fonte. Essa pasta possuí algumas subpastas conhecidas como Packages, onde cada pasta (Package) possuí seus próprios arquivos Python conhecidos como Módulos e cada arquivo Python (Módulo) possuí seus próprios nomes/classes/funções que podem ser importadas por algum outro módulo qualquer. Toda vez que for necessário realizar a importação de algum desses módulos para utilizar as suas funções, a seguinte sintaxe em Python pode ser utilizada:

from [Nome_do_package].[Nome_do_módulo] import [Nome_da_função_ou_classe]

Por exemplo, digamos que precisamos de uma função que realiza um produto vetorial. Sabemos que esta função está disponível dentro do Package Discretization, dentro do Módulo DiscretizeModel, cuja função está definida como crossProduct. Para realizar a importação, basta inserirmos a seguinte linha de código:

from Discretization.DiscretizeModel import crossProduct

Existem, ao todo, 6 Packages implementados no software. Eles são:

src\Actions: Este package contém dois módulos principais: O módulo ActionList.py, responsável por abrigar todos os objetos que realizam ações a partir da interface gráfica do software, e o módulo Functions.py, que possuí funções úteis que podem ser chamadas a qualquer momento pelos outros módulos.

src\Discretization: Este package contém os módulos que abrigam o código para a realização da discretização das faces de um modelo CAD carregado no software. Para que o processo de discretização ocorra com sucesso, os módulos deste package precisam primeiramente receber informações que são geradas pelos packages Import e Entities. O processo de carregamento é realizado pelo package Import, que realiza a leitura e a tradução dos componentes de um arquivo IGES e os transforma em objetos definidos pelas classes do package Entities. Após a geração dos objetos, o package Discretization entra em ação para realizar a discretização.

src\Entities: Este package contém vários módulos que definem algumas classes Python que serão responsáveis por guardar as informações que forem lidas de um arquivo IGES. Cada uma dessas classes está associada a um determinado tipo de entidade que se encontra especificada no arquivo IGES, por exemplo, sólidos, cascas externas, faces, superfícies, curvas, vértices, entre outras entidades.

src\Import: Este package contém vários módulos que contém funções responsáveis por efetuar a leitura e interpretação das informações contidas em um arquivo IGES, de forma a transformá-las em objetos Python definidas pelas classes que estão no Package Entities. Esses objetos poderão então serem utilizados juntamente com o Package Discretization para realizar as discretizações das superfícies dos modelos CAD.

src\Interface: Este package contém todos os módulos que representam os _layouts _ das partes gráficas que estão presentes no software. Algumas destas janelas inclusive são atreladas à funções e métodos para realização de determinadas tarefas.

src\Resources: Este package contém um único módulo chamado de Strings.py. Este módulo abriga a maioria dos textos e strings utilizados no software, visando a possibilidade de uma rápida implementação de suporte a multi-linguagem no futuro, caso haja interesse por parte do projeto.

Além dos Packages, a pasta contém 3 arquivos que estão fora de qualquer Package. Esses arquivos são:

src\main.py: Este é o arquivo principal do software, que contém as principais informações que são utilizadas em tempo de execução do software. Este arquivo é responsável por abrigar propriedades da seção atual, isto é, informações como as coordenadas dos pontos gerados, a posição de cada ponto, os vetores normais de cada ponto, as faces as quais um conjunto de ponto está associado, bem como outras propriedades importantes. Além disso, este arquivo também é responsável por realizar o desenho da janela principal do programa, além de realizar algumas rotinas importantes para o correto funcionamento do software.

src\runPyFile.bat: Este é um arquivo escrito na forma de um Script Batch que funciona no Windows. Este script simplesmente abre o arquivo main.py utilizando o interpretador Python que está na pasta /env. Isto é necessário para impedir que o arquivo main.py seja interpretado com outros interpretadores Python não compatíveis que, por ventura, possam estar instalados na máquina do usuário.

src\runMain.vbs: Este é um arquivo que faz exatamente a mesma coisa que o arquivo runPyFile.bat, com exceção de que ao executar o software através deste arquivo, nenhuma janela de Prompt é exibida. Vale notar que as janelas de Prompt podem ser úteis caso um programador necessite observar o comportamento do software e as possíveis exceções que ele possa disparar.

Current version of the EGGTol Wiki: v1.0. Last Edit: July, 24th, 2018.

Clone this wiki locally