-
Notifications
You must be signed in to change notification settings - Fork 0
Estrutura do Código Fonte
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.