3.4 Arquitetura do Sistema
5.1.1 Identificação e Reconhecimento de um Produto
A figura 5.2 apresenta as instâncias usadas num ficheiro STEP para identificar um produto:
Figure 5.1: Instâncias que identificam produtos num ficheiro STEP.
PRODUCT
A entidade PRODUCT representa a informação base de um produto ou componente. Esta entidade recolhe toda a informação que é comum entre os diferentes componentes do produto. O número identificador do produto ou componente deve ser único no âmbito do processo de negócio e na troca de informações. Se os dados estiverem a ser usados em simultâneo com outros ficheiros, pode ser necessário avaliar mais do que uma string (isto é, product.id) para estabelecer uma identificação única do produto.
Table 5.1: Atributos de PRODUCT.
Atributos
id armazena um identificador único para o produto/componente. name armazena a nomenclatura ou denominação comum do produto/-
componente.
desription contém um nome ou descrição do produto/componente ex- pandido.
Implementação
PRODUCT_DEFINITION_FORMATION
A entidade PRODUCT_DEFINITION_FORMATION identifica um componente específico de um produto. A definição de um componente em particular é sempre relacionada com um outro compo- nente, ou seja, cada produto é obrigado a ter uma instância de PRODUCT_DEFINITION_FORMATION
associado. Uma única instância PRODUCT, pode ter mais do que um PRODUCT_DEFINITION_FORMATION associado. O conjunto destas entidades representa o histórico de revisão do produto.
Table 5.2: Atributos de PRODUCT_DEFINITION_FORMATION.
Atributos
id identifica o produto/componente.
desription contém o motivo para a criação do produto/componente.
of_product fornece um link para o produto base, do qual, esta entidade rep- resenta um componente.
PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE
A entidade PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE é um sub- tipo da entidade PRODUCT_DEFINITION_FORMATION. Esta entidade acrescenta o atributo make or buypara indicar a finalidade de um componente do produto ("fazer" ou "comprar"). Table 5.3: Atributos de PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE.
Atributos
id identifica o produto/componente.
desription contém o motivo para a criação do produto/componente.
of_product fornece um link para o produto base do qual esta entidade repre- senta uma parte.
make_or_buy fornece informação relativa à finalidade do produto, se para com- pra ou para fabrico.
Implementação
PRODUCT_DEFINITION
A entidade PRODUCT_DEFINITION identifica um componente do produto base, relevante para as necessidades de determinadas fases do ciclo de vida do produto e domínios de aplicação. A entidade PRODUCT_DEFINITION permite a criação de muitos relacionamentos importantes. PRODUCT_DEFINITION é o elemento central para ligar as informações do produto e das peças que o constituem, por exemplo, estrutura de montagem, propriedades (incluindo a forma), e de- scrições externas do produto. Todas as entidades PRODUCT_DEFINITION_FORMATION devem ter sempre, pelo menos, um PRODUCT_DEFINITION associado, exceto no caso de identificação do produto fornecido e informações de histórico de versões.
Table 5.4: Atributos de PRODUCT_DEFINITION.
Atributos
id identifica qual o produto/componente.
desription especifica breve descrição do produto/componente.
formation fornece um link para o produto base do qual esta entidade repre- senta uma parte.
frame_of_reference armazena informações de contexto. Todos os PROD- UCT_DEFINITION devem ter uma relação com PROD- UCT_DEFINITION_CONTEXT que identifica o ciclo de vida e domínio de aplicação.
Implementação
5.1.2 Identificação e Reconhecimento da Estrutura de Montagem de um Produto A figura 5.3 apresenta as instâncias usadas num ficheiro STEP para identificar a estrutura de montagem de um produto:
Figure 5.3: Instâncias que identificam a estrutura de produto num ficheiro STEP.
ASSEMBLY_COMPONENT_USAGE
Esta entidade representa a relação geral entre duas identificações: a definição de um compo- nente e a definição de montagem. Esta entidade normalmente é instanciada através do subtipo NEXT_ASSEMBLY_USAGE_OCCURRENCE. Este subtipo representa uma ocorrência individual única da definição de componente, usado na montagem. O ASSEMBLY_ COMPONENT_USAGE só é instanciado se existe um requisito explícito para representar a relação geral entre um compo- nente e uma definição de montagem.
Table 5.5: Atributos de ASSEMBLY_COMPONENT_USAGE.
Atributos
id fornece um identificador exclusivo para a relação. name fornece uma nomenclatura geral para o relacionamento. desription texto adicional que descreve o relacionamento.
relating product definition referência para a montagem.
Implementação
NEXT_ASSEMBLY_USAGE_OCCURRENCE
Esta entidade é um subtipo de ASSEMBLY_COMPONENT_USAGE. Representa uma única ocor- rência individual da definição de um componente.
Table 5.6: Atributos de NEXT_ASSEMBLY_USAGE_OCCURRENCE.
Atributos
id identificador de instância exclusivo para a ocorrência de um com- ponente individual.
Figure 5.4: Exemplo das entidades da estrutura de montagem de um produto.
5.1.3 Identificação e Reconhecimento da Informação Geométrica de um Produto Inicialmente, toda a informação sobre um produto é convertida num ficheiro STEP que, por sua vez, é utilizado com input para o programa desenvolvido. Para extrair toda a informação ge- ométrica necessária, o programa começa por procurar no ficheiro STEP fornecido, a tag CLOSED_SHELL que contém referências para outras tag’s onde está contida toda a informação necessária. Várias tag’s como ADVANCED_FACE, FACE_OUTER_BOUND, entre outras, são pesquisadas de forma hierárquica, por exemplo, a tag FACE_BOUND existirá se houver a presença de uma depressão
Implementação
interna na representação. A hierarquia da informação geométrica é mostrada na figura 5.5, cada tag possui um identificador único por ficheiro, por exemplo, na linha "#35 = CLOSED_SHELL (’Closed Shell’, (#75, #92, #123, #135, #166, #178, #218, #235, #249, #263));" a tag com infor- mação geométrica é CLOSED_SHELL e #35 é o número da entidade.
Implementação
Representação EDGE_CURVE
Como demonstrado na figura 5.5, CLOSED_SHELL (#35) consiste em vários elementos AD- VANCED_FACE. Cada ADVANCED_FACE está ligado por número de arestas que são designadas como FACE_OUTER_BOUND. Cada FACE_OUTER_BOUND é formado com arestas em “cir- cuito fechado”, que são designadas como EDGE_LOOP. Além disso, cada EDGE_LOOP é for- mado por elementos ORIENTED_EDGE denominados como EDGE_CURVE. Cada EDGE_CURVE é formado por diferentes formas geométricas como LINE (#53) e CIRCLE (#44), por exemplo. Centro de um Círculo
Como podemos observar na figura 5.5, na continuação da construção EDGE_CURVE (ex. LINE, CIRCLE, LINE, CIRCLE) cada CIRCLE é constituído por AXIS2_PLACEMENT_3D. Por sua vez, AXIS2_PLACEMENT_3Dcontém uma referência para CARTESIAN_POINT que indica as coor- denadas do centro do círculo (x, y, z). Além de CARTESIAN_POINT e AXIS2_PLACEMENT_3D, contém mais duas referências do tipo DIRECTION, a primeira representa o vetor normal ao plano em questão e o outra é um vetor de referência ao eixo cartesiano.
Raio da Base de um Cilindro
Como mostrado na figura 5.5 na continuação da construção de EDGE_CURVE, e.g LINE, CIR- CLE, LINE, CIRCLE, o último número sem cardinal (#) em CIRCLE (#44) denota o raio do cír- culo.
Superfícies e Raios
Como mostrado na figura, CLOSED_SHELL consiste em vários elementos ADVANCED_FACE.
Cada ADVANCED_FACE consiste em superfícies como CYLINDRICAL_SURFACE, CONICAL_SURFACE, TOROIDAL_SURFACEe SPHERICAL_SURFACE. O último número sem sinal (#) no CYLINDRI-
CAL_SURFACEindica o raio do cilindro.
Eixo de Coordenadas de uma Superfície
Como podemos observar na figura 5.6, CYLINDRICAL_SURFACE contém informações sobre os
eixos (#39). Esta entidade (#39) é por sua vez ligada a AXIS2_PLACEMENT_3D. Em AXIS2_PLACEMENT_3D a referência (#93) indica um elemento CARTESIAN_POINT. Nesta linha os últimos três números
Implementação
Implementação
Reconhecimento de um Cilindro
Um cilindro é gerado com dois círculos em dois planos paralelos e estes dois círculos estão ligados por uma superfície. A geometria é mostrada na figura 5.7 em que o centro do CIRCLE1 é (X, Y1, Z) e (X, Y2, Z) é o centro de CIRCLE2. A partir do círculo pode concluir-se que apenas a coordenada y é variável e que as coordenadas x e z permanecem as mesmas. A partir disto, pode concluir-se que o cilindro é simétrico em torno do eixo y. Para um cilindro longitudinal ambos os raios de círculo são os mesmos.
Figure 5.7: Representação de um cilindro.
Reconhecimento de um Orifício Cilíndrico - Through ou Blind
Um orifício cilíndrico é resultante da subtração de um cilindro a uma superfície. Este orifício pode ser do tipo Through ou Blind. Estes tipos podem ser detetados pela comparação dos comprimentos do cilindro externo e do cilindro interno. Como mostrado na figura 5.8, se o comprimento dos cilindros interno e externo são o mesmo, então, o orifício é do tipo Through, pois atravessa a superfície. Por outro lado, se o comprimento do cilindro interno é menor do que o cilindro externo, então, o orifício é do tipo Blind.
Implementação
Reconhecimento de um Orifício Cilíndrico Inclinado em Relação ao Eixo de uma Superfície
Quando o eixo do furo cilíndrico está inclinado em relação ao eixo do cilindro exterior, então, no orifício cilíndrico, cada extremidade é uma elipse em vez de círculos. A geometria é mostrada na figura 5.9. Um EDGE_CURVE para o furo cilíndrico inclinado é construído por duas linhas e duas B_Splines que constituem a elipse. A linha é constituída por dois pontos cartesianos P1 e P2, (x1, y1, Z) e (X2, Y2, Z), respetivamente. A inclinação é encontrada utilizando a seguinte fórmula:
Figure 5.9: Representação de um orifício cilíndrico inclinado.
Reconhecimento de uma Superfície Cónica
Uma superfície cónica é gerada com diferente raio em dois planos paralelos e ligados por uma superfície.
Implementação
Reconhecimento de um Orifício Cónico
Uma superfície cónica pode ser subtraída a um cilindro, por exemplo, se as coordenadas Y do centro do círculo variam de y2 a y1 então trata-se de um orifício cónico. Um orifício cónico também pode ser do tipo Through ou Blind. Se o comprimento do orifício cónico é menor do que o comprimento do cilindro externo, então trata-se do tipo Blind. Se ambos os comprimentos são iguais, então é um orifício do tipo Through.
Figure 5.11: Representação de um orifício cónico.
Reconhecimento de uma Superfície Toroidal
Uma superfície toroidal pode existir entre dois cilindros ou entre um cilindro e um cone. O con- torno da curvatura pode ser côncavo ou convexo quanto à forma. O elemento EDGE_CURVE é construído por quatro círculos. A geometria característica de uma superfície toroidal é mostrada na figura 5.12. Se o elemento EDGE_CURVE possui como características T, F, T, F, então é um toroidal externo côncavo. O raio do toro é encontrado a partir do último número do elemento TOROIDAL_SURFACE. Se EDGE_CURVE foi construída com quatro círculos e possui como car- acterísticas T, T, T, T, então é um toroidal externo convexo.
Implementação
Reconhecimento de uma Superfície Esférica
A geometria de uma superfície esférica é mostrada na figura 5.13. O raio da superfície esférica é encontrado a partir do último número do elemento SPHERICAL_SURFACE. A representação num ficheiro STEP é feita com recurso a duas linhas, como demonstrado abaixo. A linha 1 entidade (#67) correspondente a um elemento ADVANCED_FACE que, por sua vez, referencia a entidade (#40) correspondente a um elemento SPHERICAL_SURFACE. O último número deste elemento sem #, indica o raio da esfera (5).
Figure 5.13: Representação de superfície esférica.
Reconhecimento de um Orifício do Tipo Cross Hole
Cross Holepode ser reconhecido a partir do ficheiro STEP através de duas linhas como demon- strado abaixo. Na linha 1, a entidade(#284) indica um elemento do tipo EDGE_CURVE. Nesta linha, a última entidade (#261) referencia um elemento do tipo B_SPLINE_CURVE_WITH_NOTS. Se existir um elemento B_SPLINE em EDGE_CURVE então existe um orifício transversal. A figura 5.14 demonstra o reconhecimento de um Cross Hole.
Figure 5.14: Representação de um Cross Hole.
Reconhecimento de um Cross Hole Transversal ao Eixo de um Cilindro
Na identificação de um Cross Hole transversal ao eixo de um cilindro, um orifício é subtraído a uma superfície cilíndrica. Na figura 5.15, cha_y indica a posição do Cross Hole. Quando é feito um orifício na superfície, cada uma das extremidades são B_Splines. Assim, o elemento
Implementação
EDGE_CURVE é constituído por duas linhas e duas B_Splines. O raio é encontrado a partir do elemento CYLINDRICAL_SURFACE e ADVANCED_FACE correspondente. O eixo do cilindro e o orifício transversal são encontrados usando a tag axis2_placement_3D do ficheiro STEP. As coordenadas para o eixo do cilindro são (cya_x, cya_y, cha_z) e para o Cross Hole são (cha_x, cha_y, cha_z). Se a coordenada Z do cilindro externo é igual a coordenada Z do Cross Hole, então o orifício transversal passa através do eixo do cilindro externo (cha_z = cya_z).
Figure 5.15: Cross Hole transversal ao eixo de um cilindro.
Reconhecimento de um Cross Hole Desalinhado com o Eixo
A figura 5.16 mostra que um cross hole pode ser inclinado em relação ao eixo de um cilindro. Como já foi explicado, o eixo do Cross Hole é encontrado a partir da tag AXIS_PLACEMENT no ficheiro STEP. As duas linhas que formam o Cross Hole são paralelas ao eixo de um orifício transversal ao eixo do cilindro. A inclinação da linha indica a inclinação do eixo do Cross Hole. A linha é constituída por dois pontos cartesianos P1 e P2 com coordenadas (X1, Y1, Z) e (X2, Y2, Z), respetivamente. O ângulo de inclinação (alfa) é encontrado utilizando a seguinte fórmula:
Implementação
Reconhecimento de um Cross Hole - Through ou Blind
Um Cross Hole pode ser um orifício Through ou Blind. Quando o furo transversal subtrai ambos os extremos da superfície de um cilindro, então é um furo Through. Isso pode ser verificado no ficheiro STEP através de dois elementos b_splines na construção de EDGE_CURVE. Quando o furo transversal é subtraído a uma extremidade da superfície do cilindro e à outra não, pode-se concluir que se trata de um Cross Hole Blind. A profundidade do cross hole pode ser encontrada através da diferença entre a coordenada X do centro do cross hole e o raio do círculo do cilindro externo como demonstrado na figura 5.17.
Figure 5.17: Cross Hole - Through ou Blind.