DM MariaJGamelas 2012 MEI
DM MariaJGamelas 2012 MEI
DM MariaJGamelas 2012 MEI
Júri:
Presidente:
Vogais:
iii
iv
Resumo
O software de CAD Pro/ENGINEER Wildfire 3.0, desenvolvido pela PTC, permite ser
programado usando várias APIs (Pro/Toolkit, J-Link, VB, Pro/Web.Link), estendendo as suas
funcionalidades e permitindo integração com outros sistemas informáticos. A presente
dissertação Integração Intranet - Pro/ENGINEER Wildfire 3.0 via Pro/Web.Link discute e
apresenta essencialmente o trabalho efetuado num estágio de 8 meses, realizado em 2011 no
departamento de Sistemas de Informação da unidade de Aparelhagem de Média e Alta
Tensão (AMT) da Efacec, que teve como principais objetivos o estudo da API Pro/Web.Link,
uma API que suporta a linguagem JavaScript, e o desenvolvimento de duas aplicações Web
usando essa API para permitir a integração entre a intranet AMT e o software de CAD
Pro/ENGINEER Wildfire 3.0. As duas aplicações desenvolvidas foram: a aplicação ProPEditor,
um formulário Web para a edição da legenda dos desenhos do Pro/ENGINEER, apresentando
alguns automatismos de tradução e sugestão de campos; e a aplicação ProCatalog, um
catálogo Web que permite navegar facilmente pela livraria de acessórios de fixação
(parafusos, anilhas, etc.) do Pro/ENGINEER, escolher o acessório pretendido e incorporá-lo no
conjunto. Após o período de estágio, e face às dificuldades enfrentadas durante o
desenvolvimento das aplicações, foi feita uma análise mais detalhada à API Pro/Web.Link que
permitiu documentar algumas das suas regras e propor um método de trabalho adequado
para implementar uma determinada aplicação com esta ferramenta. Pretende-se com este
trabalho simplificar e complementar a literatura existente, fornecendo um instrumento útil
para os muitos profissionais que queiram conhecer e utilizar a API Pro/Web.Link.
v
vi
Abstract
The CAD software Pro/ENGINEER Wildfire 3.0, developed by PTC, can be programmed using
several APIs (Pro/Toolkit, J-Link, VB, Pro/Web.Link), extending its functionality and allowing
integration with other systems. This dissertation entitled Integration Intranet - Pro/ENGINEER
Wildfire 3.0 by Pro/Web.Link essentially discusses and presents the work done during an 8
month internship, in 2011, in the Information Systems Department of Medium and High
Voltage Switchgear Unit of Efacec, which mainly aimed to study the API Pro/Web.Link, an API
that supports JavaScript language, and to develop two Web applications using this API to
allow integration between the Switchgear intranet and the CAD software Pro/ENGINEER
Wildfire 3.0. The two applications developed were: the ProPEditor application, a web form for
editing Pro/ENGINEER’s drawing’s labels, providing some automatic translation and
suggestions for the fields; and, the ProCatalog application, a Web catalog that allows to
navigate easily through a library of fastener accessories (screws, washers, and so forth) of
Pro/ENGINEER, choose the desired accessory and incorporate it in the assembly. After the
internship, and due to the difficulties faced during the development of these applications, a
more detailed analysis was made of the API Pro/Web.Link that allowed to document some of
its rules and to propose a suitable working method to implement an application using this tool.
This work intends to simplify and complement the existing literature by providing a useful tool
for many professionals who want to learn and use the API Pro / Web.Link.
vii
viii
Agradecimentos
Ao Prof. Paulo Sousa, por me ter guiado ao longo da fase do estágio e do desenvolvimento da
dissertação e pelas suas dicas, transmissão de conhecimentos, revisões e correções.
Ao Carlos Pinheiro, por me ter ajudado durante e após o Estágio. O seu suporte dentro da
Efacec foi fundamental para me integrar na empresa, para me motivar e me empenhar na
realização das minhas funções. Os conhecimentos que me transmitiu foram essenciais para o
desenvolvimento deste trabalho.
À Drª. Fátima Rodrigues, por me ter ajudado com alguns problemas relativos ao meu ingresso
no ISEP. Sem a sua ajuda não estava aqui e por isso muito Obrigada.
À Efacec, por ter sugerido o estágio e por me ter recebido tão bem nas suas instalações, e aos
seus colaboradores que tiveram a testar as aplicações.
Aos colaboradores do departamento de SI Luís Gomes, Luís e Paulo que tiveram um papel
importante no desempenho das minhas funções.
Ao meu namorado Márcio, pela paciência e pela compreensão que demonstrou ao longo
deste tempo.
Aos meus amigos, um obrigado por se preocuparem comigo e um pedido de desculpas pelas
vezes que rejeitei as saídas à noite.
Aos meus pais, Francisco Gamelas e Maria Alves, por apoiarem a minha formação e os meus
objetivos, e ao meu irmão, Bruno Gamelas, pela sua amizade e apoio.
À minha avó Maria, por me ter acolhido na sua casa durante os dois anos de mestrado, por ter
sido uma grande companhia e por me ter feito as vontades todas.
Aos meus colegas do ISEP, pelo companheirismo e pelo empenho nos trabalhos.
ix
x
Índice
Resumo .............................................................................................. v
Agradecimentos .................................................................................... ix
Índice ................................................................................................ xi
1 Introdução ................................................................................... 1
1.1 Introdução ................................................................................................. 1
1.2 Enquadramento ........................................................................................... 3
1.3 Objetivos ................................................................................................... 5
1.3.1 Organizar Dados dos Acessórios de Fixação no GlobalArt ................................... 5
1.3.2 Estudar Framework da Intranet AMT (SynergyNet) ........................................... 6
1.3.3 Selecionar API do Pro/ENGINEER ................................................................ 6
1.3.4 Estudar API Selecionada (Pro/Web.Link)....................................................... 7
1.3.5 Implementar Aplicação ProPEditor .............................................................. 8
1.3.6 Implementar Aplicação ProCatalog ........................................................... 10
1.4 Plano de Trabalho ...................................................................................... 11
1.5 Método de Trabalho .................................................................................... 13
1.6 Contribuições ........................................................................................... 15
1.7 Apresentação da Empresa ............................................................................ 16
1.8 Estrutura da Dissertação .............................................................................. 18
xi
2.5 Sumário ................................................................................................... 39
4 Pro/Web.Link .............................................................................. 65
4.1 Introdução ............................................................................................... 65
4.2 Arquitetura da API Pro/Web.Link .................................................................... 66
4.3 Classes .................................................................................................... 67
4.3.1 Pro/ENGINEER – Related ........................................................................ 68
4.3.2 Module – Level .................................................................................... 68
4.3.3 Compact Data ..................................................................................... 69
4.3.4 Enumeration ....................................................................................... 69
4.3.5 Union ............................................................................................... 70
4.3.6 Sequence ........................................................................................... 71
4.3.7 Array ................................................................................................ 72
4.4 Herança .................................................................................................. 73
4.5 Pro/Web.Link API Wizard ............................................................................. 74
4.6 Sumário ................................................................................................... 76
xii
6 ProPEditor ..................................................................................93
6.1 Contextualização ....................................................................................... 93
6.2 Modelação do Novo Sistema ......................................................................... 100
6.2.1 Caso de Uso: Editar Legenda .................................................................. 101
6.3 Aplicação Final ......................................................................................... 102
6.4 Vantagens ............................................................................................... 104
6.5 Sumário ................................................................................................. 105
xiii
Anexo 2 - Enunciado do ProCatalog .......................................................... 149
Apêndices ...........................................................................................
xiv
Lista de Figuras
Figura 1 - Legenda de um desenho no Pro/ENGINEER Wildfire 3.0 ............................................ 8
Figura 2 - Janela de edição dos parâmetros de um modelo ........................................................ 9
Figura 3 - Interface do ProCatalog proposta por Rui Marinho .................................................. 10
Figura 4 - Calendário de objetivos gerais e específicos do estágio ............................................ 11
Figura 5 - Processo de desenvolvimento das aplicações ........................................................... 14
Figura 6 - Mapa-mundo com 8 regiões de atividade do grupo Efacec [Efacec, 2012b] ............ 17
Figura 7 - Barra de ferramentas da SynergyNet......................................................................... 22
Figura 8 - Página do ProCatalog traduzida para (a) Inglês, (b) Castelhano e (c) Português....... 23
Figura 9 - Arquitetura física da SynergyNet (Three-Tier) ........................................................... 24
Figura 10 - Header e menu da SynergyNet ................................................................................ 26
Figura 11 - Diagrama de classes (Adaptação do diagrama de [Pinheiro C., 2011]) ................... 26
Figura 12 - URL para o módulo de criação de um novo artigo da página GlobalArt.................. 27
Figura 13 - Classe CForm e classes hereditárias......................................................................... 28
Figura 14 - Fragmento do antigo portal do departamento de Controlo.................................... 30
Figura 15 - Plataforma GlobalArt ............................................................................................... 30
Figura 16 - Plataforma GlobalArt com dados de um artigo ....................................................... 32
Figura 17 - Dados de um acessório de fixação – Freio exportado do Windchill ........................ 35
Figura 18 - Características de um acessório de fixação - Freio .................................................. 35
Figura 19 - Artigo caracterizado no GlobalArt ........................................................................... 36
Figura 20 - Documento de classificação dos freios e circlips ..................................................... 37
Figura 21 - Página do GlobalArt para criação de um artigo no Baan ......................................... 39
Figura 22 - Tipo de objetos do Pro/ENGINEER ........................................................................... 44
Figura 23 - Impacto da modificação do comprimento de uma peça no Assembly .................... 45
Figura 24 - Model Tree do Pro/ENGINEER ................................................................................. 46
Figura 25 - Módulos PDMLink 9.0 e ProjectLink 9.0 no navegador embutido do Pro/E ........... 55
Figura 26 - Identificação dos elementos da versão de um objeto [PTC, 2007a]........................ 56
Figura 27 - Arquitetura multicamada do Windchill PDMLink [VMware, 2008] ......................... 57
Figura 28 - Opção Server Registry do menu Tools do Pro/ENGINEER [PTC, 2007b] .................. 59
Figura 29 - Fluxo da comunicação entre o Windchill e o Pro/ENGINEER [PTC, 2007b] ............. 59
Figura 30 - Operações PDM e locais de armazenamento [PTC, 2009a] ..................................... 61
Figura 31 - Diagrama de classes Pro/Web.Link 1 ....................................................................... 74
Figura 32 - API Wizard da API Pro/Web.Link.............................................................................. 75
Figura 33 - Browser interno - Pro/Web.Link - Pro/ENGINEER Wildfire 3.0 ................................ 78
Figura 34 - Ações executadas pelo módulo JavaScript .............................................................. 82
Figura 35 - Arquitetura ProPEditor, ProCatalog, MassProp (adaptação [Alexandre L., 2011]) . 89
Figura 36 - Janela dos parâmetros de um modelo (repetição) .................................................. 94
Figura 37 - Atributos de um modelo apresentado no commonspace do Windchill PDMLink ... 95
Figura 38 - Janela da Family Table de uma anilha (adaptação de [PTC, 2009c]) ....................... 96
Figura 39 - Legenda de um desenho no Pro/ENGINEER Wildfire 3.0 2...................................... 97
Figura 40 - Texto variável e estático de uma legenda................................................................ 97
xv
Figura 41 - Campos de texto variável ......................................................................................... 98
Figura 42 - Diagrama de casos de uso do ProPEditor............................................................... 101
Figura 43 - Interface da aplicação ProPEditor 1 ....................................................................... 102
Figura 44 - Interface da aplicação ProPEditor 2 ....................................................................... 103
Figura 45 - Interface da aplicação ProPEditor 3 ....................................................................... 103
Figura 46 - Interface da aplicação ProPEditor 4 ....................................................................... 104
Figura 47 - Model tree .............................................................................................................. 109
Figura 48 - Diagrama de casos de uso do ProCatalog .............................................................. 110
Figura 49 - Interface da aplicação ProCatalog 1 ....................................................................... 111
Figura 50 - Interface da aplicação ProCatalog 2 ....................................................................... 112
Figura 51 - Interface da aplicação ProCatalog 3 ....................................................................... 113
Figura 52 - Interface da aplicação ProCatalog 4 ....................................................................... 114
Figura 53 - Interface da aplicação ProCatalog 5 ....................................................................... 114
Figura 54 - Interface da aplicação WebBaan ............................................................................ 115
Figura 55 - Interface da aplicação ProCatalog 6 ....................................................................... 115
Figura 56 - Interface da aplicação ProCatalog 7 ....................................................................... 116
Figura 57 - Interface da aplicação ProCatalog 8 ....................................................................... 116
Figura 58 - Interface da aplicação ProCatalog 9 ....................................................................... 117
Figura 59 - Interface da aplicação GlobalArt ............................................................................ 117
Figura 60 - Interface da aplicação ProCatalog 10 ..................................................................... 118
Figura 61 - Interface da aplicação ProCatalog 11 ..................................................................... 118
Figura 62 - Aplicação ProCatalog: incorporação de um acessório no Pro/E Wildfire 3.0 ........ 119
Figura 63 - Interface da aplicação ProCatalog 12 ..................................................................... 119
Figura 64 - Identificação de um parafuso na classe de artigo das porcas ................................ 121
Figura 65 - Estrutura de um assembly ...................................................................................... 125
Figura 66 - Interface da aplicação MassProp (parte 1) ............................................................ 126
Figura 67 - Interface da aplicação MassProp (parte 2) ............................................................ 126
Figura 68 - Proposta de apresentação da interface do ProCatalog (repetição) ....................... 149
Figura 69 - Newsletter da Efacec AMT de Abril de 2011 .......................................................... 151
Figura 70 - Newsletter da Efacec AMT de Julho de 2011 ......................................................... 153
Figura 71 - Antigo portal do departamento de Produção ..............................................................
Figura 72 - Elemento tab ................................................................................................................
Figura 73 - Elemento link ................................................................................................................
Figura 74 - Elemento general item .................................................................................................
Figura 75 - Elemento subtitle .........................................................................................................
Figura 76 - Classe tbpage_parameters ...........................................................................................
Figura 77 - Dados do departamento de Produção (parte 1) ..........................................................
Figura 78 - Dados do departamento de Produção (parte 2) ..........................................................
Figura 79 - Novo portal do departamento de Produção ................................................................
Figura 80 - Novo portal de informática ..........................................................................................
Figura 81 - Aplicação de edição dos portais dos departamentos 1 ...............................................
Figura 82 - Aplicação de edição dos portais dos departamentos 2 ...............................................
Figura 83 - Aplicação de edição dos portais dos departamentos 3 ...............................................
xvi
Figura 84 - Aplicação de edição dos portais dos departamentos 4 ...............................................
Figura 85 - ProPEditor: Diagrama de classes Pro/Web.Link 1........................................................
Figura 86 - ProPEditor: Diagrama de classes Pro/Web.Link 2........................................................
Figura 87 - ProPEditor: Diagrama de classes Pro/Web.Link 3........................................................
Figura 88 - ProPEditor: Diagrama de classes Pro/Web.Link 4........................................................
Figura 89 - ProPEditor: Diagrama de classes Pro/Web.Link 5........................................................
Figura 90 - ProCatalog: Diagrama de classes Pro/Web.Link 1 .......................................................
Figura 91 - ProCatalog: Diagrama de classes Pro/Web.Link 2 .......................................................
Figura 92 - MassProp: Diagrama de classes Pro/Web.Link 1 .........................................................
Figura 93 - MassProp: Diagrama de classes Pro/Web.Link 2 .........................................................
xvii
xviii
Lista de Tabelas
Tabela 1 - Características globais dos Acessórios de Fixação .................................................... 34
Tabela 2 – Características das APIs J-Link, VB e Pro/Web.Link .................................................. 48
Tabela 3 - Avaliação do objetivo Organizar Dados dos Acessórios de Fixação ........................ 136
Tabela 4 - Avaliação do objetivo Estudar Framework da Intranet AMT (SynergyNet) ............ 137
Tabela 5 - Avaliação do objetivo Selecionar API do Pro/ENGINEER ......................................... 137
Tabela 6 - Avaliação do objetivo Estudar API Selecionada (Pro/Web.Link) ............................. 138
Tabela 7 - Avaliação dos objetivos Implementar Aplicação ProPEditor e ProCatalog ............. 138
Tabela 8 - Parâmetros do ProPEditor ....................................................................................... 147
xix
xx
Acrónimos
2D Duas Dimensões
3D Três Dimensões
IE Internet Explorer
xxi
JAR Java Archive
Pro/E Pro/ENGINEER
SI Sistemas de Informação
xxii
Glossário
Acessório de Fixação - Acessório que une dois ou mais objetos. Exemplos: porcas, parafusos,
anilhas, rebites, cavilhas, golpilhas, circlips, freios.
Assembly - Modelo composto por várias peças, isto é, vários modelos do tipo part. Exemplo:
uma anilha encaixada num parafuso.
Automation - Tecnologia baseada no COM (Component Object Model) que permite que as
aplicações exponham os seus objetos a outras aplicações e que estas manipulem esses
objetos.
Check-in (dar entrada) - Opção do Windchill para dar entrada do modelo permitindo que os
restantes utilizadores possam solicitar a sua edição. Esta opção apenas está disponível se o
modelo estiver checked out.
Check-out (dar saída) - Opção do Windchill que permite a edição exclusiva de um modelo no
Pro/E por parte do utilizador que seleciona essa opção, bloqueando o modelo e fornecendo
apenas acessos de leitura aos restantes utilizadores. Esta opção apenas está disponível se o
modelo estiver no Windchill com o estado “Product Change”.
COM Client (cliente COM) – Código ou objeto que obtém um apontador para um servidor
COM e utiliza os seus serviços através da invocação dos métodos das suas interfaces. O cliente
Automation é um tipo de cliente COM.
COM Server (servidor COM) - Objeto que fornece serviços aos clientes COM, disponibilizando
os seus objetos COM.
xxiii
Family Table - A family table de um modelo genérico é uma tabela cujos membros são todos
os seus modelos instância associados.
Legenda - A legenda é constituída por campos, de texto variável ou estático, que contêm
informação acerca do modelo 3D representado no desenho. Os campos de texto variável
podem estar associados a parâmetros que são criados pelo utilizador para esse modelo 3D.
Modelo Instância - Modelo criado a partir da family table de um modelo genérico com o
objetivo de se assemelhar a este. Exemplo: parafuso de diâmetro 5 mm (instância) criado a
partir do parafuso de diâmetro 10 mm (genérico).
Part (Peça) - Modelo que representa uma única peça. Exemplo: anilha.
Regeneração - Atualização de um objeto para que este reflita as alterações que o utilizador
efetuou ao mesmo.
Sólido - O sólido pode ser um modelo do tipo “part” (.prt) ou “assembly” (.asm).
User Parameter - Campo criado pelo utilizador para um modelo com o objetivo de armazenar
determinada informação. Exemplo: parâmetro DESENHADOR com o valor Maria João.
Windchill - Programa que gere o ciclo de vida de um produto. Quando integrado com o
Pro/ENGINEER, armazena todos os produtos aí desenvolvidos e controla as permissões de
edição e leitura, entre outras funcionalidades.
xxiv
1 Introdução
1.1 Introdução
Em 2008, a Efacec1 iniciou o programa “Piloto Colombo Efacec” para “incentivar a geração e
implementação de ideias com vista a fomentar os aumentos de produtividade” [Efacec,
2012a]. No decorrer desta nova política o colaborador Rui Marinho, projetista do
departamento de Inovação e Desenvolvimento da Efacec, sugeriu o desenvolvimento de duas
aplicações Web para integrar a intranet da unidade de Aparelhagem de Média e Alta Tensão
(AMT) da Efacec com o principal sistema de CAD utilizado na empresa, o Pro/ENGINEER
Wildfire 3.0 (Pro/E), desenvolvido pela PTC2 (Parametric Technology Corporation): (1) uma
aplicação para o preenchimento assistido da legenda dos desenhos do Pro/E; e (2) um
catálogo para automatizar a montagem de acessórios no Pro/E.
A Efacec aprovou a ideia por duas razões: exequibilidade da mesma, uma vez que a PTC
fornece algumas APIs (Application Programming Interfaces) que disponibilizam um conjunto
de funções do Pro/E, permitindo integrá-lo com outros sistemas informáticos; obter ganhos
de produtividade no processo de desenvolvimento de produtos. Após esta aprovação, o
departamento de Sistemas de Informação (SI) da unidade AMT ficou encarregue de
desenvolver as aplicações do programa Colombo. Estas aplicações têm como destinatários as
equipas dos departamentos de Engenharia de Produto, Engenharia Industrial, e de I&D
(Inovação e Desenvolvimento), existentes em Portugal, Argentina e Índia.
1
Efacec, http://www.efacec.pt
2
PTC, Product & Service Advantage, http://www.ptc.com
1
1 Introdução
Neste contexto, surge a proposta de estágio com duração de 8 meses. Embora o autor não
possuísse conhecimentos na área de CAD, decidiu envolver-se neste projeto aceitando o
desafio de explorar uma das APIs do Pro/ENGINEER e de implementar as aplicações do
programa Colombo para contribuir para o crescimento da Efacec, uma empresa de elevado
prestígio, com a introdução de uma diferente filosofia de trabalho. Pretende-se
fundamentalmente com este estágio:
Selecionar a API do Pro/ENGINEER mais adequada para este projeto com base na
análise e avaliação das APIs J-Link, VB e Pro/Web.Link do Pro/ENGINEER Wildfire 3.0 e
4.0 e nos requisitos e funcionalidades das aplicações ProPEditor e ProCatalog. Apesar
da API VB estar disponível apenas a partir da versão Wildfire 4.0, esta deve ser
analisada uma vez que a Efacec encontra-se recetiva a efetuar a transição do
Pro/ENGINEER Wildfire 3.0 para o Wildfire 4.0 se esta API for selecionada. Note-se
que a decisão final relativamente à seleção da API será do departamento de SI da
Efacec;
Estudar com maior detalhe a Pro/Web.Link, a API sugerida pelo autor e aceite pelo
departamento de Sistemas de Informação após o processo de avaliação e seleção
realizado na alínea anterior, para desenvolver as aplicações do programa Colombo;
Implementar com essa API as duas aplicações propostas (ProPEditor - um formulário
para o preenchimento automático das legendas dos desenhos construídos no Pro/E
e ProCatalog - um catálogo para a localização e incorporação de acessórios de
fixação num assembly do Pro/E) para integrar a intranet da Efacec com o Pro/E de
forma a aumentar a produtividade dos utilizadores na realização das tarefas de edição
das legendas dos desenhos e de montagem de acessórios no Pro/E.
2
1.2 Enquadramento
A aplicação ProCatalog (ideia n.º 348 do programa Colombo) consiste num catálogo
de acessórios de fixação (parafusos, porcas, entre outros.) para auxiliar os utilizadores
na incorporação de um acessório no seu modelo de CAD. Esta aplicação vem
automatizar a integração entre o sistema de CAD e os sistemas de gestão de produtos
(Windchill e GlobalArt), evitando dessa forma que o utilizador necessite de procurar
manualmente o acessório desejado e de recordar o seu código para o encontrar no
Pro/E. O objetivo do catálogo é encurtar esses passos e apresentar uma interface
gráfica para que os utilizadores possam escolher os acessórios de forma mais intuitiva
e importá-los para o Pro/E mais rapidamente. Este catálogo também deve estar apto
para incluir outro tipo de acessórios.
1.2 Enquadramento
Esta dissertação decorre no âmbito de um estágio curricular de 8 meses (2 de Novembro de
2010 a 30 de Junho de 2011) realizado no departamento de SI da unidade de negócio da AMT
da Efacec Energia, Equipamentos e Máquinas Eléctricas, S.A., uma das empresas do Grupo
3
1 Introdução
4
1.3 Objetivos
Uma das plataformas que integra a intranet da unidade AMT é o GlobalArt, um sistema de
gestão de artigos que foi desenvolvido para evitar a repetição de artigos e ultrapassar algumas
limitações do ERP (Enterprise Resource Planning) da Efacec, o Baan, estando totalmente
integrado com este [Efacec Switchgear, 2009].
1.3 Objetivos
Os objetivos gerais principais do estágio/dissertação são: Selecionar API do Pro/ENGINEER;
Estudar API selecionada (Pro/Web.Link); e Implementar as aplicações ProPEditor e
ProCatalog. Para a implementação das aplicações devem ser atingidos dois objetivos gerais
adicionais: Organizar dados dos acessórios de fixação no GlobalArt, a fonte de informação do
ProCatalog; Estudar o Framework da intranet AMT, para conhecer o Framework da
SynergyNet que deve ser utilizado no desenvolvimento das aplicações ProPEditor e ProCatalog.
A plataforma GlobalArt, aplicação Web que faz a gestão dos artigos da Efacec, como fonte de
informação da aplicação ProCatalog deve estar devidamente preparada para conseguir
responder aos seus pedidos e requisitos. A aplicação ProCatalog deve agrupar e permitir a
filtragem dos artigos por determinadas características globais (características comum a todas
as companhias), todavia, os artigos de fixação não possuem quaisquer características
definidas no GlobalArt, estando estas implícitas unicamente no campo da descrição dos
artigos. Para suprir essa lacuna é necessário efectuar as seguintes etapas:
3. Por fim atualizar os dados dos acessórios de fixação através da migração dos valores
das características, inferidas no passo anterior, para o GlobalArt.
5
1 Introdução
Os resultados deste objetivo são descritos na secção 2.4.1 Organização dos Dados dos
Acessórios de Fixação no GlobalArt.
Este contacto inicial com o Framework da intranet AMT é essencial para aprender as bases e
ultrapassar eventuais dificuldades, permitindo na fase de implementação das aplicações do
projeto Colombo focar essencialmente nas funcionalidades da API Pro/Web.Link do Pro/E.
Os resultados deste objetivo são descritos na secção 2.3.1 Aplicações de Geração e Edição dos
Portais dos Departamentos.
Para selecionar a API mais adequada para o desenvolvimento das aplicações do programa
Colombo, é fundamental efetuar um breve estudo às três APIs do Pro/ENGINEER: J-Link, VB e
6
1.3 Objetivos
Pro/Web.Link. A API Pro/Toolkit não está incluída neste estudo uma vez que a sua licença é
dispendiosa.
Pretende-se que este estudo seja feito de forma genérica para que o departamento de SI
conheça algumas destas APIs, e que sejam resumidas algumas das suas características
principais numa tabela para responder a algumas questões, como por exemplo: se as licenças
são gratuitas; se as APIs suportam aplicações síncronas e/ou assíncronas e aplicações Web
e/ou standalone; se estas suportam browsers externos ao Pro/ENGINEER.
Após o resumo das características das APIs, por parte do autor, pretende-se iniciar o processo
de seleção da API nomeando os requisitos das aplicações ProPEditor e ProCatalog que estão
relacionados com esta e identificando todas as funcionalidades que estas devem implementar
e que estão relacionadas com o Pro/E (ex: obter o modelo genérico a partir de um modelo
instância). Para a identificação destas funcionalidades do Pro/E pretende-se realizar uma
análise às aplicações ProPEditor e ProCatalog, definindo os seus casos de uso e descrevendo-
os de forma detalhada. Para auxiliar esta análise, o departamento de SI irá fornecer um
enunciado com algumas especificações e funcionalidades funcionais e não funcionais.
Com base nos requisitos e funcionalidades das aplicações ProPEditor e ProCatalog deve ser
selecionada a API mais adequada. Esta seleção deve ser sugerida ao departamento de SI da
Efacec, cabendo a este decidir se é ou não uma boa opção.
A realização de um estudo a esta API tem como principal finalidade entender quais os tipos de
classes que a constituem, como se configura o ambiente de desenvolvimento e de deployment
de uma aplicação, identificar regras e perceber outros conceitos relevantes para o
desenvolvimento de aplicações Web para o Pro/ENGINEER utilizando esta ferramenta, e
propor uma metodologias de trabalho adequada.
7
1 Introdução
A aplicação ProPEditor deve permitir que o preenchimento da legenda dos desenhos do Pro/E
possa ser feito através de um formulário Web. A ideia desta aplicação surgiu
fundamentalmente para fornecer alguns automatismos para um preenchimento mais
eficiente.
Esta legenda é constituída por vários campos, como por exemplo: Projected by/Projectado
por; Drawn by/ Desenhado por; Aproved by/ Aprovado por. Alguns destes campos estão
relacionados com parâmetros do modelo que está associado ao desenho.
A alteração de todos os campos pode ser feita diretamente no desenho ou, apenas no caso
dos campos que estão associados a parâmetros, através de uma opção do Pro/E para editar os
parâmetros.
8
1.3 Objetivos
Inicialmente com a nova aplicação pretendia-se que o utilizador editasse apenas os campos
que estão ligados aos parâmetros, contudo durante a fase de testes da aplicação determinou-
se que o utilizador deve ser capaz de alterar todos os campos da legenda independentemente
de estes estarem associados a parâmetros.
Quando a aplicação é invocada deseja-se que esta efetue a leitura do nome e dos valores de
todos os campos e os apresente ao utilizador sob a forma de formulário. O utilizador pode
preencher o formulário e após a modificação a aplicação registará os valores preenchidos.
Esta aplicação deve incluir automatismos, como por exemplo, na criação de um novo desenho
a página deve preencher de forma automática os parâmetros PROJETISTA e DESENHADOR
com o nome do utilizador que está a utilizar o Pro/E.
9
1 Introdução
O catálogo deve interagir com o GlobalArt para recolher informação sobre as famílias dos
artigos e respetivas características. O GlobalArt é um sistema Web de gestão global de artigos,
desenvolvido pelo departamento de Sistemas de Informação da Efacec AMT, para manter a
coerência na criação e qualificação de artigos em várias empresas espalhadas pelo Mundo
num ambiente multilingue. Cada artigo está associado a um objeto da ferramenta de Product
Lifecycle Management Windchill.
10
1.4 Plano de Trabalho
Sugere-se que a aplicação apresente inicialmente uma lista de imagens em que cada uma
corresponde a uma classe de artigo (classe das anilhas e placas oblíquas, classe dos parafusos,
etc.). Após a seleção de uma classe todos os seus artigos são agrupados por uma determinada
característica, como por exemplo, a norma. Após a escolha da característica é apresentada
uma interface com as características desses artigos, permitindo localizar o artigo pretendido e
adicionar o mesmo no Pro/E através de um clique num botão.
11
1 Introdução
Para garantir uma gestão eficiente do tempo de Estágio e mensurar da melhor forma os
objetivos a atingir foi elaborado, em conjunto com o Coorientador Engenheiro Carlos Pinheiro
e sob orientação do Doutor Paulo Sousa, um calendário de trabalho. O calendário
apresentado na Figura 4 representa o plano de trabalho final.
Este calendário de trabalho contém os vários objetivos gerais e específicos a cumprir durante
o estágio, com início no dia 2 de Novembro de 2010 e fim no dia 30 de Junho de 2011.
Durante este tempo houve cerca de 9 feriados que são tidos em conta neste calendário,
havendo outros períodos de falta por razões académicas (trabalhos, exames) ou pessoais que
não são aqui registados. As datas de início e fim de cada objetivo, representadas na figura
anterior, representam datas aproximadas.
12
1.5 Método de Trabalho
Objetivo Estudo da API selecionada: no contexto deste estágio, uma vez que a prioridade é o
desenvolvimento das aplicações ProPEditor e ProCatalog, o estudo das classes e
funcionalidades da API selecionada, a API Pro/Web.Link, será feito em paralelo com a
programação destas aplicações. Para o estudo pode recorrer-se à documentação e aos
exemplos de aplicações fornecidos pela PTC. Numa fase posterior ao estágio, pretende-se
completar este objetivo estudando esta API com mais pormenor com o propósito de auxiliar
outros programadores através da complementação da literatura existente.
A tarefa Implementar aplicação MassProp não faz parte da lista de objetivos desta
dissertação e como tal não é descrita na próxima secção. O departamento de SI decidiu que
esta aplicação devia ser implementada uma vez que esta pode facilitar o trabalho dos
engenheiros e contribuir para a exploração de novas funcionalidades da API Pro/Web.Link,
não exigindo demasiado tempo para a programar.
13
1 Introdução
Inicialmente, foi feita uma análise das funcionalidades da aplicação através da identificação e
descrição dos seus casos de uso. De seguida as funcionalidades mais prioritárias foram
implementadas, entregando-se uma versão a um número restrito de utilizadores para teste. A
análise foi feita com base nos requisitos estabelecidos pelo departamento de SI, que possuía
os conhecimentos essenciais acerca dos procedimentos de trabalho e das necessidades dos
utilizadores. Enquanto os utilizadores testavam, os restantes requisitos menos prioritários
foram implementados. De acordo com o feedback dos utilizadores teste e do colaborador
responsável pela ideia das aplicações, foram identificados novos requisitos que obrigaram a
rever a descrição dos casos de uso e a alterar a aplicação, repetindo-se, se necessário, o ciclo
“teste-análise-implementação”. Uma vez obtida uma versão consistente e funcional da
aplicação, esta foi transferida para o estado produção e disponibilizada a todos os utilizadores
juntamente com um manual escrito em três idiomas (Português, Inglês e Espanhol). Uma vez
colocada a aplicação em produção, os utilizadores podiam contribuir com novas ideias para
enriquecer as aplicações e criar novos requisitos também importantes para uma maior
eficiência na realização das tarefas.
14
1.6 Contribuições
1.6 Contribuições
Durante os 8 meses de Estágio foram fornecidos os seguintes contributos:
15
1 Introdução
Com uma presença mundial mais alargada, estando no sector da energia aos transportes e à
engenharia, do ambiente aos serviços e às energias renováveis, o Grupo Efacec foca a sua
atividade em oito regiões que constituem as suas Unidades de Mercado: Portugal, Estados
Unidos da América; América Latina (Brasil, Argentina, Chile, Paraguai, Uruguai); Europa
Central (Roménia, República da Bulgária, República Checa, Áustria, Grécia, Eslováquia e
16
1.7 Apresentação da Empresa
Hungria); Magrebe (Argélia, Marrocos e Tunísia); África Austral (Angola, África do Sul e
Moçambique); Espanha e Índia [Efacec, 2012d].
Por razões logísticas e financeiras algumas destas unidades representam uma companhia,
onde por exemplo, a aparelhagem de Média e Alta Tensão representa a companhia 453. A
unidade de Aparelhagem dirige as companhias da Argentina 704 (Efacec Argentina CA) e 721
(Efacec Argentina CC), a companhia da Índia 724 (Efacec C&S) e da Espanha 735 (Efacec
Equipos) uma vez que esta possui a maioria ou todo o capital dessas empresas. A companhia
723 (C&S Efacec) é uma empresa da Índia com direção partilhada, sendo 50% da aparelhagem
e 50% de um parceiro local.
17
1 Introdução
Os restantes capítulos têm como finalidade dissertar sobre os objetivos cumpridos durante e
após o estágio através da descrição e discussão do trabalho efetuado, da apresentação da
informação necessária para a sua compreensão e dos resultados atingidos.
18
1.8 Estrutura da Dissertação
19
1 Introdução
20
2 Intranet AMT - SynergyNet
Este capítulo encontra-se dividido em cinco secções. A primeira secção 2.1 Introdução
introduz a intranet da unidade AMT, fazendo uma breve referência às aplicações Profiler e
Translator, que efetuam a gestão dos utilizadores e das traduções da intranet respetivamente.
A segunda secção 2.2 Arquitetura da SynergyNet expõe a arquitetura física e lógica da
intranet. A terceira secção 2.3 Framework da SynergyNet descreve o Framework de
desenvolvimento de aplicações Web da intranet AMT que, como se verá no capítulo 5
Integração Intranet – Pro/ENGINEER Wildfire 3.0 via Pro/Web.Link, é usado para desenhar a
interface das aplicações do programa Colombo, e descreve as aplicações, desenvolvidas para a
Efacec durante o estágio, de geração e edição dos portais dos departamentos. A quarta
secção 2.4 GlobalArt corresponde à apresentação da aplicação GlobalArt, que permite gerir
os artigos da Efacec e, como se verá no capítulo 7 ProCatalog, é a fonte de informação da
aplicação ProCatalog, dos seus conceitos, e à descrição das tarefas realizadas durante o
estágio, nomeadamente a organização dos dados dos acessórios de fixação no GlobalArt e a
escrita da documentação dos acessórios de fixação. A quinta secção 2.5 Sumário identifica
quais os objetivos atingidos e contributos fornecidos com as tarefas descritas neste capítulo.
2.1 Introdução
A intranet da unidade AMT (SynergyNet) é uma rede de comunicação/informação interna da
Efacec que disponibiliza várias aplicações e tem um sistema de login para restringir os acessos,
que consiste num processo de identificação e autenticação do utilizador através da introdução
do número do utilizador e da sua palavra-chave.
21
2 Intranet AMT - SynergyNet
A SynergyNet tem uma aplicação designada Profiler, desenvolvida pelo departamento de SI,
que permite gerir os dados de dois tipos de utilizadores: utilizadores geridos pelo Active
Directory do domínio Windows da organização e utilizadores existentes apenas no Profiler
(fornecedores, clientes). No caso dos primeiros, as informações base (username, password,
supervisor, e-mail) são geridas exclusivamente pelo Active Directory e obtidas pelo Profiler a
partir de um web service. No caso dos segundos, a informação é gerida por utilizadores com
permissão no Profiler para tal. Outras informações mais específicas da SynergyNet, tais como
a listagem das companhias a que cada utilizador tem acesso são geridas exclusivamente pelo
Profiler.
Após o login, a SynergyNet disponibiliza uma barra com algumas informações (o nome do
utilizador que está atualmente a utilizar a sessão, a companhia a que este pertence e o idioma
em que a página é apresentada) e ligações (uma página de ajuda, um conjunto de links com
todas as aplicações desenvolvidas pela unidade AMT para o utilizador aceder e uma opção sair
para terminar a sessão da SynergyNet).
22
2.1 Introdução
que têm acesso à SynergyNet. Esta opção de tradução permite que todas as aplicações da
SynergyNet possam ser traduzidas e visualizadas pelo utilizador em três línguas diferentes.
Como se pode verificar na figura seguinte (Figura 8), à medida que o utilizador vai alternando
o idioma na aplicação ProCatalog a página é traduzida para o idioma respetivo.
Figura 8 - Página do ProCatalog traduzida para (a) Inglês, (b) Castelhano e (c) Português
A aplicação que permite a tradução do conteúdo das páginas da SynergyNet para um destes
idiomas foi desenvolvida no departamento de SI da unidade da AMT e designa-se por
Translator. Embora atualmente os idiomas de interesse sejam o Português, Inglês e Espanhol,
o Translator está preparado para receber traduções em novas línguas, o que permitirá
adicionar novos idiomas à SynergyNet em caso de necessidade. Para que a tradução possa ser
feita é necessário criá-la previamente no Translator através da identificação de um código, do
23
2 Intranet AMT - SynergyNet
resultado da tradução e do idioma para o qual se traduziu. Após este momento, a função de
tradução do Framework pode ser utilizada para o código criado. Por exemplo, para traduzir a
frase Anilhas e Placas Oblíquas para Inglês tem de ser criado no Translator o seguinte: um
código (ex: washersPlate); o idioma destino (ex: Inglês); e o resultado (ex: Washers and
Oblique Plates). Para permitir a tradução da mesma frase para Espanhol recorre-se ao mesmo
processo anterior utilizando o mesmo código (washersPlates) mas desta vez com o idioma
Espanhol e com o resultado Arandelas e Placas Oblicuas.
As aplicações Web, criadas em PHP, estão armazenadas no servidor aplicacional e sempre que
estas necessitam de obter dados do Microsoft SQL Server o servidor aplicacional acede ao
servidor de base de dados. O servidor aplicacional é constituído por um servidor Web Apache
e por um Framework PHP, desenvolvido pelo departamento de SI, para auxiliar o
desenvolvimento de aplicações Web. A próxima secção apresenta uma breve descrição deste
Framework.
24
2.3 Framework da SynergyNet
3
Front Controller, http://www.martinfowler.com/eaaCatalog/frontController.html
25
2 Intranet AMT - SynergyNet
A classe CMain também disponibiliza outros atributos e métodos que podem ser ou não
usados pelas aplicações consoante a necessidade. As classes ProPEditor e ProCatalog, que
estendem a classe CMain, representam os módulos que o cliente invoca.
26
2.3 Framework da SynergyNet
Os módulos devem ter no seu endereço a indicação dos parâmetros l, sid, mod, operation e
comp com os respetivos valores para que se consiga reconhecer qual o idioma, o utilizador, o
módulo da aplicação, a operação e a companhia que estão ativos na sessão. Neste endereço
também podem estar outros parâmetros, sendo uma forma do PHP transmitir variáveis.
27
2 Intranet AMT - SynergyNet
Tal como foi referido anteriormente, o Framework disponibiliza classes para facilitar a criação
da interface gráfica: CForm para a criação de formulários; e CTable para a criação de tabelas.
Todas as aplicações podem relacionar-se com estas classes. Apesar do uso destas classes
durante o estágio para a programação de algumas aplicações Web, estas não são
aprofundadas visto que não fazem parte do âmbito da presente dissertação.
Como demonstra a Figura 13, outras classes herdam a classe CForm para a criação de
elementos para o formulário, designadamente as classes:
CFormButton: botão;
CFormHidden: campo de texto oculto;
CFormMultipleElement: campo de texto com múltiplos valores;
28
2.3 Framework da SynergyNet
Apenas algumas companhias têm permissão para aceder à intranet da unidade AMT. Cada
uma destas companhias pode estar ligada a vários departamentos: Recursos Humanos,
Informática, Controlo, Produção, Aprovisionamento, entre outros. Como se observa na figura
seguinte (Figura 14), as antigas páginas destes departamentos restringiam-se a expôr atalhos
para as restantes aplicações da intranet mais usadas.
29
2 Intranet AMT - SynergyNet
As antigas páginas dos departamentos também não eram flexíveis pois cada vez que os
utilizadores pretendiam adicionar ou remover uma hiperligação tinham de o solicitar à equipa
de SI. Para possibilitar a edição das páginas sugeriu-se também a implementação de uma
aplicação que permita que os responsáveis pelos departamentos possam modificá-las
consoante as suas necessidades, tornando a página mais dinâmica (consultar Apêndice B).
2.4 GlobalArt
30
2.4 GlobalArt
O Grupo Efacec tem replicado o modelo de negócio presente em Portugal com a criação de
várias empresas por todo o mundo. Esta crescente internacionalização exigiu o advento de um
sistema centralizado, o GlobalArt, para que a criação e classificação de artigos fossem
efetuadas de uma forma coerente e integrada.
O GlobalArt é uma aplicação Web inserida na intranet AMT que permite gerir todos os artigos
das várias companhias. Estes artigos representam todos os materiais adquiridos ou fabricados
pela Efacec. Concentrando todos os artigos numa única plataforma em ambiente multilingue
consegue-se combater o problema da redundância dos dados.
O GlobalArt está totalmente integrado com o ERP (Enterprise Resource Planning) da Efacec, o
Baan, que gere toda a informação interna e externa da organização englobando as compras,
vendas, os dados dos artigos, entre outros elementos e processos de negócio. O GlobalArt
tem uma função que permite que determinados utilizadores possam criar novos artigos no
Baan. Normalmente o processo de sincronização automática entre o GlobalArt e o Baan é
feito duas vezes por dia. Há uma versão Web do ERP Baan, também desenvolvida pelo
departamento de SI da AMT, intitulado por WebBaan, onde o utilizador pode consultar os
dados e utilizar as funcionalidades disponibilizadas pelo Baan, com a vantagem de ser em
ambiente multilingue.
De acordo com o guia do GlobalArt para os utilizadores [Efacec Switchgear, 2009], o GlobalArt
foi criado com o intuito de ultrapassar algumas das seguintes limitações do Baan:
Evitar artigos repetidos, ou seja, evitar que em armazém estejam códigos diferentes
para o mesmo material;
Evitar que o mesmo código de artigo represente materiais diferentes em
companhias diferentes;
Centralizar e disponibilizar os dados dos artigos a outros sistemas;
Permitir atribuir outras características aos artigos;
Possibilitar a gestão multilingue dos artigos e das suas características para que o
utilizador da intranet AMT possa ver toda a informação no seu próprio idioma;
Pesquisar os artigos pelas suas características em ambiente multilingue.
O GlobalArt é também o sistema base de outras aplicações Web desenvolvidas na Efacec, tais
como o GlobalTracking, que é um sistema Web para gerir todas as atividades relacionadas
31
2 Intranet AMT - SynergyNet
Como demonstra a Figura 16 abaixo, cada artigo está inserido numa ou mais companhias e
numa companhia principal (master company). O artigo pode ser comprado ou fabricado (tipo
de artigo) e pertence a uma família corporativa, a uma classe de artigo, a uma família de
artigos (Grupo) e a um armazém.
Estas classes estão associadas a características que podem ser globais (aplicam-se a todas as
companhias) ou locais (são específicas para uma determinada companhia) [Efacec Switchgear,
2009]. A característica é um atributo do artigo. Por exemplo, o artigo parafuso tem
características como o comprimento, diâmetro, etc.
32
2.4 GlobalArt
Um determinado artigo pode pertencer a mais do que uma companhia, pelo que surgiu a
necessidade de criar o conceito de companhia mestre (Master Company), que é a companhia
que detém a propriedade do artigo. Essa companhia é a única que pode alterar os valores das
características globais dos artigos. As restantes características do ERP (dados de custo, dados
de produção, dados de armazém, etc.) podem e devem também ser alteradas pelas restantes
companhias pois variam de companhia para companhia.
A família de artigos ou grupo é uma característica que tem como propósito a criação de um
artigo no Baan, funcionando como um modelo (template). Quando se cria um artigo no Baan e
se indica um grupo, o novo artigo herda as características base desse grupo, tais como os
dados de venda, dados de compra, dados de produção, dados de custo, dados de
planeamento, dados de armazém, etc. Estas características podem ser alteradas durante a
criação ou posteriormente.
A plataforma GlobalArt deve ser a fonte de informação da aplicação ProCatalog, e como tal é
essencial que o GlobalArt tenha os dados dos artigos bem estruturados e com toda a
informação necessária para se conseguir catalogá-los devidamente.
Embora o GlobalArt tivesse uma série de artigos, os artigos de fixação não estavam na
estrutura ideal para suportar a aplicação do catálogo, ou seja, estes não estavam devidamente
classificados pois não possuíam características globais, pelo que era fundamental atualizar a
sua base de dados com a nova estrutura. Para esse fim, foi necessário definir as características
globais de cada um dos tipos acessórios de fixação no GlobalArt, importar os dados de todos
os acessórios a partir do Windchill para inferir os valores das características identificadas
anteriormente e atualizar esta informação no GlobalArt através da migração dos dados.
Os tipos de artigos de fixação que devem ser atualizados para incluir o catálogo ProCatalog
são: parafusos, porcas, anilhas, rebites, cavilhas, golpilhas, circlips e freios.
33
2 Intranet AMT - SynergyNet
A Tabela 1 expressa as características globais que foram identificadas por parte do autor e
aprovadas por um dos membros responsáveis do departamento de SI após reunião com um
engenheiro mecânico.
34
2.4 GlobalArt
A norma é uma característica global que está sempre presente nos artigos de fixação. A Efacec
utiliza acessórios com normas internas (NA, ENA e INA), e com normas ISO (International
Standards Organization) e DIN (Deutsches Institut fur Normung). Faz parte dos objetivos da
Efacec substituir gradualmente todas as normas internas por normas ISO ou DIN equivalentes,
uma vez que estas são conhecidas globalmente.
Após a identificação das características de cada tipo de artigo foi necessário associar cada uma
delas às respetivas classes de artigo e famílias corporativas no GlobalArt. Cada um destes
tipos de artigos está inserido numa classe e numa família corporativa. A configuração destas
características veio facilitar a pesquisa dos acessórios de fixação no GlobalArt, que passou a
ser feita também por características.
Após a definição das características no GlobalArt foi necessário tratar os dados exportados do
Windchill, que tinha a informação mais completa dos acessórios de fixação, e distribuir a
informação obtida pelas várias características para que posteriormente fosse possível migrá-
los para a base de dados do GlobalArt. Os dados exportados estavam na seguinte forma:
Visualizando os dados recolhidos do separador Local Description foi possível distribuí-los pelas
várias características anteriormente identificadas.
35
2 Intranet AMT - SynergyNet
O acessório da
Figura 18 é um freio e como tal as características globais são: tipo de circlip/freio, diâmetro,
matéria-prima e norma. Segundo o livro das normas da Efacec, o tipo de circlip/freio pode ser:
um freio; um circlip exterior; ou um circlip interior. Para representar estes tipos foram criados
no GlobalArt os seguintes valores de entrada para a característica “tipo de circlip/freio”: C
(Freio), CE (Circlip Exterior); e CI (Circlip Interior). No exemplo acima, o artigo é do tipo C
(Freio), feito de aço (apontado pela letra “A” no campo “Local Description”), de diâmetro 12 e
respeita a norma DIN 6799.
Para uma melhor compreensão dos dados e para a sua organização pelas várias características
recorreu-se ao livro das normas da Efacec.
Visto que o volume de dados relativos aos artigos era grande, foram programadas algumas
macros no Excel para colocar, de forma automática, alguns dados nos respetivos campos. Para
auxiliar as macros foi construída uma tabela com os possíveis valores que cada uma das
características podia ter. A função da macro era procurar por esses valores no campo Local
Description e colocar os valores encontrados no campo da característica correspondente.
36
2.4 GlobalArt
O GlobalArt é uma plataforma onde utilizadores autorizados podem criar e classificar artigos.
Para apoiar essa tarefa foi elaborado um documento para os artigos de fixação usados na
Efacec (porcas, parafusos, anilhas, rebites, cavilhas, golpilhas, circlips e freios), com as
diferentes normas usadas.
Em relação aos freios, a Efacec utiliza apenas os freios de localização de norma DIN 6799. Esta
norma corresponde à norma da Efacec ENA 1039. Em termos de circlips, estes classificam-se
em circlips exteriores Embora atualmente as normas da Efacec não sejam utilizadas, muitos
dos artigos do GlobalArt ainda não estão associados a elas. Este documento de classificação,
ao relacionar a antiga norma com a nova norma, facilitará o processo de atualização para as
novas normas.
37
2 Intranet AMT - SynergyNet
Com esta documentação, que auxilia a nível visual ao recorrer a imagens, o utilizador pode
identificar mais facilmente que tipo de acessório pretende criar no GlobalArt (por exemplo, se
o utilizador quer criar um circlip exterior ou interior) e que norma utilizar, diminuindo as
probabilidades de erro e contribuindo para uma boa classificação dos acessórios.
Para algumas das características globais foram criados no GlobalArt os valores de entrada
possíveis para diminuir a ocorrência de erros na classificação de um acessório.
4
Fabory, http://www.fabory.pt/
38
2.5 Sumário
2.5 Sumário
Neste capítulo foram alcançados os objetivos Organizar Dados dos Acessórios de Fixação no
GlobalArt e Estudar Framework da Intranet AMT (SynergyNet), sendo fornecidos três
contributos.
39
2 Intranet AMT - SynergyNet
Objetivos
Contributos
Duas aplicações em PHP para integrarem a intranet da unidade AMT: uma para a
geração de portais dos vários departamentos (Produção, Informática, etc.) de cada
companhia, e outra para a edição desses portais. (Objetivo Estudar Framework da
Intranet AMT (SynergyNet)).
40
3 PDS – Product Development System
Este capítulo encontra-se dividido em quatro secções. A primeira secção 3.1 Introdução faz
uma breve introdução ao PDS (Product Development System) utilizado na Efacec, que é
constituído pelo Pro/ENGINEER Wildfire 3.0 e pelo Windchill PDMLink 9.0. A segunda secção
3.2 Pro/ENGINEER Wilfire 3.0 apresenta alguns dos tipos de modelos que o Pro/E permite
desenvolver e as suas principais características (paramétrico, associativo, baseado em
características). Nesta secção também é feita uma análise às três APIs das versões Wildfire 3.0
e 4.0 (J-Link, VB e Pro/Web.Link) para auxiliar o processo de seleção da API mais adequada
para o desenvolvimento das aplicações ProPEditor e ProCatalog e de outras aplicações, sendo
apresentada a API escolhida após o processo de seleção realizado durante o estágio. A
terceira secção 3.3 Windchill descreve a arquitetura do Windchill PDMLink 9.0 e aborda
alguns conceitos relacionados com a integração do Windchill com o Pro/E. A quarta secção 3.4
Sumário identifica quais os objetivos atingidos e contributos fornecidos com as tarefas
descritas neste capítulo.
3.1 Introdução
Um dos principais objetivos deste estágio consiste em analisar as APIs J-Link, VB e
Pro/Web.Link do Pro/E para que o departamento de SI da Efacec possa selecionar a API mais
apropriada para a programação das duas aplicações do programa Colombo (ProPEditor e
ProCatalog). Estas aplicações, direcionadas para o software de CAD Pro/ENGINEER Wildfire 3.0,
visam aumentar a produtividade dos projetistas das equipas de Engenharia de Produto,
Engenharia Industrial, e de Inovação e Desenvolvimento de Portugal, Índia e Argentina que
41
3 PDS – Product Development System
são geridas pela unidade de AMT. Na Efacec, o Pro/ENGINEER está ligado ao software
Windchill para permitir a gestão dos modelos e as aplicações ProPEditor e ProCatalog devem
possuir funcionalidades relacionadas com o Windchill. Neste sentido, torna-se imprescindível
estudar e compreender o sistema de desenvolvimento de produto (PDS) utilizado na empresa
no qual está incluído o Pro/ENGINEER e o Windchill.
O PDS, fabricado pela PTC, reúne quatro famílias principais de produtos: Creo (abrange
produtos de desenho que eram conhecidos como Pro/ENGINEER, CoCreate e ProductView),
Windchill (software para gestão de conteúdos e processos), Arbortext (software para entrega
dinâmica de informação) e Mathcad (software para efetuar cálculos de engenharia) [PTC,
2012d].
42
3.2 Pro/ENGINEER Wilfire 3.0
De uma forma geral, o CAD refere-se ao uso da tecnologia do computador para o desenho dos
produtos e o CAM diz respeito ao uso do computador para traduzir essas modelações às
máquinas responsáveis pela manufatura dos mesmos [Daintith J., 2005]. Enquanto o CAD
“implementa o rigor e a disciplina da engenharia” [Poter C., 2000], o CAID (Computer Aided
Industrial Design) é uma adaptação do CAD para ser utilizado por “pessoas criativas que
precisam de liberdade para trabalhar os contornos e as formas dos modelos” [Poter C., 2000],
estando mais orientado para o design estético [Westin S., 1998].
De acordo com o supracitado, para a programação das aplicações Web ProPEditor, Procatalog
e MassProp é fundamental compreender os conceitos do Pro/E e Windchill que estão
relacionados com estas aplicações. Enquanto os conceitos mais gerais como os tipos de
objetos e características do Pro/E, arquitetura do Windchill e a sua integração com o Pro/E
são abordados neste capítulo, os conceitos mais específicos de cada uma das aplicações serão
explorados nos capítulos correspondentes às aplicações desenvolvidas (Capítulos 6 ProPEditor,
7 ProCatalog e 8 MassProp).
Em termos de arquitetura o Pro/ENGINEER Wildfire 3.0 é uma aplicação que executa no lado
do cliente, tendo um browser embutido que pode ser ocultado, e é gerida por um software de
licenças da empresa Flexera Software5, o FlexNet [PTC, 2006c].
No Pro/ENGINEER Wildfire 3.0 o utilizador pode criar ficheiros de diversos tipos: part (peça),
assembly (montagem) ou drawing (desenho). Cada um destes tipos tem a extensão “.prt”,
“.asm” e “.drw” respetivamente. Existem outros tipos de objetos que estão disponíveis, como
por exemplo os sketchs (esboços), que são usados para fazer esboços geométricos do objeto a
5
Flexera Software, http://www.flexerasoftware.com
43
3 PDS – Product Development System
modelar, contudo estes não são relevantes para esta dissertação uma vez que as aplicações
desenvolvidas durante o estágio estão unicamente direcionadas para objetos do tipo part,
assembly ou drawing.
Drawing (.drw)
c) Desenho
Como indica a figura acima (Figura 22), enquanto um modelo part é um componente, o
modelo assembly é uma montagem que une vários componentes. Os desenhos são
representações 2D dos modelos 3D (parts e assemblies) e seguem as normas e convenções do
desenho técnico mecânico estabelecidas pela ISO. Estes desenhos contêm informações dos
modelos 3D, tais como as dimensões, entre outras notas.
O Pro/E permite abrir várias janelas ao mesmo tempo e cada janela contém um modelo, mas
o utilizador apenas pode trabalhar numa janela de cada vez. Para isso é preciso ativá-la e a
partir daí o modelo pode ser modificado.
44
3.2 Pro/ENGINEER Wilfire 3.0
3.2.2 Características
O Pro/E foi lançado pela primeira vez ao público em 1988, tendo sido o primeiro a introduzir
no mercado o conceito de modelação paramétrica, modelação associativa, modelação
baseada em características (features) e modelação de sólidos [PTC, 2012b].
Os modelos são constituídos por características (furos, cortes, saliências, etc.) que estão inter-
relacionadas e que têm atributos (dimensão, profundidade, etc.). A modelação paramétrica
assegura que a modificação de um atributo de uma dessas características afeta todo o modelo
[Kogent Learning Solutions, Inc.,2011].Por exemplo, se um utilizador estabelecer que dois
furos têm de estar alinhados a uma distância de 1 cm e se diminuir o tamanho de um dos
furos essa relação mantém-se.
No Pro/E os modelos part, assembly e drawing são associativos, isto é, qualquer modificação
feita num objeto de um destes modelos reflete-se nos restantes modelos onde o objeto está
presente, contribuindo para a sua consistência [Kogent Learning Solutions, Inc.,2011].
45
3 PDS – Product Development System
Neste caso o utilizador alterou o comprimento da peça (part) e o assembly onde esta peça
estava aplicada atualizou essa informação.
Se um modelo for um assembly também podem ser visualizados na model tree os vários
modelos do tipo part ou assembly pelo qual este é composto. O utilizador pode manipular
(editar, renomear, apagar, entre outras opções) as características ou os modelos e alterar a
sua ordem a partir da model tree. Uma simples alteração da ordem das características pode
modificar o aspeto de um objeto uma vez que estas estão relacionadas entre si.
3.2.3 APIs
A PTC disponibiliza com o Pro/ENGINEER Wildfire 3.0 três APIs proprietárias para estender,
automatizar e personalizar as funcionalidades do Pro/E: Pro/Toolkit, J-Link, e Pro/Web.Link. A
Pro/Toolkit é a única que requer uma licença adicional para além da licença base do Pro/E,
possibilitando o desenvolvimento de programas com a linguagem C ou C++. Essa licença
apenas é necessária para instalar no ambiente de desenvolvimento uma vez que a Pro/Toolkit
46
3.2 Pro/ENGINEER Wilfire 3.0
permite desbloquear a aplicação para ser distribuída pelas várias máquinas de trabalho dos
colaboradores [PTC, 2006a]. Com o lançamento do Pro/ENGINEER Wildfire 4.0 surgiu uma
nova API gratuita: VB [PTC, 2012f] . À exceção da Pro/Toolkit, todas as APIs são ferramentas
de programação orientadas a objetos [Felco Solutions, Inc., 2011].
Uma API (Application Programming Interface) pode ser expressa como “uma interface bem-
definida que define o serviço que um componente, módulo, ou aplicação fornece a outros
elementos de software” [Daughtry et al., 2009]. Utilizando a linguagem adequada, uma
aplicação pode invocar funções de uma API para interagir com o Pro/E.
Cada uma das APIs do Pro/ENGINEER disponibiliza uma ou, no caso da J-Link, duas bibliotecas
com classes e funções que podem ser utilizadas por outras aplicações. As APIs incluem
também a seguinte documentação: um documento de notas, que contém as mudanças
efetuadas na API pela PTC, nomeadamente as classes, propriedades ou métodos que foram
substituídos, alterados ou criados (ex: Weblink_Wildfire30_RelNotes.pdf); um manual de
utilização com alguns conceitos da API, designadamente aspetos relacionados com a
configuração da mesma, explicando ao leitor como obter determinados objetos utilizando as
suas classes (ex: weblinkug.pdf); exemplos práticos de aplicações desenvolvidas com a API (ex:
pasta weblinkexamples); e uma API Wizard (ex: weblinkdoc\index.html), para ser consultada a
partir de um browser, com uma lista e descrição das classes e das suas propriedades, métodos
e relações hierárquicas.
47
3 PDS – Product Development System
Licença Gratuita
API do Pro/ENGINEER
Wildfire 3.0
VBA, Visual
Basic 2005,
Linguagens de Programação
Java JavaScript, JavaScript
Suportadas
VBScript, C++,
C#
Aplicações Síncronas
Aplicações Assíncronas
Aplicações Web
Aplicações Standalone
48
3.2 Pro/ENGINEER Wilfire 3.0
A API VB é composta por uma biblioteca implementada num servidor COM executável
(pfclscom.exe) [PTC, 2009b]. Este servidor COM, objeto que disponibiliza serviços a clientes, é
do tipo out-process [MSDN, 2012a]. Enquanto um servidor COM out-process executa num
processo independente da aplicação cliente, isto é, da aplicação que acede aos seus serviços,
um servidor COM in-process executa no mesmo processo da aplicação cliente (referência x).
As classes fornecidas por esta biblioteca podem ser acedidas usando as linguagens VBA (Visual
Basic Application), Visual Basic.NET 2005 e outras linguagens com capacidade para usar
servidores COM (JavaScript, VB Script, C++, C#) [PTC, 2009b].
A API Pro/Web.Link é composta por uma biblioteca implementada num servidor COM
(pfcscom.dll). Este servidor COM é um controlador ActiveX do tipo in-process [MSDN,
2012a][PTC, 2006b]. Para aceder às classes desta biblioteca pode ser utilizada a linguagem
JavaScript [PTC, 2006b].
Entre as três APIs, a J-Link é a única que permite desenvolver aplicações síncronas e
assíncronas. Como meios de comunicação entre as aplicações assíncronas e o Pro/E, a J-Link
utiliza o JNI (Java Native Interface) e o RPC (Remote Procedure Calls). Na construção destas
aplicações síncronas deve haver um especial cuidado para não interferir com o thread
principal do Pro/E porque todas os threads criados estão dentro do mesmo processo do
Pro/E. Assim, as caixas de diálogo construídas em aplicações Java síncronas devem ser do tipo
49
3 PDS – Product Development System
modal (ou bloqueante) para bloquear possíveis interações do utilizador com o Pro/E até que
esta seja fechada e impossibilitando assim interferências entre threads. Esta API também tem
a particularidade de possibilitar a associação de uma aplicação síncrona a um determinado
modelo part ou assembly. Desta forma, quando um determinado modelo part ou assembly
são carregados para a sessão do Pro/E o método start é ativado e quando o modelo é
eliminado da memória o método stop é ativado. As aplicações assíncronas criadas com esta
API podem suportar o modo simples ou full. A diferença entre estes dois modos é que no
modo full a aplicação pode implementar um loop para escutar e responder quando
determinados eventos são acionados no Pro/E. Nas aplicações assíncronas apenas um thread
pode comunicar com o Pro/E e por isso não é permitido ter várias ligações à sessão do Pro/E.
A sessão do Pro/E é o objeto de mais alto nível, ou seja, para comunicar com o Pro/E é
necessário que a aplicação se ligue primeiro à sua sessão [PTC, 2006e].
Ao contrário da VB, a API Pro/Web.Link suporta apenas aplicações síncronas e para que estas
aplicações consigam comunicar com o Pro/ENGINEER é necessário que este esteja a ser
executado [PTC, 2006b].
d) Aplicações Web
Todas estas APIs possibilitam a construção de aplicações Web uma vez que suportam
linguagens que assim o permitem: a linguagem Java, suportada pela API J-Link, possui a classe
Servlet que permite gerar código HTML (HyperText Markup Language) [Conover S., 2005] [PTC,
2006e]. A API VB suporta a linguagem VBScript e JavaScript [PTC, 2009b]; e a API
Pro/Web.Link, construída exclusivamente para o desenvolvimento de aplicações Web, suporta
o JavaScript que tal como a VBScript é uma linguagem de script que pode ser embebida no
código HTML [PTC, 2006b].
50
3.2 Pro/ENGINEER Wilfire 3.0
f) Aplicações Standalone
A API Pro/Web.Link é a única que não permite desenvolver aplicações standalone uma vez
não possui mecanismos para ligar uma aplicação standalone ao Pro/E, sendo obrigatório que a
aplicação seja executada dentro do browser interno do Pro/E [PTC, 2006b].
A Tabela 2 reúne as principais características de cada uma das APIs. Outros fatores distinguem
as APIs tais como o nível de dificuldade da aprendizagem, de deployment e o tempo de
desenvolvimento. Contudo, estes fatores não são avaliados e apresentados nesta tabela
devido à sua subjetividade uma vez estão relacionados não só com a complexidade das APIs,
51
3 PDS – Product Development System
Para desenvolver as aplicações ProPEditor e ProCatalog foi necessário selecionar uma das três
APIs do Pro/ENGINEER Wildfire 3.0 e Wildfire 4.0. Para tal, iniciou-se o processo de seleção e
sugeriu-se a API mais adequada. No final do processo, o departamento de SI decidiu se a API
sugerida era uma boa escolha.
O processo de seleção foi dividido em cinco fases. Na primeira fase foram nomeados todos os
requisitos da API com base nos requisitos das aplicações ProPEditor e ProCatalog. A segunda
fase consistiu na seleção temporária da API, com o auxílio da Tabela 2, que satisfazia os
requisitos identificados anteriormente e que, ao mesmo tempo, possuía vantagens em
relação a outras APIs. É importante nesta fase identificar e analisar outros elementos
relevantes, não menosprezando os conhecimentos do programador em relação às linguagens
de programação. Na terceira fase foram definidos e descritos os casos de uso das aplicações
ProPEditor e ProCatalog para identificar as funcionalidades do Pro/E que devem ser
implementadas com a API. Na quarta fase foi realizado um estudo à documentação da API,
previamente selecionada na segunda fase, para verificar se esta suporta as funcionalidades
identificadas na alínea anterior. Na quinta fase sugeriu-se ao departamento de SI, com base
nas fases anteriores, a API mais adequada para implementar as aplicações ProPEditor e
ProCatalog. Caso a API selecionada na segunda fase não permitisse implementar todas as
52
3.2 Pro/ENGINEER Wilfire 3.0
b) Seleção, com base na tabela, da(s) API(s) que satisfaz(em) os requisitos identificados
na alínea a
Com base nos requisitos anteriores e na linguagem de programação, selecionou-se a API
Pro/Web.Link. Esta API foi desenvolvida exclusivamente pela PTC para a construção de
páginas Web, permitindo desenvolver páginas Web síncronas que utilizam a linguagem
JavaScript. Suportando esta linguagem as aplicações podem ser facilmente integradas com a
linguagem PHP. A API VB foi imediatamente descartada pois não permite o desenvolvimento
de aplicações síncronas. A API J-Link foi colocada temporariamente de parte uma vez que a
API Pro/Web.Link satisfaz todos os requisitos e suporta uma linguagem mais acessível
(JavaScript) tanto para o autor como para os restantes programadores do departamento de SI,
o que facilitará mais tarde o processo de atualização das aplicações. Caso numa fase posterior
se verificasse que a Pro/Web.Link não conseguia implementar todas as funcionalidades
requeridas das aplicações então seria necessário analisar a API J-Link e verificar se é possível
integrar o PHP com o Java, mas isso não aconteceu e como tal não foi necessário fazer esse
estudo.
53
3 PDS – Product Development System
É de referir que cada uma das três APIs é limitada em relação à API Pro/Toolkit, que possui
cerca de 80/90% das funcionalidades do Pro/E: a J-Link tem cerca de 60%; a Pro/Web.Link
com 50%; e a VB possui perto de 40% das funcionalidades [Felco Solutions, Inc., 2011].
e) Sugestão da API
A API sugerida pelo autor foi a Pro/Web.Link uma vez que satisfaz todos os requisitos das
aplicações do programa Colombo, permitindo implementar todas as funcionalidades do Pro/E
requeridas, e suporta uma linguagem mais acessível (JavaScript) para o autor e para os
membros do departamento de SI, não constituindo uma barreira para futuras atualizações.
Perante estas razões, o departamento de SI concordou que a API Pro/Web.Link é a mais
adequada para este projeto.
3.3 Windchill
O Windchill é um PLM, desenvolvido pela PTC, que faz a gestão do ciclo de vida dos produtos
[PTC, 2012f]. A gestão do ciclo de vida dos produtos envolve uma gestão integrada dos
processos de negócio e das informações relacionadas com os produtos, desde o seu
planeamento e produção até à sua utilização, manutenção e descarte [Zancul E., 2009].
54
3.3 Windchill
Segundo Hélio Samora, diretor da PTC da América Latina, “o Windchill aumenta a eficiência da
equipe de engenheiros na medida em que elimina os erros associados a dados duplicados ou
incompletos, por dispor um repositório único e seguro para armazenar todo o conteúdo
relativo ao produto” [Civa G, 2010].
A PTC disponibiliza vários componentes do Windchill para fazer a gestão dos conteúdos, dos
dados dos produtos e dos projetos. Atualmente a Efacec utiliza os componentes PDMLink 9.0
e o ProjectLink 9.0 que funcionam de forma integrada sob a forma de aplicação Web e
possuem um sistema de login.
55
3 PDS – Product Development System
O Windchill PDMLink pode interagir com o Pro/ENGINEER para efetuar a gestão dos modelos,
controlando os acessos aos mesmos. Esta interação do Windchill com o Pro/E é suportada se
o Windchill PDMLink estiver a ser executado no browser embutido do Pro/E [PTC, 2007b] .
Os objetos do Windchill podem ser, entre outros, documentos CAD [PTC, 2007a] que, tal
como no Pro/E, podem ser do tipo “part”, “assembly” e “drawing”. Estes objetos podem estar
num dos seguintes estados: Design (em projeto/desenho); Prototype (em protótipo); Under
Review (à espera de aprovação); Production Change (em alteração); Released (aprovado e
pronto para ser utilizado em produção); Obsolete (não é/não deve ser utilizado).
Estes objetos do tipo part, assembly ou drawing podem ser controlados por uma versão,
permitindo ao utilizador rever todas as modificações feitas a esse mesmo objeto. A versão é
constituída pela revisão e iteração.
Embora as revisões possam ser personalizadas, por omissão estas são representadas por uma
letra do alfabeto (A, B, C) e são criadas sempre que for detetado e corrigido algum erro no
objeto ou for necessário realizar uma alteração para o adequar a um novo produto. As
iterações são compostas por números inteiros e quando o utilizador faz check in ao objeto a
iteração é automaticamente incrementada [PTC, 2007a].
56
3.3 Windchill
O Windchill PDMLink pode ser implementado num único servidor ou, para responder a
pedidos mais complexos, em múltiplos servidores. Habitualmente a sua arquitetura física é
representada por três camadas (three-tier) como demonstra a Figura 27 [VMware,
2008][Cisco, 2009].
57
3 PDS – Product Development System
o Servlet engine (Tomcat) : faz a gestão de servlets e de JSP (Java Server Pages)
e filtra os pedidos do Apache para o method server para processamento
[VMware, 2008];
Para ligar a camada da aplicação à camada de dados é utilizado a API JDBC [Cisco,
2009].
Camada Dados: Os dados são guardados num Sistema de Gestão de Bases de Dados
Relacional (Oracle ou SQL Server).
Para que o Pro/E e o Windchill PDMLink consigam interagir entre si é necessário estabelecer
uma ligação entre eles através do registo e ativação do servidor do Windchill (PDM Server) no
Pro/E e da indicação do workspace ativo do lado do servidor (Figura 28). Neste contexto, o
PDM Server contém a camada aplicação e a camada dados. O workspace do lado do servidor
(server-side workspace) é um espaço do Windchill definido pelo utilizador para armazenar os
modelos a editar no Pro/E.
58
3.3 Windchill
deste instante o utilizador pode efetuar várias operações aos modelos CAD, tais como a
abertura dos modelos a partir do workspace do Windchill, o check-out, o check-in, etc.
A opção Server Registry do Pro/E (Figura 28) também permite saber qual o nome, o estado
(online ou offline) e a localização do servidor ativo no Pro/E, e qual o workspace ativo,
podendo alterar essas definições quando entenderem.
O Windchill tem de estar preparado para gerir grandes quantidades de dados e manter a
integridade destes controlando as operações concorrentes. Assim, quando o Windchill
PDMLink está integrado com o Pro/E quatro locais de armazenamento distintos compõem o
PDM Server do Windchill e o lado cliente onde o Pro/E está a ser executado.
59
3 PDS – Product Development System
Enquanto o Windchill PDM Server é composto pelo commonspace do Windchill e pelo server-
side Workspace, o cliente é composto pelo cliente-side workspace cache e pela sessão do
Pro/E [PTC, 2007b]:
Sessão do Pro/ENGINEER: Memória do Pro/E que mantém uma cópia dos modelos
que são abertos através de diversas operações (check-out, etc.). Se o utilizador fechar
os modelos no Pro/E e não apagar a memória (através de uma opção do Pro/E), estes
continuam em sessão. Quando o utilizador carrega um modelo assembly para o Pro/E,
este é guardado em sessão juntamente com os modelos que o constituem (part e/ou
assembly), ficando apenas visível para o utilizador o modelo assembly.
60
3.3 Windchill
Para gerir os modelos CAD, os utilizadores podem realizar várias operações PDM a partir do
Windchill e do Pro/E: check-out, check-in, etc. Se o utilizador aceder ao server-side workspace
a partir de um browser externo ao Pro/E, este apenas tem acesso a esse workspace e ao
commonspace, não podendo interagir com o cliente-side workspace e sessão do Pro/E.
Quando esta interação não é possível, as funções PDM as funções PDM que permitem
interagir com o Pro/E não podem ser utilizadas. A figura seguinte demonstra quais os espaços
de armazenamento envolvidos nas diferentes operações.
61
3 PDS – Product Development System
O check-in pode ser feito a partir do Pro/E, sendo feito um save e um upload automático
juntamente com o check-in, ou a partir do server-side workspace, que implica que o utilizador
tenha feito um save e upload manual do modelo para esta área [PTC, 2007a].
3.4 Sumário
Neste capítulo foi alcançado o objetivo Selecionar API do Pro/ENGINEER, sendo fornecidos
dois contributos.
Objetivo
62
3.4 Sumário
aceitou a sugestão uma vez que esta cumpre todos os requisitos das aplicações do
programa Colombo, permite implementar todas as funcionalidades do Pro/E e
suporta uma linguagem que, quer o autor, quer os membros do departamento de SI,
dominam.
Contributos
Relatório sobre as APIs do Pro/E com informação essencial sobre as suas principais
características para suportar o processo de seleção de uma API;
Documentos com a descrição dos casos de uso das aplicações ProPEditor e ProCatalog
e com outras especificações. Até ao final do estágio, estas descrições foram alvo de
alterações durante as fases de implementação das aplicações ProPEditor e ProCatalog.
As descrições finais são apresentadas nas secções Apêndice E - Caso de Uso Editar
Legenda e Apêndice F - Caso de Uso Adicionar Artigo.
63
3 PDS – Product Development System
64
4 Pro/Web.Link
Este capítulo encontra-se dividido em seis secções. A primeira secção 4.1 Introdução introduz
a API Pro/Web.Link, apresentando os conhecimentos que um programador deve ter para
desenvolver aplicações com esta API. A segunda secção 4.2 Arquitetura da API Pro/Web.Link
descreve a arquitetura da API Pro/Web.Link de uma forma muito breve. A terceira secção 4.3
Classes identifica os tipos de classes que compõem a API Pro/Web.Link, sendo fornecidos
alguns exemplos para explicar como podem ser utilizadas estas classes. A quarta secção 4.4
Herança fala sobre a capacidade de herança dos objetos da API Pro/Web.Link. A quinta secção
4.5 Pro/Web.Link API Wizard fornece algumas noções sobre a API Wizard, uma
documentação que identifica as classes, métodos e propriedades da API Pro/Web.Link. A
sexta secção 4.6 Sumário identifica quais os objetivos atingidos e contributos fornecidos com
as tarefas descritas neste capítulo.
4.1 Introdução
A Pro/Web.Link é uma API, desenvolvida pela PTC, que permite que uma aplicação Web
comunique com o Pro/ENGINEER a partir do seu browser interno [PTC, 2006b]. Como o uso do
Pro/E está orientado para o sector empresarial e institucional, as aplicações Web podem estar
inseridas numa intranet.
65
4 Pro/Web.Link
66
4.3 Classes
Este controlador ActiveX deve ser registado no Windows para ser carregado, suportando o
auto registo e a anulação do mesmo no Windows através da implementação das funções
DllRegisterServer e DllUnregisterServer [MSDN, 2012d].
Este controlador ActiveX foi classificado pela PTC como sendo não seguro [PTC, 2006b] .
4.3 Classes
A API Pro/Web.Link do Pro/ENGINEER Wildfire 3.0 é constituída por classes designadas por
PFC (Parametric Foundation Classes), que contêm métodos e propriedades. Antes do
aparecimento destas classes, a API Pro/Web.Link disponibilizava outros métodos a que a PTC
refere como old ‘PWL’ style. Embora a PTC não aconselhe o uso destes métodos em novas
aplicações, a API Pro/Web.Link ainda os suporta, comportando-os na classe pfcScript, por
questões de compatibilidade com antigas aplicações. Para aceder a esta classe é preciso criar
um objeto da classe MpfcCOMGlobal e utilizar o seu método GetScript() [PTC, 2006b].
As classes PFC desta API abrangem 7 tipos de classes principais. À exceção das classes
relacionadas com o Pro/ENGINEER, todas as classes podem ser instanciadas com um objeto do
JavaScript, o ActiveXObject. Uma vez que este objeto apenas pode ser utilizado no browser IE
e só terá utilidade se for usado no browser interno do Pro/E, pois a PTC implementou uma
restrição que não permite o acesso aos métodos e/ou propriedades de um objeto retornado a
partir de um browser externo ao Pro/E, devem ser feitas validações restringindo a execução
do objeto ActiveXObject ao browser interno do Pro/ENGINEER (IE). As validações podem ser
feitas numa função a que a PTC designa por pfcCreate(className), mas o programador pode
optar por manter ou não essa denominação. Esta função pode ser consultada na secção
Apêndice D - Módulo JavaScript.
67
4 Pro/Web.Link
Estes objetos não podem ser instanciados diretamente utilizando o objeto ActiveXObject do
JavaScript mas podem ser retornados através do uso de métodos e propriedades adequadas
da API Pro/Web.Link.
O objeto sessão (classe pfcSession) é considerado o objeto de mais alto nível dado que é
necessário obtê-lo para conseguir interagir com os restantes objetos do Pro/E. Para obter o
objeto sessão utiliza-se o método GetProESession() sobre o objeto MpfcCOMGlobal. Mesmo
que este método seja utilizado várias vezes na mesma aplicação, a sessão retornada será
sempre a mesma [PTC, 2006b].
Classes que contêm métodos estáticos para criar ou aceder a outras classes. Este tipo de
classes não contém quaisquer atributos acessíveis e o seu nome começa sempre por “M”
seguido do nome do módulo [PTC, 2006b].
O objeto MpfcCOMGlobal é um exemplo deste tipo de classes. Como foi referido, este objeto
é necessário para obter a sessão do Pro/E.
Ao contrário das classes relacionadas com o Pro/E, estas classes podem e devem ser
instanciadas utilizando a função pfcCreate(className) [PTC, 2006a].
68
4.3 Classes
Classes criadas para ser usadas como argumentos em alguns métodos do Pro/E.
Diferentemente dos objetos do Pro/E, estas classes podem e devem ser instanciadas [PTC,
2006b].
Para instanciar estas classes utiliza-se a função estática pfcCreate e em seguida, se aplicável,
invoca-se o método construtor definido para a classe em questão que pode ser Create() ou
pode ter a palavra create no seu nome [Lewis C., 2008].
4.3.4 Enumeration
69
4 Pro/Web.Link
Estas classes podem ser retornadas por propriedades ou métodos ou podem ser instanciadas
através da função pfcCreate(className), classe referida anteriormente na secção das classes
de dados compactos. Caso a classe seja instanciada é necessário atribuir o valor pretendido à
classe invocando a propriedade adequada.
4.3.5 Union
Classes com potencial para assumirem um de vários tipos de dados diferentes [PTC, 2006b].
A classe pfcParamValue pertence a este tipo de classes e a sua função é fornecer o valor de
um determinado parâmetro de um modelo. Se tiver um objeto parâmetro (pfcParameter) e
utilizar o método Value para obter o seu valor obtém-se um objeto da classe pfcParamValue,
contudo isto não é suficiente para obter o valor do parâmetro. Como o valor deste parâmetro
pode ser do tipo booleano, string, double, integer ou note é preciso também indicar, através
do uso da propriedade adequada (BoolValue, DoubleValue, IntValue, NoteId, StringValue),
qual o tipo do valor que se pretende ler.
Estas classes possuem sempre a propriedade discr para saber qual o tipo de dados que estas
detêm [PTC, 2006b]. Ao utilizar esta propriedade sobre o objeto pfcParamValue obtém-se a
70
4.3 Classes
//Obter um parâmetro
var param = model.GetParam(“nome_parametro”);
//Ler o valor do parâmetro
if(param.Value.discr == pfcCreate(“pfcParamValue”).PARAM_BOOLEAN)
//equivalente a “if(param.Value.discr ==2)”
alert(param.Value.BoolValue);
else if(param.Value.discr == pfcCreate(“pfcParamValue”).PARAM_STRING)
alert(param.Value.StringValue);
(…)
Código 4 - Extrato de código
4.3.6 Sequence
Estas classes podem ser retornadas por propriedades ou métodos ou podem ser instanciadas
através da classe estática pfcCreate(className). Caso a classe seja instanciada é necessário
adicionar itens ao array porque este está vazio. A instanciação destas classes é útil na criação
de uma lista de objetos (por exemplo uma lista de modelos) para usar em algum método ou
para comparar com outros objetos.
A classe pfcModels pertence a este tipo de classe e é usada para especificar uma lista de
modelos. Os seus métodos são os seguintes:
71
4 Pro/Web.Link
Método Item(Integer Index): Acede ao item que está localizado na posição indicada
como argumento;
Método Set(Integer Index, pfcModel Item): Atribui um item da classe pfcModel a uma
determinada posição da sequência.
4.3.7 Array
Classes que representam arrays de dimensão limitada. Uma das características destas classes
é que os arrays não sabem quantas dimensões têm, sendo retornado um erro quando se
utiliza o método “length” do JavaScript sobre estas classes [PTC, 2006b]. Estas classes
possuem sempre 2 métodos para ler e editar o array (Item, Set).
A classe pfcPoint3D pertence a este tipo de classes, sendo um array unidimensional limitado a
3 elementos. Esta classe é usada para armazenar um ponto tridimensional, ou seja, um ponto
de 3 coordenadas. A posição “0” corresponde à coordenada “x”, a posição “1” corresponde à
coordenada “y” e a posição “2” corresponde à coordenada “z”.
72
4.4 Herança
No caso da classe pfcPoint3D se indicar índices acima do índice “2” é retornado um erro uma
vez que este array não pode ter mais do que 3 elementos.
Para instanciar este tipo de classes utiliza-se a função estática pfcCreate (className), sendo
atribuído por omissão o valor “0” a todas as posições do array.
4.4 Herança
As únicas classes que herdam métodos e propriedades de outras classes são as classes
relacionadas com o Pro/ENGINEER e as classes de dados compactos [PTC, 2006b]. As classes
que estendem os métodos e propriedades de outras classes designam-se por subclasses e as
classes que são estendidas designam-se por superclasses. As subclasses podem utilizar as
propriedades e métodos das superclasses acima destas [Lewis C., 2008].
73
4 Pro/Web.Link
A classe pfcAssembly é uma subclasse da classe pfcSolid e esta por sua vez é uma superclasse
das classes pfcAssembly e pfcPart. Estas duas classes podem utilizar os métodos e
propriedades da classe pfcSolid, da classe pfcModel e de todas as superclasses acima
(superclasses da classe pfcModel, superclasses destas superclasses, etc.).
Nesta “APIWizard” o utilizador tem acesso, a partir do menu do lado esquerdo, aos vários
módulos, classes, classes de exceção, tipos enumerados e ao manual da API (“Pro/Web.Link
User's Guide”) que tem alguns exemplos práticos. Esses exemplos práticos podem ser
testados uma vez que estão colocados em ficheiros JavaScript e HTML no diretório “<diretório
do Pro/ENGINEER>\Weblink\weblinkexamples”. O manual também pode ser consultado a
partir do diretório “<diretório do Pro/ENGINEER>\Weblink\weblinkug.pdf”. Cada versão do
Pro/ENGINEER contém uma versão atualizada da API Pro/Web.Link. Com estas atualizações
algumas das suas propriedades ou métodos podem vir a ser alterados ou a ficar obsoletos. Por
esta razão, quando uma empresa pretende atualizar a versão do Pro/E deve averiguar, através
da leitura de um documento fornecido pela PTC relativamente à nova versão da API (ex:
74
4.5 Pro/Web.Link API Wizard
Os módulos agrupam as classes por temas e desta forma facilitam a procura da classe
pretendida. Por exemplo, o módulo pfcModel contém todas as classes relacionadas com os
modelos ou operações a modelos.
Em algumas propriedades e métodos a PTC não expõe de forma explícita qual a classe do
objeto retornado ou de um determinado argumento e por isso o programador deve
interpretar a informação fornecida. Por exemplo, quando um objeto retornado pode ser da
75
4 Pro/Web.Link
classe pfcPart ou pfcAssembly, a PTC indica que o objeto retornado é da classe pfcSolid pois
esta classe representa os modelos do tipo part ou assembly. Esta é uma forma de generalizar
o resultado pois o objeto pode ser de uma classe ou de outra. O mesmo acontece com alguns
argumentos pois quando um argumento suporta objetos da classe pfcSolid significa que
aceita objetos da classe pfcPart ou pfcAssembly.
A API Wizard também possui uma funcionalidade de pesquisa através da seleção do botão
“Find”, situado acima do menu do lado esquerdo, que permite pesquisar pelos nomes das
classes (opção “API Names”), pelos conteúdos das classes (opção “API definitions”) e/ou pela
informação do manual.
4.6 Sumário
Neste capítulo foi alcançado parte do objetivo Estudo da API Selecionada, sendo fornecido um
contributos. Os aspetos relacionados com a integração entre a Pro/Web.Link e o Pro/E, que
visam completar o estudo deste objetivo, são discutidos no próximo capítulo 5 Integração
Intranet – Pro/ENGINEER Wildfire 3.0 via Pro/Web.Link.
Objetivo
Contributo
76
5 Integração Intranet – Pro/ENGINEER
Wildfire 3.0 via Pro/Web.Link
Este capítulo encontra-se dividido em sete secções. A primeira secção 5.1 Introdução faz uma
breve introdução à API Pro/Web.Link e possibilidade de integrar aplicações Web com o
Pro/ENGINEER utilizando esta API. A segunda secção 5.2 Arquitetura apresenta uma proposta
da arquitetura que possibilita a interação entre uma aplicação Web e o Pro/ENGINEER
Wildfire 3.0. A terceira secção 5.3 Configuração do Ambiente de Desenvolvimento/Execução
resume os passos que compõem o processo de configuração do ambiente de
desenvolvimento/execução de uma aplicação Web desenvolvida com a API Pro/Web.Link,
explicando alguns conceitos relacionados com a interação entre uma aplicação Web e o
Pro/ENGINEER Wildfire 3.0. A quarta secção 5.4 Módulo JavaScript apresenta de uma forma
resumida as classes e as acções executadas pelo módulo JavaScript. A quinta secção 5.5
Método de Trabalho Proposto apresenta a proposta de um método de trabalho para
desenvolver uma aplicação com a API Pro/Web.Link. A quinta secção 5.6 Aplicações
Desenvolvidas identifica as tecnologias utilizadas no desenvolvimento das aplicações
ProPEditor, ProCatalog e MassProp e a sua arquitetura. A sexta secção 5.7 Sumário identifica
quais os objetivos atingidos e contributos fornecidos com as tarefas descritas neste capítulo.
5.1 Introdução
O Pro/ENGINEER Wildfire 3.0 possui um browser interno que permite executar aplicações
Web. Estas aplicações podem comunicar com o Pro/E através dos objetos e funcionalidades
da API Pro/Web.Link, permitindo assim a integração de uma intranet de uma empresa com o
77
5 Integração Intranet – Pro/ENGINEER Wildfire 3.0 via Pro/Web.Link
software de CAD, o Pro/ENGINEER. Esta integração é útil para criar aplicações que satisfaçam
necessidades específicas de uma empresa.
Segundo Christopher Lewis, para aumentar a eficiência das empresas deve-se apostar na
reengenharia das tarefas diárias dos seus colaboradores pois a maior parte do tempo das
organizações é gasto nestas funções. Com esta observação ele introduz o conceito Simple
Automation, que consiste em programar pequenas aplicações com a API Pro/Web.Link em
poucos dias para resolver pequenos problemas do dia-a-dia dos colaboradores [Lewis C.,
2008].
5.2 Arquitetura
Teoricamente a API não comunica diretamente com o Pro/E mas permite que o browser
interno do Pro/E comunique com este através da invocação dos métodos ou propriedades
desta API.
78
5.3 Configuração do Ambiente de Desenvolvimento/Execução
Verificou-se com o programa Process Explorer que o processo do Pro/ENGINEER Wildfire 3.0 é
o xtop.exe e que este contém threads que executam o Pro/ENGINEER e o browser interno.
Teoricamente e em condições ideais (após a configuração do ambiente de
desenvolvimento/execução), a API Pro/Web.Link é carregada para o componente MSHTML do
browser e este componente invoca os objetos da API. Uma vez obtidos os objetos este
comunica com o Pro/E através da invocação dos seus métodos ou propriedades. Se a opção
web_enable_javascript do Pro/E não estiver ativa, o browser consegue invocar os objetos,
contudo não consegue comunicar com o Pro/E.
Não existe qualquer documentação que chegue a este nível de detalhe, contudo com base na
arquitetura da API Pro/Web.Link, nos conteúdos escritos neste e no capítulo anterior com
referência à documentação da PTC, e no que foi observado no programa Process Explorer,
desenhou-se a Figura 33. Christopher Lewis, Consultor Sénior da PTC Global Services
concordou com esta figura. Esta interação é explicada, dentro dos possíveis, com um pouco
mais de detalhe na próxima secção.
Esta etapa consiste em ativar, nas definições de segurança do IE, a opção “Processamento de
scripts ativo” para permitir a execução das aplicações e ativar a opção “Inicializar e efetuar o
script de controlos ActiveX não assinalados como seguros para o processamento de scripts”
para permitir a execução das funcionalidades da API Pro/Web.Link uma vez que esta é um
controlador ActiveX não seguro [PTC, 2006b].
79
5 Integração Intranet – Pro/ENGINEER Wildfire 3.0 via Pro/Web.Link
Esta etapa consiste no registo do controlador ActiveX “pfcscom.dll” nos registos do Windows.
Após este registo, a API fica visível para o Pro/ENGINEER [PTC, 2006b] e cada vez que uma
aplicação for executada no browser interno do Pro/E ou no IE, a API é carregada para o
componente MSHTML.dll. Esta última observação foi feita com o programa Process Explorer6
da Microsoft, que permite verificar os processos que são carregados e as respetivas threads.
O programa Process Explorer também permitiu observar que o componente MSHTML utiliza a
função DLLGetClassObject(), que tem como objetivo comunicar com a interface da API [MSDN,
2012f]. Desta forma, o browser IE externo e o browser do Pro/E podem comunicar com a API
para instanciar uma das classes, à exceção das classes relacionadas com o Pro/E, com o objeto
JavaScript ActiveXObject. A partir de um browser externo não é possível interagir com o Pro/E,
por exemplo através da utilização da função GetProESession() da classe MpfcCOMGlobal, uma
vez que não há qualquer ligação com o Pro/E e como tal a API Pro/Web.Link lança a exceção
“PfcXNotConnectedToProe” [PTC, 2006b] . A partir do browser do Pro/E é possível interagir
com o Pro/E pois estes estão sempre ligados entre si, mas para a comunicação ser permitida é
necessário ativar a opção web_enable_javascript no ficheiro de configuração do Pro/E [PTC,
2006b].
6
Process Explorer: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx.
80
5.4 Módulo JavaScript
As funções do módulo JavaScript não foram ideia do autor uma vez que a PTC as disponibiliza
também num módulo próprio (pfcutils.js). Contudo, foram efetuadas algumas melhorias
relacionadas com a organização do código e com a apresentação das mensagens de erros para
que fosse possível indicar ao utilizador exatamente qual ou quais os motivos do erro, no caso
de este existir, relacionados com o processo de configuração do ambiente de
desenvolvimento ou deployment. A identificação dos erros foi feita com base na análise do
comportamento da API Pro/Web.Link.
O módulo JavaScript contém as seguintes funções que são comuns a todas as aplicações:
pfcCreate(className), para permitir a criação de um objeto da API Pro/Web.Link à exceção
dos objetos das classes relacionadas com o Pro/ENGINEER que não podem ser instanciados
[PTC, 2006b]; e a função pfcCreateSession() para obter a sessão do Pro/ENGINEER.
81
5 Integração Intranet – Pro/ENGINEER Wildfire 3.0 via Pro/Web.Link
A seguinte figura apresenta de uma forma resumida as acções executadas pelo módulo
JavaScript:
Apesar da figura anterior referir que o módulo apresenta as mensagens de erro, na verdade
este somente as armazena, ficando a apresentação das mensagens de erro ao cargo do
programador através da criação de uma função. O módulo JavaScript não permite a execução
82
5.5 Método de Trabalho Proposto
de aplicações na versão UNIX do Pro/ENGINEER uma vez que não faz parte do contexto desta
dissertação, havendo unicamente preocupação com a plataforma Windows.
Para saber mais detalhes sobre as funções e mensagens de erro do módulo JavaScript
consulte a secção Apêndice D.
Para implementar uma aplicação com a API Pro/Web.Link propõe-se o seguinte método de
trabalho:
83
5 Integração Intranet – Pro/ENGINEER Wildfire 3.0 via Pro/Web.Link
<html>
<head>
<script type="text/javascript" src="moduloJavaScript.js"</script>
<script type="text/javascript" src="minhaAplicacao.js"></script>
</head>
<body onload= "if(pfcCreateSession()){funcaoPrincipal()} else
tratamentoErros()">
</body>
</html>
Código 5 - Exemplo do código do ficheiro aplicacao.html
Embora no caso do código acima, a aplicação principal esteja a ser invocada assim que a
aplicação é carregada, isso não é imperativo pois pode ser necessário utilizar os métodos da
API Pro/Web.Link apenas quando o utilizador selecionar, por exemplo, algum botão.
84
5.5 Método de Trabalho Proposto
identifica, por exemplo, qual o tipo de classe da classe pfcModel. Após este estudo é mais fácil
identificar que a classe pfcModel é um tipo de classe Pro/ENGINEER – related e como tal não
pode ser instanciada. Esta etapa pode ser realizada antes da etapa 2.
function funcaoPrincipal()
{
var session = pfcCreateSesion();
if(session)
Continua a executar..
else
tratamentoErros()
}
function tratamentoErros()
{
alert(msg); //apresenta a mensagem de erro;
}
Código 6 – Exemplo do código do ficheiro minhaAplicacao.js
O tratamento dos erros dos métodos e propriedades da API Pro/Web.Link fica ao critério do
utilizador.
6. Deployment da aplicação
Esta etapa encontra-se descrita no apêndice C.
85
5 Integração Intranet – Pro/ENGINEER Wildfire 3.0 via Pro/Web.Link
Após a escolha da API Pro/Web.Link, foram adicionados alguns requisitos não funcionais ao
enunciado do ProPEditor e ProCatalog, nomeadamente:
86
5.6 Aplicações Desenvolvidas
A análise efetuada a cada uma destas aplicações reflete essas especificações, identificando e
descrevendo os casos de uso, isto é, os cenários de interação das aplicações com o utilizador.
As análises podem ser consultadas no Apêndice E e Apêndice F. Para compreender o processo
de funcionamento das aplicações, foi fundamental assimilar a teoria envolvida em torno do
Pro/ENGINEER e do Windchill. Após esse trabalho foi mais fácil encontrar as funções da API
Pro/Web.Link, através da sua API Wizard, necessárias para implementar as funcionalidades
requeridas
Sistema operativo
Microsoft Windows XP Professional x64 Edition
Web server
Servidor Apache com suporte PHP
IDE
Netbeans IDE
Bibliotecas
87
5 Integração Intranet – Pro/ENGINEER Wildfire 3.0 via Pro/Web.Link
Linguagens de programação
PHP: Esta linguagem foi usada para a integração das páginas ProPEditor e ProCatalog
na intranet da unidade AMT através da utilização da classe de domínio CMain (ver
secção 2.3 Framework da SynergyNet), e para o desenho da interface gráfica
utilizando as classes CForm e CTable para a construção de formulários e tabelas. Esta
também foi utilizada para interagir com a base de dados do SQL Server 2005.
HTML: Este pode ser gerado pelo PHP. Para o desenho da interface da aplicação
MassProp é utilizado o HTML, não se recorrendo a classes da SynergyNet visto que
não é necessário utilizar sistema de login e que a tabela pode ser mais simples que a
construída pela classe CTable.
JavaScript: Para utilizar os atributos e métodos da API Pro/Web.Link.
AJAX (Assynchronous JavaScript and XML): Para realizar pedidos assíncronos ao
servidor PHP após o código JavaScript ter sido interpretado no lado do cliente e para
permitir a atualização de um determinado conteúdo sem ter de recarregar toda a
página. Somente as aplicações ProPEditor e ProCatalog utilizam esta tecnologia.
5.6.2 Arquitetura
Quando um utilizador pretende visualizar o ProPEditor ou ProCatalog num browser, este faz
um pedido ao servidor Web (Apache) para retornar a aplicação que este está a guardar. Nesta
intranet, o servidor Web suporta PHP e interpreta o código PHP da aplicação. Quando é
efetuado algum pedido à base de dados, o servidor Web envia o pedido ao servidor de
aplicação e este por sua vez redireciona-o ao servidor de base de dados que o traduz e
retorna o resultado. O servidor aplicacional transmite o resultado ao servidor Web em
formato HTML. A página contém código PHP e JavaScript, pelo que o servidor Web envia para
o cliente a página formatada em HTML, gerado a partir do PHP, e JavaScript.
88
5.6 Aplicações Desenvolvidas
No caso da aplicação MassProp, o servidor Web não necessita de interpretar o código, uma
vez que esta é escrita em HTML e JavaScript, nem de enviar qualquer pedido ao servidor de
bases de dados, retornando de imediato a página assim que a aplicação MassProp é invocada.
89
5 Integração Intranet – Pro/ENGINEER Wildfire 3.0 via Pro/Web.Link
Para não complicar a interpretação da Figura 35, esta apresenta de uma forma muito genérica
a interação entre as aplicações Web e o Pro/E através da API Pro/Web.Link. Para visualizar a
arquitetura mais correta consulte a secção deste capítulo.
Nas aplicações ProPEditor e Procatalog são feitos pedidos AJAX para efetuar novos pedidos ao
servidor PHP após a interação com o Pro/E. Por exemplo, na aplicação ProPEditor, após esta
verificar se os modelos estão checked out, através de uma funcionalidade da Pro/Web.Link,
pretende-se solicitar um novo pedido ao servidor PHP para sugerir os valores para os
parâmetros e isso é possível através de um pedido assíncrono usando o AJAX.
5.7 Sumário
Neste capítulo completou-se o objetivo Estudo da API Selecionada, sendo fornecidos dois
contributos.
Objetivo
Estudo da API Selecionada: Após o estudo dos tipos de classes da API Pro/Web e de
outros conceitos apresentados no capítulo 4, foi realizado um estudo à API
Pro/Web.Link na perspetiva de integrar uma aplicação Web com o Pro/ENGINEER e de
perceber como funciona essa integração. Este estudo permitiu não só identificar os
passos necessários para configurar o processo de desenvolvimento/execução de uma
aplicação e para distribuir uma aplicação pelos utilizadores, como também
compreender um pouco mais sobre o processo de interação entre uma aplicação Web
e o Pro/ENGINEER Wildfire 3.0. Para além disso foi possível melhorar o módulo
JavaScript da PTC, que contém as funções comuns a qualquer aplicação Web
desenvolvida com a API Pro/Web.Link, no que diz respeito à apresentação das
mensagens de erro, permitindo que o programador identifique facilmente um erro no
caso de este existir e que foque essencialmente nos métodos específicos da aplicação.
Neste capítulo também foram identificados alguns componentes que envolvem o
processo de interação entre uma página Web e o Pro/ENGINEER Wildfire 3.0.
90
5.7 Sumário
Contributo
91
5 Integração Intranet – Pro/ENGINEER Wildfire 3.0 via Pro/Web.Link
92
6 ProPEditor
Este capítulo encontra-se dividido em cinco secções. A primeira secção 6.1 Contextualização
introduz a importância da necessidade da aplicação ProPEditor, explicando alguns conceitos
relacionados com o processo de edição da legenda de um desenho efetuado na Efacec. A
segunda secção 6.2 Modelação do Novo Sistema apresenta o formato casual e completo do
caso de uso Editar Legenda da aplicação ProPEditor. A terceira secção 6.3 Aplicação Final
apresenta a aplicação ProPEditor final, sendo identificadas algumas das suas funcionalidades.
A quarta secção 6.4 Vantagens descreve as vantagens atingidas com o ProPEditor. A quinta
secção 6.5 Sumário identifica quais os objetivos atingidos e contributos fornecidos com as
tarefas descritas neste capítulo.
6.1 Contextualização
O ProPEditor, software para edição de parâmetros no Pro/ENGINEER surgiu de uma ideia que
o colaborador Rui Marinho expôs no Colombo. Tem como objetivo principal agilizar a tarefa
de preenchimento da legenda dos desenhos proporcionando vários automatismos.
93
6 ProPEditor
modelos são apresentados na model tree do Pro/E. É uma regra interna da empresa que um
desenho deve representar somente um modelo, isto é, deve ter um único modelo associado,
e possuir o mesmo nome desse modelo. Se um desenho projetar um modelo nomeado
EMT294354.prt, o desenho deve ter o nome EMT294354.drw. Em algumas situações é
essencial fugir à regra e adicionar vistas de outros modelos, que podem estar relacionados
com o modelo/desenho em causa, para melhor clarificar o desenho, pelo que podem estar
associados outros modelos ao desenho.
Na Efacec, todos os modelos são criados a partir de templates, e esses templates têm os
parâmetros, ou legenda no caso dos desenhos, definidos.
Cada modelo pode ter um conjunto de parâmetros que servem para manter alguma
informação acerca deles: o parâmetro MATERIAL, que especifica qual o material que o
constitui; o parâmetro PROJETISTA, que identifica quem o projetou; entre outros. O Pro/E
aceita parâmetros dos tipos integer (números inteiros), string (sequência de caracteres), real
number (constituído por parte inteira e parte fracionária – exemplo: 3.1714) e boolean (true
ou false). Se houver integração do Pro/E com o Windchill, os parâmetros do modelo devem
ter um visto na opção designate para quando o modelo for guardado no Windchill (através da
operação upload ou check-in), o Windchill consiga reconhecê-los e atualizar os seus valores
nos atributos respetivos [PTC, 2007b] para mais tarde apresentar ao utilizador a partir do
commonspace ou workspace do Windchill PDMLink (Figura 25).
94
6.1 Contextualização
A opção designate é importante pois permite a visualização dos valores dos parâmetros
devidamente atualizados no Windchill, sem ser necessário abrir o modelo.
Um modelo do tipo part ou assembly pode ser um genérico ou uma instância. Enquanto uma
instância tem obrigatoriamente um modelo genérico associado, um modelo genérico nem
sempre tem instâncias associadas. Quando se abre uma instância no Pro/E é garantido que o
seu genérico está em sessão, o mesmo não acontece quando se abre um modelo genérico
pois não é garantido que as suas instâncias estejam em sessão. Pode-se dizer que um modelo
genérico é o modelo original, o modelo pai, e a partir deste podem criar-se novos modelos
similares (instâncias) na family table.
Desta forma, o Pro/E introduz o conceito de family table, uma tabela que pertence a um
determinado modelo genérico e que apresenta uma listagem de todas as instâncias criadas a
partir dele. Quando as instâncias são criadas estas herdam automaticamente todos os valores
dos parâmetros do genérico. Se o utilizador pretender que as instâncias possuam valores
diferentes para estes parâmetros, tem de adicioná-los à family table. Não é possível adicionar
à family table outros parâmetros que não estejam no genérico.
Generic-Driven: Não faz parte da family table, tendo o mesmo valor quer no genérico
quer na instância. Como a modificação do valor deste parâmetro afeta o genérico e as
95
6 ProPEditor
Após a criação das instâncias, estas devem ser validadas através da opção Verify do menu
Tools da janela da Family Table (Figura 38) do Pro/E. Esta validação permite que o Pro/E
verifique se estas instâncias são regeneradas com sucesso. Se todas as instâncias são
verificadas com sucesso, o utilizador está apto para gravá-las no workspace do Windchill ou
96
6.1 Contextualização
noutro local caso não haja ligação com o Windchill. Se esta verificação correr mal, então é
fundamental corrigir a instância em questão.
Em suma, através da criação de uma family table, o Pro/E permite poupar tempo e criar vários
modelos semelhantes a partir de uma única modelação e através da variação de alguns itens.
Estes itens são os parâmetros (dimensões, material, entre outros.) que, geralmente,
diferenciam as instâncias do seu genérico.
Os desenhos podem ter mais do que uma página e são constituídos por uma legenda
estandardizada definida pela Efacec. Esta legenda deve estar localizada no canto inferior
direito da folha do desenho e pode estar repetida pelas várias páginas.
Todo o texto da legenda da Efacec está representado por um único objeto a que o Pro/E
designa por símbolo e pode ser movido como uma única entidade. Os símbolos podem conter
elementos gráficos (linhas, arcos, etc.), elementos textuais variáveis e, uma vez que podem
ter notas associadas, elementos textuais estáticos [Lewis C., 2008].
97
6 ProPEditor
Na Figura 40, o texto “Projected by Projectado por” é estático, e “C.Pinheiro” é texto variável.
O Pro/E designa os textos estáticos de notas e estas têm apenas carácter informativo. Os
textos variáveis são característicos dos símbolos e correspondem a campos que o utilizador
pode editar e que podem estar relacionados com parâmetros do modelo (part ou assembly –
genérico ou instância) que o desenho está a projetar.
Para associar um símbolo ao desenho este tem de estar definido. O símbolo utilizado nos
desenhos da Efacec foi definido com o nome TEXTO-LEGENDA. Neste símbolo são
identificados os nomes dos campos da legenda a editar (Variable Text), e definidas algumas
das suas características tais como a altura, etc. O nome de cada campo tem de ser inserido
com uma barra ao início e outra no final (exemplo: \nome\). Após a definição do símbolo este
é adicionado manualmente à galeria de símbolos dos desenhos e posteriormente é necessário
atribuí-lo ao desenho indicando qual o nome do símbolo e outras características tais como a
cor da legenda, os valores dos campos, etc. No momento em que o símbolo é associado ao
desenho, o Pro/E cria uma instância desse símbolo. Neste caso se o desenho tiver duas
páginas e cada página apresentar uma legenda da Efacec significa que cada página contém
uma instância diferente do símbolo TEXTO-LEGENDA.
98
6.1 Contextualização
momento. Os utilizadores não têm de se preocupar com esta questão porque os desenhos são
criados a partir de templates e quando associam um modelo ao desenho este cria
automaticamente o símbolo e as notas que constituem a legenda, definindo automaticamente
os campos de texto variáveis e a sua relação com os parâmetros. De seguida, o Pro/E retorna
os valores desses parâmetros para os campos da legenda do desenho.
O Pro/E possibilita que o preenchimento da legenda seja feito diretamente no desenho, onde
o utilizador seleciona o campo que pretende alterar e modifica o seu valor. Contudo, no caso
dos campos que estão associados a parâmetros, o utilizador pode também selecionar o
modelo representado pelo desenho e alterar os parâmetros em questão através da janela de
parâmetros do Pro/E (Figura 36).
Esta opção de edição dos parâmetros possibilita a apresentação de listas de valores pré-
definidos para determinados parâmetros através da criação de ficheiros de texto com a
especificação desses mesmos valores. Contudo, para cada uma destas listas não é possível
apresentar valores provindos de outras aplicações ou fontes (ex: bases de dados) ou sugerir o
valor mais correto, como por exemplo sugerir qual o utilizador que está a editar a legenda, e
em algumas situações os preenchimentos de alguns campos tornam-se um pouco repetitivos,
pelo que houve necessidade de um mecanismo de sugestão de valores. Com esta necessidade,
surge a ideia de desenvolver o ProPEditor, uma aplicação que tem como principais objetivos
permitir o preenchimento automático de alguns campos da legenda e apresentar listas
dinâmicas com base em informação armazenada em bases de dados.
Dentro da empresa, alguns colaboradores são responsáveis pela aprovação dos objetos
criados pelos projetistas/desenhadores, pelo que cada projetista está associado a um
aprovador. Essa informação está definida no Profiler, uma aplicação programada pelo
departamento de Sistemas de Informação da AMT que detém os perfis dos utilizadores da
unidade AMT.
Outro dos campos da legenda diz respeito ao código da change notice (boletim ou número de
modificação). Este campo está associado ao parâmetro NUM_MOD. O conceito de change
notice surgiu com o Visualizer, que tal como o Profiler também é uma aplicação desenvolvida
dentro da AMT. O Visualizer agrupa funcionalidades relacionadas com a documentação do
produto, maioritariamente desenhos, permitindo a visualização de desenhos que sejam
protótipos ou estejam acabados, como também a gestão das change notices por parte dos
99
6 ProPEditor
utilizadores. As change notices agregam as modificações feitas aos objetos. Estas possuem um
código de identificação e relacionam-se com um determinado produto, estando ligadas a uma
categoria (Redução de custos, problemas de design, melhoria do produto, etc.) e a uma
revisão do objeto. Estas change notices possuem diferentes prioridades (baixa, média, alta, de
emergência) e podem estar no estado “em uso”, “arquivado” ou “removido”. Para o utilizador
preencher o campo da change notice que está associada à revisão do objeto que está a editar
tem de ir ao Visualizer e criar essa change notice.
Desta forma, para além dos campos relatados no enunciado do ProPEditor, foi preciso
acrescentar os seguintes campos: SUB-TIT.1 (subtítulo 1), DT.DES (data do desenho), MAT1.
(material 1), PROT1. (proteção 1), UTIL.1 (utilização 1), UTIL.2 (utilização 2), UTIL.3 (utilização
3), P.FIN (artigo), PMG (desenho similar) e PMG1 (desenho similar 2).
Esta atualização trouxe bastantes benefícios pois com a primeira versão da aplicação os
utilizadores tinham de fazer dois esforços para conseguir editar a legenda de um desenho:
preencher a legenda no formulário e preencher os restantes campos diretamente no desenho.
Com a nova aplicação o utilizador pode editar toda a legenda através do formulário de uma
forma mais simples, rápida e apelativa, com a vantagem de ter alguns campos preenchidos, o
que diminuí o tempo de realização desta tarefa. Apesar de esta atualização ter surgido numa
fase tardia do processo de desenvolvimento do ProPEditor, esta é considerada nesta
modelação.
100
6.2 Modelação do Novo Sistema
O ator deste caso de uso é o utilizador que interage com o programa Pro/E.
Formato Casual
A aplicação apresenta ao utilizador um formulário com o nome e valor atual dos campos a
editar e, nos casos aplicáveis, a lista de valores que o respetivo campo pode assumir. A
aplicação verifica se o desenho ou o modelo genérico ou as instâncias associadas ao genérico
estão no Windchill e em caso afirmativo verifica se estão checked out. Caso algum destes
modelos não esteja checked out, a aplicação não sugere valores para os parâmetros e não
permite que o utilizador edite a legenda do desenho, bloqueando o formulário. Nas restantes
situações, a aplicação sugere sempre o valor para o parâmetro NUM_MOD e determina se o
objeto é novo. Se o objeto for novo, a aplicação sugere valores para os restantes parâmetros.
O utilizador edita os campos e no fim confirma a sua alteração. A aplicação efetua novamente
as validações do Windchill e, caso haja permissão, atualiza os valores dos campos que não
101
6 ProPEditor
estão associados a parâmetros e no caso dos campos que estão associados a parâmetros
verifica se esses parâmetros estão no modelo. Caso não estejam, estes são criados com o
valor inserido pelo utilizador; caso estejam, a aplicação verifica se estes foram alterados e se
sim então este atualiza os seus valores.
102
6.3 Aplicação Final
Nesta aplicação, o parâmetro Descrição Local pode ser traduzido para inglês, espanhol ou
português. Para traduzir é necessário selecionar a língua deste parâmetro (pt, en ou es) e do
resultado da tradução (pt, en ou es). O resultado da tradução é apresentado pelo parâmetro
Descrição. Esta funcionalidade foi implementada com a API Translate7 da Google.
Quando a aplicação sugere valores para os parâmetros, esta sugestão é feita da seguinte
forma:
Após a modificação e seleção do botão ok, o ProPEditor pode apresentar os seguintes avisos:
Sucesso: A aplicação coloca com fundo verde os campos que foram modificados com
sucesso e, na ausência de erros, apresenta uma mensagem de sucesso. Nesta altura o
utilizador pode salvar o seu desenho recorrendo ao menu do Pro/ENGINEER.
Como se pode verificar na figura anterior (Figura 45), o utilizador alterou com sucesso o
campo Nível Qualidade e isso reflete-se na legenda do desenho.
7
Google Translate API: https://developers.google.com/translate/?hl=pt-PT
103
6 ProPEditor
Insucesso: Se pelo menos um valor de um campo não for modificado com sucesso, a
aplicação coloca-o com fundo a vermelho e avisa o utilizador através de uma
mensagem com o erro: “o(s) modelo(s) x não está(ão) checked out”; “o(s) campo(s)
não aceita(m) valores desse tipo”; “ de momento o Pro/E não conseguiu modificar o
valor do(s) campo(s)”.
A qualquer momento o utilizador pode reiniciar a aplicação através da seleção do botão reset.
Esta é uma funcionalidade que o próprio Pro/E disponibiliza aquando da edição dos
parâmetros e funciona se o utilizador não validar as alterações através do botão “ok”.
6.4 Vantagens
Os principais benefícios do ProPEditor são:
104
6.5 Sumário
O ProPEditor foi disponibilizado aos colaboradores em Abril de 2011, tendo sido alvo de
notícia no boletim informativo (newsletter) da Efacec AMT desse mês. Esta newsletter pode
ser consultada na secção Anexo 3.
O ProPEditor permite um ganho superior a 1500 € por ano considerando que são preenchidas
anualmente 7.500 legendas e que o ganho é de um minuto por cada legenda. Desta forma
ganham-se 7.500 minutos de trabalho que correspondem a 125 horas. Se o valor da mão-de-
obra for 12€ à hora serão poupados 1500€.
6.5 Sumário
Neste capítulo foi alcançado o objetivo Implementar Aplicação ProPEditor, sendo fornecidos
três contributos.
Objetivo
Contributos
105
6 ProPEditor
106
7 ProCatalog
Este capítulo encontra-se dividido em cinco secções. A primeira secção 7.1 Contextualização
introduz a importância da necessidade da aplicação ProCatalog, explicando alguns conceitos
relacionados com o processo de incorporação de um acessório num assembly do Pro/E
efetuado na Efacec. A segunda secção 7.2 Modelação do Novo Sistema apresenta o formato
casual e completo do caso de uso Adicionar Artigo da aplicação ProCatalog. A terceira secção
7.3 Aplicação Final apresenta a aplicação ProCatalog final, sendo identificadas as suas
funcionalidades. A quarta secção 7.4 Vantagens descreve as vantagens atingidas com o
ProCatalog. A quinta secção 7.5 Sumário identifica quais os objetivos atingidos e contributos
fornecidos com as tarefas descritas neste capítulo.
7.1 Contextualização
No âmbito do programa “Piloto Colombo Efacec”, o colaborador Rui Marinho sugeriu a
implementação de uma aplicação para integrar com o Pro/E: um catálogo Web com alguns
acessórios de fixação (porcas, parafusos, rebites, anilhas, cavilhas, golpilhas, circlips e freios)
que possam ser consultados e incorporados nos modelos de CAD. Embora os artigos
107
7 ProCatalog
pretendidos sejam os acessórios de fixação, a aplicação tem de estar preparada para suportar
outro tipo de artigos.
O ProCatalog deve apresentar a informação dos acessórios que está armazenada na base de
dados do GlobalArt. Contudo, a informação do GlobalArt não estava adequadamente
estruturada para responder aos requisitos desta aplicação, uma vez que não possuía as
características globais de cada acessório, e por isso foi necessário definir características e
identificar os valores dessas características para cada um dos acessórios para migrá-los para o
GlobalArt.
108
7.1 Contextualização
No exemplo da figura acima (Figura 47), o modelo “33107228-02.PRT” foi o novo modelo
adicionado temporariamente à model tree como o último da sequência dos modelos.
O Pro/E apresenta uma caixa de diálogo para que este defina quais as restrições (juntar,
alinhar) entre o novo modelo adicionado e os restantes componentes. Estas restrições
permitem a montagem dos componentes através do estabelecimento das relações entre os
vários componentes e das suas posições.
109
7 ProCatalog
O ator deste caso de uso é o utilizador que interage com o programa Pro/E.
Formato Casual
110
7.3 Aplicação Final
Após o login na sessão da intranet, é apresentada esta página com seis classes cujo código e
nome são: 120112 – freios; 120113 – Rodas, Rol., Veio, Cavilhas; 121102 – Anilhas e Placas
Oblíquas; 121110 – Parafusos; 121112 – Porcas; e 121114 – Rebites. A aplicação tem
flexibilidade para considerar mais ou menos classes consoante a necessidade dos utilizadores.
111
7 ProCatalog
Ao clicar numa das normas é apresentada uma página com as características globais da classe
e com os seus valores, e é mostrada uma listagem dos artigos dessa norma. Se um código de
artigo estiver em várias companhias, a aplicação apresenta somente o artigo relacionado com
uma das companhias, dando sempre prioridade à companhia ativa da sessão da intranet, não
sendo apresentados artigos repetidos. Por questões de desempenho são listados apenas os
primeiros 100 resultados.
112
7.3 Aplicação Final
Os valores das características são apresentados sob a forma de uma lista de seleção, cuja
função é filtrar a lista de artigos. Cada lista de seleção pertence a uma característica global e
esta é apresentada ao utilizador se pelo menos um artigo daquela classe e norma possuir
valores para essa característica. Neste exemplo, as características diâmetro exterior,
espessura, classe qualidade acessório são filtros ocultados, o que significa que não há artigos
com valores preenchidos para estas características. A característica pela qual a classe é
agrupada (neste caso, a norma) nunca aparece uma vez que todos os artigos possuem o
mesmo valor para essa característica e como tal não há vantagem em utilizá-la como filtro.
Segundo o exemplo abaixo, todos os artigos pertencem à norma DIN 6798.
113
7 ProCatalog
7.3.4 Funcionalidades
114
7.3 Aplicação Final
A imagem do artigo pode ser visualizada através da colocação do cursor do rato sobre o artigo.
115
7 ProCatalog
O texto de compra pode ser lido através da colocação do cursor do rato sobre o ícone .
Nota: Quando as normas não possuem informação adicional, o ícone não é apresentado
ao utilizador.
116
7.3 Aplicação Final
O artigo pode não ser atualmente utilizado e o utilizador tem acesso a essa informação na
coluna “!”. Se o artigo estiver obsoleto aparece o ícone . Através da colocação do cursor
do rato sobre esse ícone a aplicação apresenta a mensagem “obsoleto”.
117
7 ProCatalog
Um artigo pode ter mais do que um objeto associado. Quando o objeto está no estado
Nota: O utilizador tem de ter um modelo do tipo assembly ativo na sessão do Pro/ENGINEER.
118
7.3 Aplicação Final
A qualquer momento o utilizador pode utilizar a pesquisa global que é feita pelo código de
artigo, descrição do artigo e valores das características globais do artigo. A pesquisa é feita
em todas as classes de artigo, independentemente se estas são ou não apresentadas pela
página principal do catálogo.
119
7 ProCatalog
Neste exemplo o utilizador inseriu a pesquisa “din 471” e a função de pesquisa separa as duas
palavras “din” e “471” e procura-as individualmente, verificando se alguma destas palavras
está contida num código de artigo, descrição de artigo ou nos valores das características
globais do artigo, não sendo necessário haver uma correspondência exatamente igual. Aqui
também não são listados artigos repetidos, utilizando-se o mesmo critério anterior: se um
código de artigo estiver em várias companhias, é apresentado o artigo que está relacionado
com uma das companhias, dando-se sempre prioridade à companhia ativa da sessão da
intranet. Também por questões de desempenho são listados unicamente os primeiros 100
resultados.
7.4 Vantagens
As principais vantagens do ProCatalog são:
120
7.5 Sumário
O ProCatalog foi disponibilizado aos colaboradores em Julho de 2011, tendo sido alvo de
notícia no boletim informativo (newsletter) da Efacec AMT desse mês. Esta newsletter pode
ser consultada na secção Anexo 4.
7.5 Sumário
Neste capítulo foi alcançado o objetivo Implementar Aplicação ProCatalog, sendo fornecidos
três contributos.
Objetivo
Contributos
121
7 ProCatalog
122
8 MassProp
Este capítulo encontra-se dividido em três secções. A primeira secção 8.1 Contextualização
introduz a importância da necessidade da aplicação ProPMass, explicando alguns conceitos
relacionados com o processo de registo das propriedades de massa efetuado na Efacec. A
segunda secção 8.2 Aplicação Final apresenta a aplicação ProPMass final. A terceira secção
8.3 Sumário identifica as tarefas realizadas e os contributos fornecidos com as tarefas
descritas neste capítulo.
8.1 Contextualização
Com esta aplicação pretende-se obter de uma forma mais rápida algumas propriedades de
massa (massa, volume, densidade e área) e outros dados dos componentes de um
determinado produto (assembly) para facilitar a tarefa dos engenheiros no registo destes
dados numa folha de cálculo do Excel.
Devido à simplicidade desta aplicação e uma vez que a sua implementação não fazia parte dos
objetivos, esta não foi modelada.
Os produtos da Efacec têm um ciclo de vida longo (20 anos ou mais) e por esta razão alguns
modelos foram criados há 15 anos atrás em versões mais antigas do Pro/E e com outras regras.
Nessa altura não havia a necessidade de ter a informação da massa e da área na legenda do
123
8 MassProp
desenho e o modelo não tinha material definido. Há cerca de 6 anos atrás, foi decidido que
essa informação era muito importante e o Pro/E foi configurado para a mostrar sempre que
era criado um modelo novo e os designers foram informados para que sempre que criassem
uma revisão de um modelo adicionassem essa informação. Os modelos são revistos se
tiverem um erro ou se for necessário alterá-lo para o adequar a um novo produto, o que faz
com que muitos modelos ainda não possuam a informação da massa dos materiais.
Com a inclusão de normas ambientais nos cadernos de encargos, muitos clientes solicitam
informação sobre o ciclo de vida do produto em termos ambientais. Para fornecer esta
informação é preciso obter uma listagem dos diferentes tipos de materiais que constituem o
produto (aço, cobre, plástico) com as respetivas quantidades (massa em kg), multiplicar essas
quantidades por um fator normalizado, em função do material, e assim obter o ciclo de vida.
Um produto corresponde a um modelo do tipo assembly e este pode ser constituído por
vários modelos do tipo part ou assembly. Aos modelos que constituem um assembly o Pro/E
designa-os por componentes. Quando o assembly é aberto na sessão todos os seus modelos
são carregados para a sessão, não ficando visíveis ao utilizador. Os componentes são
considerados tipos de features e as features podem estar em sete estados. Nesta aplicação
apenas serão listados os componentes que estão no estado ativo (feature normal), inativo
(feature não suprimida e que não está em uso por outra razão) e não regenerado (feature
ativa e que teve um erro de regeneração) [PTC, 2006d].
O trabalho dos engenheiros passa por obter de forma manual através do Pro/E toda a
informação necessária sobre os vários modelos que constituem o produto e por registá-la
numa folha de cálculo do Excel para facilitar o eventual trabalho de correção dos dados e
conseguir dar resposta aos clientes dizendo qual o ciclo de vida dos produtos.
Como foi evidenciado, muitos objetos não possuem a informação requerida e passar por
todos os modelos associados a um assembly é muito custoso. Por esta razão, com o objetivo
de obter a informação necessária de forma mais rápida e sem ter que alterar os objetos, foi
necessário criar uma aplicação para apresentar toda esta informação para que os engenheiros
possam copiá-la diretamente para uma folha de cálculo do Excel.
124
8.2 Aplicação Final
Os dados a apresentar por esta aplicação são o nome, a versão e descrição do modelo, o
material (indicação da norma.), a sua dimensão (espessura em milímetros cúbicos), o tipo de
material (aço, cobre ou outros), o artigo a que o modelo está relacionado, a massa
(quilograma), a área (milímetros quadrados), o volume (milímetros cúbicos), a densidade
(quilogramas por milímetro cúbico) e as unidades da densidade dos modelos uma vez que
estas podem não estar corretas. Caso algum modelo não possua uma massa válida, o
utilizador pode corrigir a densidade em função do material e assim obter a massa correta dos
objetos que ainda não tenham sido atualizados. O cálculo da massa é: densidade X volume.
Estas tarefas requerem muita atenção por parte dos engenheiros pois os dados podem não
estar bem.
125
8 MassProp
Deste modo são listados todos os componentes (part e assembly) do modelo assembly ativo
na sessão do Pro/E e todos os dados necessários. Após esta listagem, o utilizador pode copiá-
los diretamente para um documento Excel e verificar se estes cálculos estão corretos.
126
8.3 Sumário
8.3 Sumário
Neste capítulo foi realizada a tarefa Implementar Aplicação ProPMass, sendo fornecido um
contributo.
Tarefa
Contributo
127
8 MassProp
128
9 Conclusões
O estágio tinha como objetivos principais: selecionar e estudar uma das APIs do
Pro/ENGINEER Wildfire 3.0, o software de CAD desenvolvido pela PTC e utilizado pelas
equipas dos departamentos de Engenharia de Produto, Engenharia Industrial, e de I&D
(Inovação e Desenvolvimento) da Efacec, existentes em Portugal, Argentina e Índia; e
implementar as aplicações Web ProPEditor e ProCatalog com a API selecionada para
integrar a intranet da unidade AMT (SynergyNet) com o Pro/ENGINEER Wildfire 3.0. Estas
aplicações foram sugeridas pelo projetista do departamento de Inovação e Desenvolvimento
da Efacec Rui Marinho no contexto do programa Colombo, um programa da Efacec que
estimula os seus colaboradores a expôr as suas próprias ideias para ajudar a melhorar os
métodos de trabalho praticados na empresa e consequentemente a sua produtividade.
A aplicação ProPEditor consiste num formulário Web para automatizar a edição da legenda de
um desenho do Pro/E e a aplicação ProCatalog consiste num catálogo Web para facilitar a
incorporação de um acessório de fixação (parafuso, porca) num modelo assembly do Pro/E.
Este catálogo deve apresentar os acessórios de fixação que estão registados no GlobalArt,
uma plataforma de gestão de artigos desenvolvido na Efacec, e possibilitar o agrupamento e a
filtragem dos acessórios de fixação por determinadas características globais (norma, diâmetro,
etc.).
129
9 Conclusões
Para a implementação das aplicações ProPEditor e ProCatalog foi necessário cumprir dois
objetivos adicionais: organizar os dados dos acessórios de fixação no GlobalArt para
responder aos requisitos da aplicação ProCatalog uma vez que o GlobalArt não identificava as
características globais dos acessórios de fixação, sendo necessário defini-las e organizar os
dados dos acessórios de acordo com a nova estrutura; estudar o Framework da intranet AMT
(SynergyNet) para conseguir implementar as aplicações do programa Colombo uma vez que
era imperativo utilizar o Framework para o desenho da interface, para a ligação às bases de
dados e para implementar o mecanismo de traduções característico da intranet AMT da
Efacec, que permite visualizar as aplicações em Português, Espanhol e Inglês.
Uma das funcionalidades da aplicação ProCatalog é agrupar os acessórios de fixação por uma
determinada característica global. Sendo um dos requisitos desta aplicação obter os dados
dos acessórios de fixação a partir da aplicação Web GlobalArt, foi necessário estruturar esta
plataforma uma vez que esta não armazenava as características globais dos acessórios de
fixação. Para tal, e assentando no livro das normas da Efacec, foram definidas no GlobalArt as
características globais (ex: norma, matéria-prima, comprimento) para cada classe dos
acessórios de fixação (anilha, cavilha, golpilha, circlip, freio, parafuso, porca e rebite) e foram
identificados e migrados para esta plataforma os valores de todos os acessórios de fixação
relativamente a cada uma destas características. Os valores foram inferidos a partir dos dados
obtidos do Windchill PDMLink 9.0, um sistema que faz a gestão dos modelos do Pro/E que
130
9.1 Objetivos Cumpridos e Contributos
estão associados aos acessórios de fixação e outros artigos, uma vez que este continha uma
descrição mais completa dos acessórios. Após esta tarefa foi escrito um documento com a
classificação dos tipos de acessórios de fixação utilizados na Efacec para auxiliar os
utilizadores a classificar os acessórios no GlobalArt.
Contributos:
Estruturação dos acessórios de fixação na plataforma GlobalArt através da definição
das suas características globais;
Documento com a classificação dos acessórios de fixação para suportar os utilizadores
na criação de artigos no sistema GlobalArt.
Contributos:
Duas aplicações em PHP para integrarem a intranet da unidade AMT: uma para a
geração de portais dos vários departamentos (Produção, Informática, etc.) de cada
companhia, e outra para a edição desses portais.
131
9 Conclusões
Uma vez que a PTC disponibiliza várias APIs (Pro/Toolkit, J-Link, VB e Pro/Web) para
comunicar com o Pro/E foi necessário selecionar a mais adequada para implementar as
aplicações do programa Colombo.
A Pro/Toolkit foi descartada desde início pois comporta um elevado custo de licenciamento.
Embora a API VB esteja apenas disponível a partir da versão Wildfire 4.0, esta foi considerada
uma vez que o upgrade para essa versão não era uma barreira caso esta fosse a melhor opção.
Para compreender as restantes APIs e ao mesmo tempo auxiliar o processo de seleção
resumiu-se numa tabela as características principais das APIs J-link, VB e Pro/Web.Link, e
foram identificados quer os requisitos que a API devia cumprir com base nessa tabela, quer as
funcionalidades relacionadas com o Pro/E com base na identificação e descrição dos casos de
uso das aplicações.
Contributos:
Relatório sobre as APIs do Pro/E com informação essencial sobre as suas principais
características para suportar o processo de seleção de uma API;
Documentos com a descrição dos casos de uso das aplicações ProPEditor e ProCatalog
e com outras especificações;
Sugestão da API Pro/web.Link para o desenvolvimento das aplicações ProPEditor e
ProCatalog.
132
9.1 Objetivos Cumpridos e Contributos
Inicialmente, este objetivo foi definido para implementar as aplicações do programa Colombo
(ProPEditor e ProCatalog) durante o estágio na Efacec com a API Pro/Web.Link, a API sugerida
pelo autor e aceite pelos membros do departamento de SI da Efacec como a mais adequada
para o desenvolvimento destas aplicações. Contudo, decidiu-se que também devia ser feito
um estudo mais aprofundado a esta API para complementar a literatura existente uma vez
que a informação existente, maioritariamente disponibilizada pela PTC, suscita várias dúvidas
aos programadores.
Durante o período de estágio foi priorizado o estudo dos tipos de classes, métodos e
propriedades necessárias para implementar as aplicações, tendo sido também melhorado o
módulo JavaScript da PTC, que contém as funções comuns a todas as aplicações Web
desenvolvidas com a API Pro/Web, através da organização do seu código e da introdução de
mensagens de erro. Esta versão melhorada do módulo JavaScript permite que o utilizador
detete e corrija facilmente um erro uma vez que lhe são apresentadas as possibilidades de
erro. Também foi feito um breve estudo ao processo de configuração do ambiente de
desenvolvimento/execução das aplicações Web desenvolvidas com a API Pro/Web.Link e à
distribuição destas pelos utilizadores pois este foi necessário para desenvolver as aplicações,
melhorar o módulo JavaScript da PTC e distribuí-las pelos seus colaboradores. Somente numa
fase posterior, fora do período de estágio, o estudo foi feito de forma mais aprofundada e
com o propósito de elaborar procedimentos para apoiar outras pessoas que pretendam
conhecer e utilizar a API Pro/Web.Link.
Após o estágio, completou-se o estudo da API Pro/Web.Link incidindo sobre: a sua arquitetura,
sendo uma API constituída por um controlador ActiveX implementado num ficheiro DLL, não
se pretendendo entrar em detalhes de como funciona a comunicação entre este e o cliente
(browser); identificação de alguns componentes envolvidos na interação entre o browser
interno e o Pro/E; os tipos de classes da API e das suas regras de utilização; a capacidade de
herança dos seus objetos; algumas noções sobre a API Wizard, uma documentação com
especificações da API Pro/Web.Link (identificação dos nomes e descrição das classes, métodos
e propriedades, etc.); os detalhes do processo de configuração do ambiente de
desenvolvimento, execução e distribuição de uma aplicação Web desenvolvida com a API
Pro/Web.Link, de forma a clarificar as regras e metodologias adequadas ao uso desta
133
9 Conclusões
ferramenta, explicando alguns conceitos inerentes a este processo tal como, por exemplo, o
porquê de ser necessário configurar as definições no browser IE instalado na máquina do
utilizador para executar scripts no browser interno do Pro/E. Isso acontece porque o browser
do Pro/E, construído com componentes do browser IE, interage com o IE do utilizador para
verificar essas definições. Também foi proposto um método de trabalho para desenvolver e
implementar aplicações com a API Pro/Web.Link com o intuito de auxiliar outros
programadores.
Contributos:
Versão melhorada do módulo JavaScript da PTC, que contém as funções comuns a
todas as aplicações que sejam desenvolvidas com a API Pro/Web.Link, no que diz
respeito à organização do código e ao tratamento de erros;
Documentação sobre a API Pro/Web.Link com a seguinte informação: arquitetura da
API; os tipos de classes que a constituem; o processo de configuração do ambiente de
desenvolvimento e o deployment de uma aplicação; o módulo JavaScript para ser
utilizado em todas as aplicações programadas com a Pro/Web.Link; identificação de
um método de trabalho adequado para desenvolver aplicações com a API
Pro/Web.Link; e outros conceitos relevantes que estão contidos nesta dissertação.
Com base na análise e descrição das acções executadas pelas aplicações ProPEditor e
ProCatalog e da respetiva interação com o utilizador, as aplicações foram programadas
recorrendo às seguintes tecnologias: Netbeans IDE; servidor Apache com suporte PHP;
Microsoft SQL Server 2003; Framework da intranet AMT da Efacec; API Pro/Web.Link; e
linguagens JavaScript, HTML, PHP, AJAX. O Framework da intranet foi utilizado para desenhar
a interface da aplicação, para efetuar a ligação às bases de dados e para permitir a tradução
da aplicação para Português, Inglês e Espanhol. A API Pro/Web.Link foi utilizada para
desenvolver todas as funcionalidades relacionadas com a comunicação entre a aplicação Web
e o Pro/ENGINEER Wildfire 3.0, tendo sido necessário configurar o ambiente de
desenvolvimento com base nas regras desta API. Após a fase de desenvolvimento foram
realizados alguns testes pelo autor e por alguns colaboradores da Efacec e obtendo uma
versão funcional da mesma esta foi para produção.
134
9.1 Objetivos Cumpridos e Contributos
Para além destas aplicações também foi desenvolvida uma pequena aplicação, MassProp, que
não fazia parte dos objetivos mas que foi requisitada pela Efacec uma vez que podia ser
desenvolvida em apenas um dia. Esta aplicação fornece as mass properties (volume, área,
massa e densidade) dos componentes de um assembly do Pro/E.
“As ferramentas desenvolvidas pela Maria João revelam muito potencial e abrem as portas a
uma nova filosofia de interface com utilizador, tendo aplicação não só no contexto do projeto
para o qual foram desenvolvidas como na produção”. – Rui Marinho, projetista do
departamento de Investigação e Desenvolvimento da unidade AMT da Efacec.
“Esta nova ferramenta desenvolvida pela Maria João permite uma maior rapidez na procura
de acessórios (anilhas, porca, etc.), bem como no preenchimento da legenda de um desenho.
Facilita muito o nosso trabalho”. – Cristina Jorge, projetista do departamento de Engenharia
do Produto da unidade AMT da Efacec.
Contributos:
O código PHP e JavaScript das aplicações ProPEditor, MassProp e ProCatalog;
Dois manuais de utilizador do ProPEditor e do ProCatalog em Português, Inglês e
Espanhol, com a identificação das vantagens, regras das aplicações e descrição das
suas funcionalidades;
Documentação técnica do ProPEditor e ProCatalog para auxiliar os programadores do
departamento de SI com a apresentação do contexto do problema, o modelo de
dados, descrição das funções criadas e dos métodos e propriedades utilizados da API
Pro/Web.Link. A esta documentação foram anexados os documentos, desenvolvidos
durante o estágio, com a descrição dos casos de uso e de outras especificações.
135
9 Conclusões
136
9.2 Avaliação dos Objetivos
137
9 Conclusões
A documentação técnica
do ProPEditor e
ProCatalog tem utilidade
para os membros do
departamento de SI da
Efacec.
138
9.3 Limitações e Trabalho Futuro
A realização do estágio curricular na Efacec foi uma experiência bastante positiva e produtiva
uma vez que forneceu as condições de trabalho necessárias para a concretização dos
objetivos propostos nesta dissertação. A colaboração da empresa e dos orientadores também
foi fulcral para o cumprimento deste projeto. Apesar de grande parte do estudo da API
Pro/Web.Link ter sido realizada após o estágio, o departamento de SI forneceu todas as
ferramentas necessárias para que fosse possível continuá-lo.
Embora o autor não possuísse conhecimentos em PHP não houve muitas dificuldades em
utilizar o Framework da intranet AMT. Não só o Framework está bem estruturado e
documentado, como a linguagem PHP é bastante acessível. Em relação ao software de CAD
Pro/ENGINEER Wildfire 3.0 e à ferramenta Windchill, existiram alguns obstáculos à
compreensão de alguns conceitos mas estes foram ultrapassados devido ao enorme apoio do
orientador Engenheiro Carlos Pinheiro. Os conhecimentos em relação à linguagem JavaScript
facilitaram bastante o desenvolvimento das aplicações Web utilizando a API Pro/Web.Link.
A tabela com o resumo das características das APIs J-Link, VB e Pro/Web.Link podia conter
outras características, contudo essas foram as características estudadas no estágio durante o
prazo estabelecido. Podia ser estudada a possibilidade de executar uma aplicação com a API J-
Link numa máquina cliente a partir de um servidor que tenha o Pro/ENGINEER. Isto seria útil,
por exemplo, para executar uma aplicação sem ser necessário ter o Pro/E instalado no
computador.
As aplicações desenvolvidas para a Efacec podem ser melhoradas, onde por exemplo a
aplicação ProCatalog pode permitir incorporar ao mesmo tempo vários acessórios de fixação e
definir automaticamente todas as restrições necessárias para que este fique montado no
produto.
139
9 Conclusões
Na opinião do autor desta dissertação, o estudo efetuado à API Pro/Web.Link foi um passo
importante para auxiliar outros utilizadores que pretendam conhecer e utilizar esta API uma
vez que agrega toda a informação que existe disponível sobre a API Pro/Web.Link, explicando
alguns detalhes, e fornece um método de trabalho de trabalho adequado para o
desenvolvimento de aplicações com esta API. Pretende-se fundamentalmente com esta
dissertação evitar ou atenuar as dificuldades que foram sentidas durante o desenvolvimento
das aplicações ProPEditor e ProCatalog através da identificação de um método de trabalho e
do fornecimento de algumas ferramentas: indicação e descrição dos passos do processo de
configuração do ambiente de desenvolvimento; fornecimento de uma versão melhorada do
módulo JavaScript da PTC. Pretende-se também que esta dissertação incentive o
desenvolvimento de aplicações no contexto do CAD, não só na Efacec, como também noutras
empresas.
140
Referências
[Alexandre L., 2011] Alexandre L., 2011. Uma Abordagem de Alto Nível para a
Verificação de Conteúdos na Web. Instituto Superior de
Engenharia do Porto. Tese de Mestrado,
http://hdl.handle.net/123456789/95 [último acesso: Out 2012]
[Asthana and Sinha, 1996] Asthana R.G.S., Sinha N.K., 1996. Computer Graphics for
Scientists and Engineers. New Delhi, India.
[Beck et al., 2001] Beck K., Beedle M., Bennekum A., Cockburn A., Cunningham
W., Fowler M., Grenning J., Highsmith J., Hunt A., Jeffries R.,
Kern J., Marick B., Martin R., Mellor S., Schwaber K., Sutherland
J., Thomas D. Manifesto for Agile Software Development:
Principles behind the Agile Manifesto,
http://agilemanifesto.org/iso/en/principles.html [último
acesso: Out 2012]
[Civa G., 2010] Civa G., PTC: Windchill em português e novo Pro/ENGINEER,
http://www.baguete.com.br/notícias/software/13/05/2010/pt
c-windchill-em-portugues-e-novo-proengineer [último acesso:
Out 2012]
[Conover S., 2005] Conover S., 2005. Making Pro/ENGINEER data accessible via
the Web: Using J-Link and Pro/Web.Link as a component of
Web applications,
http://www.datajett.com/Cadd/jl_wl_test/web_01/Pro-
E%20Community%20-%20For%20users%20of%20Pro-
ENGINEER,%20Windchill,%20and%20other%20PTC%20affiliate
d%20products%20%20Feature.htm [último acesso: Out 2012]
[Daughtry et al., 2009] Daughtry J., Farooq U., Myers B., Stylos J., 2009. API Usability:
141
Referências
[Felco Solutions, Inc., 2011] Felco Solutions, Inc., 2011. Creo Parametric Application
Programing Interface (API),
http://www.felcosolutions.com/creo_api.html [último acesso:
Out 2012]
[Kogent Learning Solutions, Inc. 2011] Kogent Learning Solutions, Inc., 2011. Pro/ENGINEER Wildfire
4.0 Essentials. Sudbury, Mass.: Jones and Bartlett Publishers.
[MSDN, 2012a] MSDN, Microsoft Developer Network, 2012. COM Clients and
Servers,
http://msdn.microsoft.com/en-
us/library/windows/desktop/ms683835%28v=vs.85%29.aspx
142
Referências
[Oliveira e Silveira, 2006] Oliveira C., Silveira P., 2006. Criação de uma Infra-Estrutura
Computacional para Visualização de Informações Ciêntíficas 3D
– Estrutura de Dados. Trabalho realizado para a obtenção do
Bacharel em Engenharia de Computação,
http://www3.iesam-
pa.edu.br/ojs/index.php/computacao/article/viewFile/86/81
[último acesso: Out 2012]
[Pinheiro C., 2011] Pinheiro C., 2011. SharePlace. Instituto Superior de Engenharia
do Porto. Relatório para a obtenção da Licenciatura em
Engenharia Informática.
143
Referências
[PTC, 2006e] PTC, 2006. Pro/ENGINEER® Wildfire™ 3.0 J-Link® User’s Guide.
[PTC, 2007a] PTC, 2007. Windchill® 9.0: Windchill® PDMLink™ User’s Guide.
[PTC, 2009b] PTC, 2009. Pro/ENGINEER® Wildfire® 4.0 VB API User’s Guide.
[PTC, 2009c] PTC, 2009. Artigo da PTC Express: Creating a Family Table
Driven Assembly UDF with Component Instances in
Pro/ENGINEER Wildfire 4.0,
http://www.imakenews.com/ptcexpress/e_article001469782.c
fm?x=bfNsQTc,b3jsqcsB,w [último acesso: Out 2012]
[PTC, 2012e] PTC, Product name updates for Pro/ENGINEER, coCreate and
ProductView, http://www.ptc.com/products/creo/product-
mappings/index.htm [último acesso: Out 2012]
[Melodie S., 2009] Melodie S., 2009. Windchill PDMLink 9.1 Quick Reference
Guide. Phoenix, Arizona: TriStar Inc.,
http://www.tristar.com/shop/qrg/Windchill_PDMLink_91_QR
G.pdf [último acesso: Out 2012]
144
Referências
[Zancul E., 2009] Zancul E., 2009. Gestão do Ciclo de Vida de Produtos: Seleção
de Sistemas PLM com base em sistemas de referência,
http://www.teses.usp.br/teses/disponiveis/18/18140/tde-
27052009-132444/en.php [último acesso: Out 2012]
145
Referências
146
Anexos
Anexo 1 - Enunciado do ProPEditor
Preenchimento de Legendas nos Desenhos Pro/E - Ideia 366
Objectivo
Criar uma aplicação Web que facilite o preenchimento da legenda dos desenhos feitos em
Pro/ENGINEER (Pro/E).
Processo
A aplicação inicia-se com o click de um ícone no Pro|E, este invoca uma página Web no
browser integrado do Pro|E. Esta página vai permitir a edição da legenda dos desenhos do
Pro|E através de um formulário sendo que alguns deles vão obedecer a listas predefinidas
obtidas de uma base de dados.
Quando a aplicação é invocada deve ler o valor dos campos do desenho activo na sessão de
Pro|E e obter os valores possíveis para os parâmetros que obedecem a listas e apresentar o
formulário ao utilizador.
147
Anexo 1 - Enunciado do ProPEditor
O formulário deve ser multilingue (PT, EN e ES) usando o mecanismo de tradução da intranet.
Requisitos funcionais
148
Anexos
Objectivo
Criar um catálogo Web que facilite a localização de artigos e, no caso do Pro/ENGINEER
(Pro/E), a incorporação destes nos modelos assembly. Este catálogo deve assentar na
plataforma GlobalArt.
Processo
À semelhança dos catálogos eletrónicos da Web, pretende-se uma aplicação que através de
uma interface gráfica permita facilmente localizar artigos em função da sua família e
características. A aplicação mostrará inicialmente uma lista de imagens em que cada uma
corresponde a uma família. Após click do utilizador sobre uma delas, serão mostrados todos
os grupos dessa família e após novo click no grupo, será apresentada uma interface com as
características dos artigos desse grupo permitindo configurar o artigo pretendido e, no caso
de a página estar a ser visualizada no browser interno do Pro/E, permitirá incorporar o artigo
clicando num botão.
149
Anexo 2 - Enunciado do ProCatalog
Requisitos Funcionais
150
Anexos
151
Anexos
152
Anexos
153
Anexos
154
Apêndices
Apêndice A - Aplicação Geração dos Portais
A aplicação de geração dos portais dos departamentos gera de forma automática os portais a
partir dos dados armazenados numa base de dados. Integrando esta aplicação na intranet da
unidade da AMT, cada utilizador pode ver os portais com a informação sempre atualizada. A
geração das páginas deve ser feita em tempo real porque a aplicação de edição dos portais
deve permitir que a informação seja modificada a qualquer altura, sendo importante que os
portais consultados reflitam todas essas alterações.
Um dos requisitos estabelecia que os portais devem ter o mesmo layout do Portal da
Produção, o único portal recentemente renovado que tinha a mesma limitação pelo facto de
não possibilitar a sua edição.
A Figura 71 apresenta o layout a ser tomado como referência e realça os elementos que a
aplicação deve estar preparada para receber e tratar.
Cada portal tem de estar preparado para criar elementos dos seguintes tipos:
a) Tab: Separador com imagem e título para definir uma nova página dentro do portal
de um departamento.
Com este campo de pesquisa, o utilizador consegue pesquisar, por exemplo, por um projeto
na aplicação IWork. Após a seleção do botão de pesquisa, o utilizador é remetido para a
página do IWork com os resultados da procura.
O título do portal não foi levado em consideração porque a SynergyNet é que se preocupa
com esse detalhe. Também ficou também definido que todos os textos dos portais devem
suportar a opção multilingue da intranet.
Esta entidade possui uma chave primária composta por três atributos: company, tmodule e
tseqn. Em conjunto, estes três atributos identificam de forma única um registo da tabela, não
havendo linhas com a mesma combinação de valores.
Os campos obrigatórios são company, tmodule, tseqn, torder, ttype, modifiedby e modifdate.
Enquanto o atributo tseqn é um número que nunca se repete, o atributo torder reinicia
sempre que tmodule muda. Todos os restantes campos podem estar ou não preenchidos
dependendo do tipo de elemento.
Uma vez que a aplicação de geração dos portais foi a primeira a ser programada e, como tal,
foi imprescindível inserir alguns dados na base de dados para testar se esta funciona
corretamente. Tendo como referência o portal da produção, foram inseridos os seguintes
dados:
Com a introdução de novos dados na base de dados, a aplicação de geração permite gerar,
por exemplo, o seguinte portal do departamento de informática:
A página principal lista os canais (departamentos) a que o utilizador da atual sessão tem
acesso. Neste caso, para testar a aplicação, havia acesso aos canais “engineer”, “is” e
“production”.
A partir deste momento, é possível visualizar, editar, apagar ou alterar a ordem dos seus
elementos. Estes estão organizados por ordem crescente do campo “ordem” e, através da
seleção das setas , é possível alterar de forma automática essa mesma ordem.
Neste caso, se a seta da linha com ordem 2 for selecionada, esta passa a ter a ordem da
linha abaixo (ordem 3) e a linha abaixo passa a ter ordem 2. Ao selecionar as setas o elemento
selecionado fica com a ordem do elemento que está acima (se a seta selecionada estiver
virada para cima) ou abaixo (se a seta selecionada estiver virada para baixo).
, que estão sempre visíveis no menu principal da aplicação, o utilizador é remetido para
a seguinte página:
Esta página permite visualizar os conteúdos de um elemento, onde o utilizador apenas tem
permissões de leitura, editar os conteúdos dos elementos e inserir novos elementos de um
departamento através do preenchimento dos vários campos. Quando se seleciona o tipo do
campo (tab, link, etc.) a aplicação mostra os campos que são necessários preencher para esse
tipo.
Apêndice B – Aplicação Edição dos Portais
Apêndice C - Configuração do Ambiente Desenvolvimento e
Deployment
1. Configuração do Ambiente de Desenvolvimento e de Execução em
Ambiente Windows
As aplicações que interagem com a API Pro/Web.Link podem ser programadas com qualquer
editor de código e não necessitam de configurações especiais.
Para executar estas aplicações Web no browser IE do Pro/E, o programador tem de cumprir
três passos:
A instalação do Pro/E não abrange o registo do controlador ActiveX da PTC e sem este, e sem
outras configurações que são descritas mais à frente, não se consegue aceder às classes da
API Pro/Web.Link.
Para registar o controlador ActiveX ou anular o seu registo é obrigatório ter privilégios de
administração porque estes processos implicam criar ou eliminar chaves dentro da chave pré-
definida “HKEY_CLASSES_ROOT” do registo do Windows para que os seus serviços fiquem
disponíveis [PTC, 2006b]. A Chave “HKEY_CLASSES_ROOT” é um atalho para a chave
“HKEY_LOCAL_MACHINE\Software\Classes”.
O registo do controlador ActiveX “pfcscom.dll” pode ser feito de dois modos :
Apêndice C – Configuração do Ambiente de Desenvolvimento e Deployment
A anulação do registo do controlador ActiveX “pfcscom.dll” tem de ser feita de forma manual
e com permissões administrativas através da inserção do seguinte comando na linha de
comandos:
Se a linha de comandos não for executada como administrador este comando provoca uma
falha na chamada à função DllUnregisterServer.
Cada versão do Pro/E (Pro/E Wildfire 3, Pro/E Wildfire 4, etc.) possui um diferente controlador
ActiveX e por isso quando diferentes versões do Pro/ENGINEER estão instaladas no mesmo
computador deve-se certificar que o Pro/E deteta o registo correspondente à sua versão antes
de inicializar. Por esta razão é aconselhável que haja unicamente um controlador ActiveX do
Pro/E registado no Windows e que antes de iniciar uma versão do Pro/E se anule
manualmente o útimo registo efetuado para que este efetue o registo do controlador mais
adequado [PTC, 2006b].
Esta opção permite ativar (on) ou desativar (off) a API Pro/Web.Link no browser embutido do
Pro/E. Para ativar esta opção coloca-se o texto “web_enable_javascript on” no ficheiro
config.pro. Se esta opção não for apresentada no ficheiro de configuração significa que esta
está desativa, sendo o seu valor por defeito. Para que o Pro/Web.Link e o Pro/E consigam
comunicar é obrigatório que esta opção esteja ativa. Após a edição do ficheiro de
Apêndice C – Configuração do Ambiente de Desenvolvimento e Deployment
configuração o utilizador deve fechar e voltar a abrir o Pro/E pois é na fase de carregamento
do Pro/E que este faz a leitura do ficheiro “config.pro”.
Ao ficheiro de configuração podem ser adicionadas outras opções disponibilizadas pelo Pro/E
que definem o seu comportamento perante diversas situações relacionadas com as
permissões das APIs, operações de modelação, com os desenhos, as cores. Embora múltiplos
ficheiros “config.pro” possam coexistir e ser colocados noutros diretórios, na fase de
desenvolvimento da aplicação opta-se por colocar o ficheiro no diretório local “<directório do
Pro/E>\text” para tornar o processo de leitura mais rápido uma vez que é o primeiro local
onde o Pro/E o procura por omissão.
O ficheiro “config.pro” pode ser editado a partir de um editor de texto ou a partir da opção
“options” do menu “tools” do Pro/E.
Caso se decida que estas definições sejam aplicadas somente à aplicação Web que vai
comunicar com o Pro/E através da API Pro/Web.Link e não a todas as aplicações da zona
internet ou intranet por razões de segurança, é necessário adicionar o endereço dessa
aplicação à zona dos “Sites fidedignos” em Ferramentas (Menu do IE)> Opções da Internet
(opção)> Segurança (separador)> Sites fidedignos> Sites (botão) e devem ser personalizados
os níveis de segurança para essa zona.
Apêndice C – Configuração do Ambiente de Desenvolvimento e Deployment
%USERPROFILE%\Application Data\PTC\ProENGINEER\Wildfire\.wf\.Settings
Para adicionar o novo URL insere-se a seguinte linha de código abaixo do código
“<bookmarks_nodes_info SOAP-ENC:Array="[X 8 ]"><bookmarks_nodes_info_ENTRY
label="Personal Favorites" pointer="TRUE" (…)”:
8
Esta variável representa o número de endereços que constituem os favoritos do Pro/E. Para adicionar um
endereço é necessário incrementar esta variável.
Apêndice C – Configuração do Ambiente de Desenvolvimento e Deployment
var msg;
var mGlob;
var session;
function pfcCreateSession()
{
mGlob = pfcCreate("MpfcCOMGlobal");
if(mGlob)
{
try{
session = mGlob.GetProESession();
return true;
}
catch(err)
{
msg = "A opção \"web_enable_javascript\" do ficheiro de
configuração do Pro/E não está ativa.";
return false;
}
}
}
Código 7 – Exemplo de extrato de código
Apêndice D – Módulo JavaScript
Esta função é responsável por verificar se a aplicação está a ser executada dentro do browser
interno do Pro/ENGINEER.
function isProEEmbeddedBrowser()
{
if(window.external && window.external.ptc)
return true;
else
return false;
}
Código 8 - Extrato de Código
Esta função é responsável por verificar se a aplicação está a ser executada no browser do IE.
function pfcIsWindows()
{
if(navigator.appName.indexOf("Microsoft")!=-1)
return true;
else
return false;
}
Código 9 - Extrato de Código
Apêndice D – Módulo JavaScript
O navigator é um objeto do JavaScript que contém informações sobre o browser. Uma das
suas propriedades é a appName, que indica o nome do browser. Se o nome do browser
contém a palavra “Microsoft” retorna o valor booleano “true”, senão retorna “false”.
Esta função é responsável pela instanciação de uma determinada classe. À exceção das classes
relacionadas com o Pro/E, todas as restantes classes podem ser instanciadas utilizando esta
função.
function pfcCreate(className)
{
if(isProEEmbeddedBrowser())
{
if(pfcIsWindows())
{
try
{
return new ActiveXObject("pfc."+className);
}
catch(err)
{
msg = "Erro! Possíveis problemas:\n 1. A opção
\"Inicializar e efetuar o script de controlos ActiveX não
assinalados como seguros para o processamento de scripts\"
não está ativa nas definições de segurança do IE;\n 2.A API
Pro/Web.Link não está registada;\n 3.A classe \""+className+
"\" não existe";
return false;
}
}
else
{
msg = "Esta aplicação não suporta o browser Mozilla do Pro/E.";
return false;
}
}
else
{
msg = "Esta aplicação só pode ser executada no browser do
Pro/E.";
return false;
}
}
Código 10 - Extrato de Código
Apêndice D – Módulo JavaScript
Dado que a API Pro/Web.Link é um controlador ActiveX, para instanciar a classe é necessário
utilizar um objeto do JavaScript que possui a seguinte sintaxe:
7a. O servidor Windchill está ativo no Pro/E e o utilizador não fez check out ao desenho,ao
modelo genérico e às instâncias:
1. A aplicação bloqueia o formulário, não permitindo a sua edição, e termina.
10a. Erro na atualização do valor de pelo menos um campo:
1. O sistema coloca com o fundo vermelho os campos que não foram modificados devido
a um erro e apresenta uma mensagem a indicar quais os erros que ocorreram durante
a modificação.
2. O sistema volta ao ponto 9 e continua a mostrar as modificações que o utilizador
efetuou.
Especificações Suplementares
Enquanto a subsecção anterior descreve os passos que constituem o percurso de execução da
aplicação ProPEditor, esta subsecção apresenta algumas especificações adicionais associadas
a cada um dos passos de forma a contribuir para uma melhor compreensão dos mesmos.
O formulário deve conter um cabeçalho com dados do objeto: nome do modelo (fornecido
pela Pro/Web.Link), a versão do modelo (fornecida pelo parâmetro “PTC_WM_VERSION” ou
pela Pro/Web.Link), e o estado do modelo (fornecido pelo parâmetro
“PTC_WM_LIFECYCLE_STATE”).
Quando os parâmetros são do tipo integer ou real number, o formulário deve permitir
unicamente a introdução de números.
Disponibilizar um botão (imagem) para a tradução de alguns campos. Neste caso é necessário
traduzir o campo “DESCRIPTION”:
Passo 7: Se o Pro/E tiver uma ligação ativa ao Windchill e se o utilizador quiser alterar no
Pro/ENGINEER os campos do desenho, este tem de fazer check out ao desenho no Windchill e,
no caso da edição dos campos que estão relacionados com parâmetros, este tem de fazer
check out ao modelo genérico (que está associado ao desenho e que tem o nome igual a este)
e às suas instâncias. Para simplificação da aplicação ProPEditor, se um servidor do Windchill
estiver ativo o utilizador tem de fazer check out ao desenho, ao modelo genérico e às suas
instâncias para conseguir editar um campo da legenda, independentemente se este é
parâmetro ou não. Esta verificação serve como reforço pois ao gravar o desenho no Windchill
o Pro/E vai solicitar ao utilizador para fazer check out aos modelos necessáriosSe o servidor do
Windchill não estiver ativo no Pro/E devido a problemas do servidor ou porque a empresa
deixou de trabalhar com o Windchill ou se os modelos não estiverem guardados no Windchill,
o ProPEditor permite que o utilizador edite a legenda do desenho e se este for gravado mais
tarde no Windchill o Pro/E certifica que o utilizador faz check out aos modelos. Se o
ProPEditor não detetar os modelos no Windchill este também deve permitir que o utilizador
edite a legenda do desenho.
Passo 8: O modelo genérico associado ao desenho pode ser novo ou uma revisão. A aplicação
verifica se o modelo é novo a partir da verificação da versão que é fornecida pelo seu
parâmetro “PTC_WM_VERSION”. Se este parâmetro não existir ou possuir os valores “-.1” ou
“.0” significa que o objeto é novo.
Apêndice E - Caso de Uso Editar Legenda
Quando o modelo genérico é novo a aplicação deve sugerir valores para os seguintes
parâmetros:
Estes parâmetros devem ser sugeridos quando o modelo é novo uma vez que os seus valores
devem manter-se para sempre e mesmo no caso de uma revisão estes não são alterados.
A aplicação deve sugerir sempre um valor para o parâmetro “NUM_MOD” pois o utilizador
deve editá-lo sempre uma vez que este varia de acordo com a revisão do modelo:
Passo 10: Os parâmetros devem ter um visto na opção “designate” para que o Windchill possa
reconhê-los no caso doservidor do Windchill estiver ativo no Pro/E.
Apêndice E - Caso de Uso Editar Legenda
Apêndice F - Caso de Uso Adicionar Artigo
Formato Completo
Actor Principal
Utilizador
Partes interessadas e seus interesses
Utilizador: Diminuição do tempo despendido no processo de seleção dos artigos de fixação,
que passa a ser feita de forma mais rápida, simples e automática.
Empresa: Aumento da produtividade. Devido ao aumento da eficiência do processo de
procura e montagem de um artigo, os colaboradores podem dedicar mais tempo à modelação
dos objetos.
Objetivo
O propósito deste caso de uso é permitir a seleção de um artigo a partir de um catálogo Web
e a colocação desse artigo no modelo assembly do Pro/ENGINEER.
Pré-Condições
O utilizador tem de ter uma sessão válida na intranet.
Pós-Condições em caso de sucesso
O artigo selecionado é importado para o modelo assembly do Pro/E.
Trigger
O utilizador solicita ao browser a execução da aplicação Web.
Percurso Principal de Sucesso
1. A aplicação obtém as classes de artigo que devem ser apresentadas (por exemplo,
classes de parafusos e anilhas) e apresenta-as ao utilizador. A aplicação também apresenta
uma funcionalidade de pesquisa geral.
2. O utilizador seleciona uma classe de artigo.
3. A aplicação agrupa os artigos, da classe previamente selecionada, por uma
determinada característica e o utilizador escolhe um grupo.
4. A aplicação apresenta as características do grupo escolhido anteriormente e
apresenta uma listagem dos artigos e outros dados, permitindo que o utilizador filtre os
artigos por determinados valores das características.
5. O utilizador seleciona um modelo associado ao artigo desejado e pede ao Pro/E que
importe para o assembly ativo o modelo associado ao artigo.
6. A aplicação executa o módulo JavaScript “moduloJavascript.js” (Apêndice D).
Apêndice F – Caso de Uso Adicionar Artigo
Fluxos Alternativos
2a. O utilizador insere um valor no campo de pesquisa global:
1. A aplicação verifica quais os artigos que contêm o valor inserido pelo utilizador no seu
código ou na descrição ou no valor de uma determinada característica e lista esses
artigos.
2. A aplicação segue para o passo 5.
5a. Todos os modelos associados ao artigo estão obsoletos:
3. A aplicação não permite que o utilizador selecione um modelo.
7a. Não existe qualquer objeto ativo do tipo “assembly” na sessão:
1. A aplicação informa que não existem objetos do tipo “assembly” ativos na sessão, não
possibilitando importar o artigo selecionado.
8a. O servidor Windchill está ativo no Pro/E e o utilizador não fez check out ao assembly ativo
do Pro/E:
1. A aplicação avisa o utilizador que tem de fazer check out ao assembly, não importando
o artigo pretendido, e volta ao ponto 5 para permitir que o utilizador selecione
novamente o artigo que deseja importar para o assembly.
Especificações Suplementares
Enquanto a subsecção anterior descreve os passos que constituem o percurso de execução da
aplicação ProCatalog, esta subsecção apresenta algumas especificações adicionais associadas
a cada um dos passos de forma a contribuir para uma melhor compreensão dos mesmos.
Se o utilizador quiser visualizar o catálogo, a aplicação pode ser acedida a partir de qualquer
navegador, mas para importar um modelo para o assembly ativo do Pro/E é necessário
executar a aplicação a partir do navegador do Pro/ENGINEER para utilizar funções da API
Pro/Web.Link.
Passo 3: Após a apresentação e seleção de uma classe de artigo, a aplicação deve agrupar
todos os artigos pela característica “norma”. Neste caso, se a classe das anilhas for
selecionada devem ser apresentados os vários valores das normas que estas podem assumir.
A aplicação deve estar preparada para que diferentes artigos possam ser agrupados por
características diferentes.
Os artigos têm de estar bem classificados no GlobalArt e a aplicação deve ser programada
levando isso em consideração. Se por alguma razão a classificação dos artigos não estiver
correta essa situação deve ser sempre corrigida no GlobalArt.
Deve ser colocado um botão de informações de cariz técnico para cada valor da característica
responsável pelo agrupamento dos artigos. Neste caso as informações podem ser acerca da
característica “norma” (norma din 147, etc.).
Incluir um botão para a criação de um artigo no GlobalArt. Como esta funcionalidade está
implementada no GlobalArt esse botão é remetido para a respetiva página do GlobalArt.
Quando o utilizador colocar o ponteiro do rato sobre o artigo, o ProCatalog deve apresentar a
imagem do artigo. Esta funcionalidade pode ser copiada do GlobalArt.
Criação de uma hiperligação em cada artigo para que o utilizador tenha acesso à informação
colocada na aplicação WebBaan sobre esse artigo.
O utilizador deve saber se o artigo está obsoleto ou não e se estiver apresenta-se um aviso.
Passo 5: Um artigo pode ter vários modelos CAD associados. Todos estes modelos associados
devem ser apresentados ao utilizador. A aplicação permite adicionar um desses modelos ao
assembly ativo do Pro/E se o modelo pretendido não estiver obsoleto. Um artigo também
pode estar obsoleto e nesse caso deve ser apresentado um símbolo de aviso.
Passo 8: A validação do Windchill não é feita com sucesso no seguinte caso: um servidor do
Windchill está ativo no Pro/E e o assembly não está checked out.
Apêndice G - ProPEditor: Classes Pro/Web.Link
Este apêndice apresenta as classes e respetivos métodos e propriedades utilizados na
aplicação ProPEditor. As descrições dos métodos e propriedades são feitas com base na API
Wizard da Pro/Web.Link.
Classe MpfcCOMGlobal
Classe pfcBaseSession
Classe pfcServer
Propriedade ActiveWorkspace -> string: verifica qual o workspace ativo que está
associado ao servidor ativo na opção “Server Registry” do menu “Tools” do
Pro/ENGINEER e retorna o seu nome.
Método IsObjectCheckedOut-> boolean: verifica se um determinado modelo está
checked out num determinado workspace e se sim retorna o valor “true”, se não
retorna o valor “false”. Caso seja retornado o valor “undefined” significa que o
modelo não está no workspace. Os argumentos WorkspaceName e ObjectName
correspondem ao nome do workspace e ao nome do modelo respetivamente.
Classe pfcModel2D
Método ListModels() -> pfcModels: retorna um array com os modelos que compõem
um desenho.
Método Regenerate() -> void: regenera modelos do tipo drawing, report ou layout.
Apêndice G – ProPEditor: Classes Pro/Web.Link
Classe pfcModels
Propriedade Count -> integer: retorna o número de modelos que constituem o array.
Método Item(integer Index) -> pfcModel: retorna o modelo que está armazenado
num determinado índice do array. O modelo retornado pode ser da classe pfcPart ou
pfcAssembly ou de outra classe que represente outro tipo de modelo. O argumento
Index corresponde ao índice do array que se pretende aceder.
Classe pfcModel
Classe pfcSheetOwner
Classe pfcSolid
Classe pfcFamilyMember
Classe pfcFamilyTableRows
Propriedade Count -> integer: retorna o número de linhas da family table que
constituem o array.
Método Item(integer Index) -> pfcFamilyTableRow: retorna um objeto da classe
pfcFamilyTableRow que representa uma linha da family table que está armazenada
num determinado índice do array. O argumento Index corresponde ao índice do array
que se pretende aceder.
Classe pfcFamilyTableRow
Propriedade InstanceName -> string: retorna o nome da instância que está situada
numa determinada linha da family table.
Método CreateInstance() -> pfcModel: regenera uma instância da family table,
adiciona-a à sessão do Pro/ENGINEER e retorna-a sob a forma de objeto da classe
pfcPart ou pfcAssembly.
Apêndice G – ProPEditor: Classes Pro/Web.Link
Classe pfcParameterOwner
Classe pfcParameters
Classe pfcParameter
Classe pfcBaseParameter
Classe pfcNamedModelItem
Classe pfcParamValue
Classe MpfcModelItem
Classe pfcDetailItemOwner
Classe pfcDetailItems
Propriedade Count -> integer: retorna o número de itens de detalhe que constituem
o array.
Método Item(integer Index) -> pfcDetailItem: retorna um item de detalhe que está
armazenado num determinado índice do array. O item retornado pode ser da classe
pfcDetailSymbolInstItem ou de outra classe que represente outro tipo de item de
detalhe de um modelo. O argumento Index corresponde ao índice do array que se
pretende aceder.
Classe pfcDetailSymbolInstItem
Classe pfcDetailSymbolInstInstructions
Classe pfcDetailSymbolDefItem
Apêndice G – ProPEditor: Classes Pro/Web.Link
Classe pfcDetailSymbolDefInstructions
Classe pfcDetailVariantTexts
Classe pfcDetailVariantText
Classe pfcBaseSession
Classe pfcModelDescriptor
Classe pfcAssembly
Método Set(integer Index1, integer Index2, number Item) -> void: atribui um valor a
um determinado índice do array pfcMatrix3D. Este array é bidimensional de 4X4 e
armazena uma matriz de transformação tridimensional.
Classe pfcComponentFeat
Classe pfcRegenInstructions
Propriedade AllowFixUI -> boolean: quando esta propriedade é colocada a “true”, se
houver um erro na execução das instruções de regeneração é apresentada a interface
do Pro/E para corrigir um determinado modelo.
Propriedade RefreshModelTree -> boolean: se esta propriedade for colocada com o
valor “true”, a model tree é atualizada após a execução das instruções de regeneração.
Apêndice H – ProCatalog: Classes Pro/Web.Link
Classe pfcSolid
Classe pfcComponentFeat
Classe pfcFeature
Propriedade Status-> pfcFeatureStatus: retorna o estado de uma feature sob a forma
de objeto da classe pfcFeatureStatus. Nesta aplicação solicita-se a obtenção das
features do tipo “FEAT_ACTIVE”, “FEAT_INACTIVE” ou “FEAT_UNREGENERATED”.
Classe pfcPart
Classe pfcMaterialProperty