ADEM/ISEL
GI-MOSM & CEEM
Lisboa, 02 Novembro
2016
PÓS PROCESSADOR DE CATIA V5R20 PARA EMCO PC TURN 55
Sérgio André Aguiar Góis1, Eduardo Faria Sousa2
ADEM – Área Departamental de Engenharia Mecânica
ISEL – Instituto Superior de Engenharia de Lisboa
Rua Conselheiro Emídio Navarro, 1, 1959-007 – Lisboa
e-mail primeiro autor: [email protected]
e-mail segundo autor: [email protected]
Palavras-chave Engenharia mecânica, CATIA, CNC, torneamento, programação, conversor.
Abstract Neste documento está apresentado um programa que funciona como pós-
processador do CATIA, que abre um ficheiro de código gerado pelo pós-processador do
CATIA V5R20, e corrige esse código de modo a ser lido pelo torno CNCi (EMCO PC TURN
55).
O software CATIA V5R20 utiliza tecnologia CAMii, que permite através da geometria de
modelos tridimensionais gerados no mesmo ou outros softwares, gerar um código num
formato adequado a ser lido nos modelos mais comuns de máquinas CNC e Tornos
Mecânicos CNC, dependendo do tipo de geometria da peça e das operações que se pretende
efetuar.
O programa foi desenvolvido numa linguagem de programação atual, que é o Visual
Basic.NET, que outrora foi programado em Visual Basic 6. A interface do programa foi
criada de raiz, de forma a ser mais prática e compreensível para o utilizador. Foi também
criado um manual de instruções no qual se auxilia o utilizador a criar uma peça para
torneamento no CATIA, assim como a geração do código CNC, e posterior pós-
processamento pelo programa. Foi também adicionado ao programa um leitor de pdf, de
modo a ser possível visualizar os manuais de instruções de torneamento diretamente no
programa.
i CNC – Comando Numérico Computarizado ii CAM - Computer Assisted Machining
S.A.A. Góis1, E.F. Sousa2
1. INTRODUÇÃO
Este trabalho vem na sequência do que se tem vindo a desenvolver nos semestres anteriores,
mais concretamente em relação ao modo de funcionamento do módulo de torneamento do
CATIA V5R20. O software CATIA V5R20 utiliza tecnologia CAM que permite através da
geometria de modelos tridimensionais gerados no mesmo ou outros softwares, gerar um
código num formato adequado a ser lido nos modelos mais comuns de máquinas CNC e
Tornos Mecânicos, dependendo do tipo de geometria da peça e das operações que se pretende
efetuar.
O primeiro trabalho realizado acerca do módulo de torneamento no CATIA V5R20 foi
efetuado pelos colegas David Bronze, João Pires e Rui Colaço, em semestres anteriores, onde
realizaram um “Manual de iniciação ao módulo de torneamento – CATIA V5R20”, onde os
mesmos descrevem detalhadamente os procedimentos a efetuar de modo a gerar um código
CNC através de um modelo tridimensional, identificando um pós-processador (fanuc), para
gerar o código. Este código gerado por este pós-processador (fanuc) não é compatível com o
torno existente no laboratório de maquinação CNC do ISEL, o EMCO to PC TURN 55, este
contêm erros que têm de ser corrigidos manualmente.
O trabalho seguinte foi realizado pelos colegas Fábio Damásio, José Berardo e Maximilian
Grasberger, identificou detalhadamente os erros e as incompatibilidades geradas pelo pós-
processador (fanuc).
Este grupo supramencionado tentou encontrar soluções junto de identidades competentes, ao
que estas chegaram a conclusão que o torno mecânico presente no ISEL necessita de um pós-
processador específico para funcionar com o CATIA, o que implicava uma atualização física
do equipamento.
O trabalho realizado no semestre anterior pelos alunos Gheorge-Ticu, Sérgio Afonso e Vítor
Pereira, foi a criação de um programa que funciona como um pós-processador externo ao
CATIA, que abre um ficheiro de código CNC gerado pelo CATIA em formato TXT e que
corrige o mesmo de modo a que este possa ser lido no torno presente no ISEL.
O programa foi criado em Visual Basic 6.0 e foi denominado de “CATIA to EMCO”.
O trabalho realizado pelo nosso grupo, vem em seguimento do que tem sido feito nos
semestres anteriores, onde a evolução tem sido a palavra de ordem chave. Como tal, o nosso
trabalho consiste num programa que realiza a mesma conversão que o programa anterior,
sendo que este está feito numa linguagem de programação mais atual, como é o caso do
Visual Basic.NET.
Esta medida visa a atualizar o programa, pois a linguagem Visual Basic já é muito antiga,
sendo até considerada uma linguagem ”morta”. Outra medida implementada de modo a
evoluir o programa foi a adição de um leitor de pdf no programa de modo a ser possível no
mesmo programa ser visto o manual de instruções de torneamento, além da conversão do
código gerado no CATIA.
O código usado para a criação do programa ficará disponível de modo a que futuros grupos
continuem com a evolução do mesmo.
S.A.A. Góis1, E.F. Sousa2
2. ERROS IDENTIFICADOS
Os erros identificados no código .nc do CATIA V5R20, foram os mesmos que os colegas nos
semestres anteriores identificaram e necessitam de ser corrigidos de modo a que este seja
possível de ser usado no torno.
As correções a efetuar no código são:
Remoção de linhas introdutórias ao código e informativas;
Remoção do número de operação (O1000,O0)
Remoção do código G43,G49,G64,G17,G0,G99
Introdução do código G94 e G71
Remoção do código H1,H2 e H6
Alteração do código para a chamada da ferramenta, exemplo: T0002 para T0202;
Todas as coordenadas “X” < 30 devem ser multiplicadas por 2. Esta medida deve-se
ao facto do torno EMCO reconhecer os valores de X como diâmetro e o código
gerado no CATIA considerar os valores de X como raio, daí os valores em X serem
multiplicados para o dobro.[1]
Como a posição de segurança onde se dá a troca das ferramentas ser x=30 e Z=100, conclui-
se que não é vantajoso multiplicar para o dobro o valor de 30. Sendo assim, no programa só
os valores inferiores a 30 é que são multiplicados pelo dobro. Esta solução não apresenta
nenhum inconveniente, pois o bruto de maquinagem usado no torno nunca ultrapassa os
20mm de diâmetro.
Figura 1: Erros Identificados
Fonte: Código gerado pelo CATIA
S.A.A. Góis1, E.F. Sousa2
3. MELHORIAS NO SOFTWARE DE CONVERSÃO
O programa realizado no semestre anterior foi um bom orientador para a elaboração deste
novo programa, mas este só serviu mesmo de guia e não pode ser aproveitado como base
tendo em conta que utiliza uma linguagem que já não é usada, como é o caso do Visual Basic
que até considerada uma linguagem morta. Assim o novo programa foi feito usando o
software Visual Studio em detrimento do Visual Basic 6.0, e a linguagem escolhida para
programar foi o Visual Basic.NET que foi criada para substituir o Visual Basic. O software
utilizado para converter o Visual Basic 6.0 para Visual Basic.NET foram o gmStudio, que
auxiliou a conversão de grande parte do código programado[2], e o Visual Studio 2013, onde
foi corrigido algum do código convertido que não era reconhecido.[3]
A alteração na linguagem de programação do programa irá permitir que futuros grupos não
tenham tanta dificuldade em conseguir complementar o programa, pois com esta nova
linguagem conseguem encontrar mais recursos, além de conseguirem mais ajuda por parte de
pessoas da área da informática, por estarem mais familiarizadas com esta linguagem.
O programa também teve uma melhoria a nível da interface e a nível da parte gráfica, sendo
este mais apelativo e mais atual.
A criação de um leitor de pdf de modo a que na aplicação seja possível ver o manual de
instruções de torneamento no CATIA, permitindo ao utilizador que assim possa ver como
fazer o torneamento da peça no CATIA e após a sua conclusão, sem ter que sair da aplicação
possa converter o código de modo a que este seja reconhecido pelo torno mecânico EMCO to
PC TURN 55.
S.A.A. Góis1, E.F. Sousa2
4. CÓDIGO DO SOFTWARE EM VISUAL BASIC.NET
Seleção da opção “Conversor”
Private Sub conversor_Click(ByVal sender As Object, ByVal e As EventArgs) Handles _conversor_1.Click
Definição das janelas
Dim frm1 As System.Windows.Forms.Form = Nothing Dim frm5 As Form5 = Nothing
Código para abertura da janela da opção “Conversor”
frm5 = Form5.DefInstance frm5.Show()
Código para fecho da janela inicial
frm1 = Form1.DefInstance frm1.Hide() End Sub
Seleção do botão “Converter Código” Private Sub Converter_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Converter.Click
Definição das janelas
Dim frm5 As System.Windows.Forms.Form = Nothing Dim frm4 As Form4 = Nothing Dim i As Integer = 0 Dim numero As Integer = 0
Definição das variáveis a serem alteradas Dim ReadData As String = "" Dim texto_separadores As String = "" Dim restoTexto As String = "" Dim restoAnterior As String = "" Dim palavra As String = "" Dim fraseOut As String = "" Dim Entrada As String = "" Dim Saida As String = "" Dim nColCount As Single = 0.0 Dim pos_separador As Integer = 0 Dim comp_linha As Single = 0.0 Dim pos_separador_ant As Single = 0.0 Dim contador As Single = 0.0 Dim nIteracoes As Single = 0.0
S.A.A. Góis1, E.F. Sousa2
Pedido da localização do ficheiro a ser convertido
Input de .txt através de seleção em pasta
OpenFileDialog1.FileName = "" OpenFileDialog1.Title = "Ficheiro original" OpenFileDialog1.Filter = "TXT Files|*.txt" OpenFileDialog1.ShowDialog()
Entrada = OpenFileDialog1.FileName
Pedido da localização do ficheiro após a sua conversão
'Output de .txt através de seleção em pasta SaveFileDialog1.FileName = "" SaveFileDialog1.Title = "Ficheiro Convertido" SaveFileDialog1.Filter = "Ficheiros de texto | *.txt" SaveFileDialog1.ShowDialog()
Saida = SaveFileDialog1.FileName
Leitura dos ficheiros de entrada e saida FileSystem.FileOpen(1,Entrada,OpenMode.Input,OpenAccess.Default,OpenShare.Default,-1) FileSystem.FileOpen(2,Saida,OpenMode.Output,OpenAccess.Default,OpenShare.Default,-1)
Início do ciclo 'faz até ao end of file 1 (ficheiro input) Do Until FileSystem.EOF(1)
Tratamento do texto a ser convertido ' lê a linha e coloca o conteúdo na variável ReadData
ReadData = FileSystem.LineInput(1) ' Determina o comprimento da linha comp_linha = Strings.Len(ReadData) 'Retira comentários If (Strings.Left(ReadData,1) = "(") Then ReadData = ""
End If ' Na primeira palavra, encontra o 1º separador pos_separador = Strings.InStr(1,ReadData," ",CompareMethod.Binary) restoTexto = Mid(ReadData,pos_separador + 1) pos_separador_ant = pos_separador palavra = Strings.Left(ReadData,pos_separador) ' Regra para eliminar texto
If Strings.RTrim(Strings.UCase(palavra)) = "%" Or Strings.RTrim(Strings.UCase(palavra)) = "O0" Or Strings.RTrim(Strings.UCase(palavra)) = "O1000" Or (Strings.RTrim(Strings.UCase(palavra)) = "G43" Or (Strings.RTrim(Strings.UCase(palavra)) = "G17" Or Strings.RTrim(Strings.UCase(palavra)) = "G49" Or Strings.RTrim(Strings.UCase(palavra)) = "H1" Or Strings.RTrim(Strings.UCase(palavra)) = "H2" Or Strings.RTrim(Strings.UCase(palavra)) = "H3" Or
S.A.A. Góis1, E.F. Sousa2
Strings.RTrim(Strings.UCase(palavra)) = "H4" Or Strings.RTrim(Strings.UCase(palavra)) = "H5" Or Strings.RTrim(Strings.UCase(palavra)) = "H6" Or Strings.RTrim(Strings.UCase(palavra)) = "H7" Or Strings.RTrim(Strings.UCase(palavra)) = "H8" Or Strings.RTrim(Strings.UCase(palavra)) = "H9" Or Strings.RTrim(Strings.UCase(palavra)) = "H10")) Then
palavra = "" End If
'Regra para converter texto(alteraçaõ das funções G) If (Strings.RTrim(Strings.UCase(palavra)) = "G64") Then palavra = "G94 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "G99") Then palavra = "G71 " End If ' Regra para converter texto (compensação ferramenta) If (Strings.RTrim(Strings.UCase(palavra)) = "T0001") Then palavra = "T0101 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0002") Then palavra = "T0202 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0003") Then palavra = "T0303 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0004") Then palavra = "T0404 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0005") Then palavra = "T0505 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0006") Then palavra = "T0606 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0007") Then palavra = "T0707 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0008") Then palavra = "T0808 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0009") Then
S.A.A. Góis1, E.F. Sousa2
palavra = "T0909 " End If
' Regra para modificar o sentido de rotação If (Strings.RTrim(Strings.UCase(palavra)) = "M4") Then palavra = "M3 " End If ' Regra para duplicar o valor de X If (Strings.Left(Strings.RTrim(Strings.UCase(palavra)),1) = "X") Then numero = CSng(Mid(Strings.Replace(Strings.RTrim(palavra),".",","),2)) If (IsNumeric(numero)) Then If (numero < 30) Then numero = numero * 2 End If palavra = Strings.Replace("X" & numero & " ",",",".") End If End If
Função para definir o número de iterações a fazer
fraseOut = palavra nIteracoes = comp_linha - Strings.Len(Strings.Replace(ReadData," ","")) For i = 1 To nIteracoes Step 1 pos_separador = Strings.InStr(1,restoTexto," ",CompareMethod.Binary) palavra = Strings.Left(restoTexto,pos_separador) restoAnterior = restoTexto restoTexto = Mid(restoAnterior,pos_separador + 1)
Tratamento do texto a ser convertido
' Regra para eliminar texto
If Strings.RTrim(Strings.UCase(palavra)) = "%" Or Strings.RTrim(Strings.UCase(palavra)) = "O0" Or Strings.RTrim(Strings.UCase(palavra)) = "O1000" Or (Strings.RTrim(Strings.UCase(palavra)) = "G43" Or (Strings.RTrim(Strings.UCase(palavra)) = "G17" Or Strings.RTrim(Strings.UCase(palavra)) = "G49" Or Strings.RTrim(Strings.UCase(palavra)) = "H1" Or Strings.RTrim(Strings.UCase(palavra)) = "H2" Or Strings.RTrim(Strings.UCase(palavra)) = "H3" Or Strings.RTrim(Strings.UCase(palavra)) = "H4" Or Strings.RTrim(Strings.UCase(palavra)) = "H5" Or Strings.RTrim(Strings.UCase(palavra)) = "H6" Or Strings.RTrim(Strings.UCase(palavra)) = "H7" Or Strings.RTrim(Strings.UCase(palavra)) = "H8" Or Strings.RTrim(Strings.UCase(palavra)) = "H9" Or Strings.RTrim(Strings.UCase(palavra)) = "H10")) Then
palavra = "" End If
S.A.A. Góis1, E.F. Sousa2
'Regra para converter texto(alteraçaõ das funções G)
If (Strings.RTrim(Strings.UCase(palavra)) = "G64") Then palavra = "G94 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "G99") Then palavra = "G71 " End If ' Regra para converter texto (compensação ferramenta) If (Strings.RTrim(Strings.UCase(palavra)) = "T0001") Then palavra = "T0101 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0002") Then palavra = "T0202 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0003") Then palavra = "T0303 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0004") Then palavra = "T0404 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0005") Then palavra = "T0505 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0006") Then palavra = "T0606 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0007") Then palavra = "T0707 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0008") Then palavra = "T0808 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0009") Then palavra = "T0909 " End If ' Regra para modificar o sentido de rotação If (Strings.RTrim(Strings.UCase(palavra)) = "M4") Then palavra = "M3 "
S.A.A. Góis1, E.F. Sousa2
End If ' Regra para duplicar o valor de X If (Strings.Left(Strings.RTrim(Strings.UCase(palavra)),1) = "X") Then numero = CSng(Mid(Strings.Replace(Strings.RTrim(palavra),".",","),2)) If (IsNumeric(numero)) Then If (numero < 30) Then numero = numero * 2 End If palavra = Strings.Replace("X" & numero & " ",",",".") End If End If fraseOut = fraseOut & palavra Next ' tratamento da ultima palavra palavra = restoTexto ' Regra para eliminar texto
If Strings.RTrim(Strings.UCase(palavra)) = "%" Or Strings.RTrim(Strings.UCase(palavra)) = "O0" Or Strings.RTrim(Strings.UCase(palavra)) = "O1000" Or (Strings.RTrim(Strings.UCase(palavra)) = "G43" Or (Strings.RTrim(Strings.UCase(palavra)) = "G17" Or Strings.RTrim(Strings.UCase(palavra)) = "G49" Or Strings.RTrim(Strings.UCase(palavra)) = "H1" Or Strings.RTrim(Strings.UCase(palavra)) = "H2" Or Strings.RTrim(Strings.UCase(palavra)) = "H3" Or Strings.RTrim(Strings.UCase(palavra)) = "H4" Or Strings.RTrim(Strings.UCase(palavra)) = "H5" Or Strings.RTrim(Strings.UCase(palavra)) = "H6" Or Strings.RTrim(Strings.UCase(palavra)) = "H7" Or Strings.RTrim(Strings.UCase(palavra)) = "H8" Or Strings.RTrim(Strings.UCase(palavra)) = "H9" Or Strings.RTrim(Strings.UCase(palavra)) = "H10")) Then
palavra = "" End If
'Regra para converter texto(alteraçaõ das funções G) If (Strings.RTrim(Strings.UCase(palavra)) = "G64") Then palavra = "G94 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "G99") Then palavra = "G71 " End If ' Regra para converter texto (compensação ferramenta)
S.A.A. Góis1, E.F. Sousa2
If (Strings.RTrim(Strings.UCase(palavra)) = "T0001") Then palavra = "T0101 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0002") Then palavra = "T0202 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0003") Then palavra = "T0303 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0004") Then palavra = "T0404 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0005") Then palavra = "T0505 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0006") Then palavra = "T0606 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0007") Then palavra = "T0707 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0008") Then palavra = "T0808 " End If If (Strings.RTrim(Strings.UCase(palavra)) = "T0009") Then palavra = "T0909 " End If ' Regra para modificar o sentido de rotação If (Strings.RTrim(Strings.UCase(palavra)) = "M4") Then palavra = "M3 " End If ' Regra para duplicar o valor de X If (Strings.Left(Strings.RTrim(Strings.UCase(palavra)),1) = "X") Then numero = CSng(Mid(Strings.Replace(Strings.RTrim(palavra),".",","),2)) If (IsNumeric(numero)) Then If (numero < 30) Then numero = numero * 2 End If palavra = Strings.Replace("X" & numero & " ",",",".") End If
End If
S.A.A. Góis1, E.F. Sousa2
Função para acabar com o ciclo
fraseOut = fraseOut & palavra If (fraseOut <> "") Then FileSystem.PrintLine(2,fraseOut) End If frm4 = Form4.DefInstance frm4.Show() frm5 = Form5.DefInstance frm5.Hide() Loop FileSystem.FileClose(1) FileSystem.FileClose(2)
End Sub
Janela de confirmação da conversão
Seleção do botão “Voltar ao Menu Principal” Private Sub Menu_Click(ByVal sender As Object, ByVal e As EventArgs) Handles
Menu.Click
Definição das janelas
Dim frm4 As System.Windows.Forms.Form = Nothing Dim frm1 As Form1 = Nothing
Código para abertura da janela “Menu Principal”
frm1 = Form1.DefInstance frm1.Show()
Código para fecho da janela de confirmação da conversão frm4 = Form4.DefInstance frm4.Hide() End Sub
Seleção da opção “Manual de Instruções CATIA Torneamento” Private Sub manual_Click(ByVal sender As Object, ByVal e As EventArgs) Handles _manual_0.Click
Definição das variáveis Dim frm1 As System.Windows.Forms.Form = Nothing Dim frm2 As Form2 = Nothing
Código para abertura da janela da opção “Manual de Instruções CATIA Torneamento” frm2 = Form2.DefInstance frm2.Show()
S.A.A. Góis1, E.F. Sousa2
Código para fecho da janela “Menu Principal”
frm1 = Form1.DefInstance frm1.Hide() End Sub
Seleção do botão “Abrir Manual de Instruções”
Private Sub Abrir_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Abrir.Click
Função para a abertura de ficheiros PDF
OpenFileDialog1.Filter = "PDF Files|*.pdf" If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then AxAcroPDF1.src = OpenFileDialog1.FileName End If End Sub
Seleção do botão “Menu Principal”
Private Sub Menu_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Menu.Click
Definição das janelas
Dim frm2 As System.Windows.Forms.Form = Nothing Dim frm1 As Form1 = Nothing
Código para abertura da janela “Menu Principal”
frm1 = Form1.DefInstance frm1.Show()
Código para fecho da janela “Manual de Instruções”
frm2 = Form2.DefInstance frm2.Hide() End Sub
S.A.A. Góis1, E.F. Sousa2
5. INTERFACE
A aplicação obtida é um ficheiro executável, que tanto permite a visualização de ficheiros
PDF por parte do utilizador, de modo a que este possa consultar o “Manual de Instruções de
Torneamento CATIA”, como também faz a correção do código (em formato .txt) gerado pelo
CATIA.
Após a conversão este guarda um ficheiro .txt na localização escolhida pelo utilizador com a
correção feita.
Para abertura da aplicação clicamos no seguinte ícone.
Figura 2: Ícone de arranque do programa
Fonte: Conversor CATIA V5R20 para EMCO PC TURN 55
Figura 3: Página Inicial da Aplicação
Fonte: Conversor CATIA V5R20 para EMCO PC TURN 55
Após abertura da aplicação iremos deparar-nos com a página inicial da mesma, sendo esta
igual a figura 3.
Selecionando o botão “Manual de Instruções CATIA Torneamento” iremos ter a uma outra
janela denominada de “Manual de Instruções”.
S.A.A. Góis1, E.F. Sousa2
Figura 4: Manual de Instruções (Início)
Fonte: Conversor CATIA V5R20 para EMCO PC TURN 55
Clicando no botão “Abrir Manual de Instruções”, irá aparecer uma janela para a seleção do
documento pdf a abrir.
Figura 5: Manual de Instruções (Janela de seleção do PDF)
Fonte: Conversor CATIA V5R20 para EMCO PC TURN 55
S.A.A. Góis1, E.F. Sousa2
Após a seleção do pdf pretendido iremos ter uma janela com um aspeto parecido a seguinte
imagem.
Figura 6: Manual de Instruções (Visualização do PDF)
Fonte: Conversor CATIA V5R20 para EMCO PC TURN 55
O pdf fica disponível para visualização, sendo possível fazer scroll ao longo do mesmo, como
também abrir outro pdf sem ser necessário sair da janela “Manual de Instruções”.
Se o utilizador pretender pode voltar a página inicial da aplicação ao clicar no botão “Menu
Principal” ou pode fechar a mesma clicando no “x” presente no canto superior direito da
janela.
Na página inicial, clicando no botão “Conversor” irá abrir-se uma janela onde será possível
converter o código (em formato .txt) gerado pelo CATIA.
S.A.A. Góis1, E.F. Sousa2
Figura 7: Conversor (Início)
Fonte: Conversor CATIA V5R20 para EMCO PC TURN 55
Clicando no botão “Converter código” irá surgir uma janela denominada de “Ficheiro
Original” a pedir para selecionar o documento a converter.
Figura 8: Conversor (Pedido do “Ficheiro original”)
Fonte: Conversor CATIA V5R20 para EMCO PC TURN 55
S.A.A. Góis1, E.F. Sousa2
Após a seleção do documento a converter, ira surgir uma nova janela denominada de
”Ficheiro Convertido”, a perguntar o nome a dar ao ficheiro convertido como também a sua
localização.
Figura 9: Conversor (Guardar o “Ficheiro Convertido”)
Fonte: Conversor CATIA V5R20 para EMCO PC TURN 55
Após o utilizador definir a localização e o nome do ficheiro convertido, surge uma nova
janela a informar que o ficheiro foi convertido com sucesso e com um agradecimento pela
preferência deste pós-processador, tendo o utilizador a hipótese de regressar ao menu
principal clicando no botão “Voltar ao Menu Principal” ou ainda fechar a aplicação clicando
no “X” existente no canto superior direito.
O documento convertido fica pronto a ser utilizado no torno após passar de formato .txt para
formato .nc.
S.A.A. Góis1, E.F. Sousa2
Figura 10: Pós-Processador
Fonte: Conversor CATIA V5R20 para EMCO PC TURN 55
S.A.A. Góis1, E.F. Sousa2
6. MODO DE FUNCIONAMENTO DO SOFTWARE DE PÓS
PROCESSAMENTO
De modo a ser possível utilizar o software de pós processamento é necessário criar uma peça
para torneamento.
Figura 11: Peça e o seu Stock [4]
Fonte: Módulo de Torneamento do CATIA V5R20
Após a criação da mesma e do seu stock, de seguida deve ser criado o processo de
torneamento, de modo a que após este estar concluído seja possível gerar o código nc.
Figura 12: Peça maquinada [4]
Fonte: Módulo de Torneamento do CATIA V5R20
Após gerado o código nc o mesmo deve ser convertido para um documento de formato .txt, o
mesmo deve aberto e o utilizador deve apagar a referencias ao número de linhas (ex: N120) e
gravar.
S.A.A. Góis1, E.F. Sousa2
Figura 13: Código em formato .txt e eliminação do número da linha
Fonte: Código Pós-Processado pelo módulo de torneamento do CATIA V5R20
Após estes procedimentos a aplicação está pronta a ser utilizada. Na mesma deve ser
selecionado o botão “Conversor”.
Figura 14: Seleção do botão “Conversor”
Fonte: Conversor CATIA V5R20 para EMCO PC TURN 55
S.A.A. Góis1, E.F. Sousa2
Deve ser seguido os passos que já foram descritos da imagem 6 até a imagem 9,assim o
utilizador deverá obter um documento no formato .txt o qual o utilizador deve converter para
o formato .nc. Para tal o utilizador deve abrir o documento .txt e na opção salvar como deve
dar um nome ao ficheiro e no fim do nome colocar .nc, assim o ficheiro será guardado em
formato .nc e fica pronto a ser usado no torno mecânico.
Figura 15: Conversão de .txt para .nc
Fonte: Conversor CATIA V5R20 para EMCO PC TURN 55
Após a conversão para formato .nc deve-se obter um código com um aspeto similar a seguinte
imagem:
Figura 16: Código Pós-Processado em formato .nc [5]
Fonte: HSM Works
S.A.A. Góis1, E.F. Sousa2
7. COMPARAÇÃO DO CÓDIGO ANTES E DEPOIS DE SER PÓS-
PROCESSADO
Na seguinte imagem irá ser demonstrado algum do código da peça maquinada, não será
apresentado na íntegra devido ao facto de um ser um código com muitas linhas.
A vermelho encontram-se os parâmetros incorretos para o torno mecânico e a verde encontra-
se a alteração efetuada de modo a que estes fiquem adequados ao mesmo.
É possível verificar que o software alterou o modo de reconhecimento da ferramenta, por
exemplo esta passou de T0002 para T0202, outra das alterações efetuadas foi o sentido da
rotação que passou de M4 para M3, eliminação das funções G43,G49,G64,G17 e G99,
eliminação das funções H1,H2 e H6 assim como os valores em X passaram para o dobro.
Deste modo o código encontra-se pronto a ser utilizado no torno, uma vez que foi confirmado
pelo código gerado pelo MasterCam X4, pois este não tem qualquer incompatibilidade com o
torno CNC.[6]
Antes de ser Pós-Processado
%
O0
N1 G49 G64 G17 G80 G0 G90 G40 G99
N2 T0002 M6
N3 X10. S1000 M4
N4 G43 Z2.4 H2
N5 G1 G94 Z.4 F150.
N6 Z-.6
N7 X14.4
N8 G0 Z2.4
N9 X9.
…
N107 T0006 M6
N108 X12.4 S1000 M4
N109 G43 Z-26.65 H6
N110 G1 X10.4 F150.
N111 X5.4
N112 X12.4
N113 G0 Z-27.144
N114 G1 X10.4
N115 X5.4
Depois de ser Pós-Processado
N1 G94 G80 G0 G90 G40 G71
N2 T0202 M6
N3 X20 S1000 M3
N4 Z2.4
N5 G1 G94 Z.4 F150.
N6 Z-.6
N7 X28.8
N8 G0 Z2.4
N9 X18
…
N107 T0606 M6
N108 X24.8 S1000 M3
N109 Z-26.65
N110 G1 X20.8 F150.
N111 X10.8
N112 X24.8
N113 G0 Z-27.144
N114 G1 X20.8
N115 X10.8
S.A.A. Góis1, E.F. Sousa2
8. VERIFICAÇÃO DO SOFTWARE
De modo a verificar se aplicação estava a funcionar corretamente, foram maquinadas duas
peças com geometrias distintas de modo a que fosse verificado o maior número de “cenários”.
A primeira peça tem uma geometria onde se pudesse verificar se o software fazia
corretamente a conversão para geometrias diagonais, geometrias planas assim como se as
operações de sangramento e facejamento ficavam corretos para estas geometrias.
Figura 17: Primeira peça maquinada
Fonte: Fotografias da primeira peça maquinada
A segunda peça tem uma geometria onde se pudesse verificar se o software fazia
corretamente a conversão para geometrias redondas e curvilíneas, assim como se as operações
de desbaste e sangramento para estas geometrias ficavam correctas.
S.A.A. Góis1, E.F. Sousa2
Figura 18: Segunda peça maquinada
Fonte: Fotografias da segunda peça maquinada
Ambas as peças permitiram identificar alguns erros, como o aparecimento da função H2 e
códigos G gerados a mais, e a sua correção. Pode-se afirmar que o pós-processador encontra-
se totalmente pronto para qualquer tipo de geometria e não é preciso o utilizador fazer
qualquer alteração manual ao código gerado. Agora basta só o utilizador escolher o
documento que pretender converter com o pós-processador e este irá converte-lo sem
qualquer erro.
S.A.A. Góis1, E.F. Sousa2
9. CONCLUSÃO
Depois de uma revisão minuciosa aos trabalhos dos semestres anteriores e verificar-se os
erros enumerados pelos grupos e os aspetos a melhorar, concluiu-se que a aplicação do pós
processador externo ao CATIA seria uma boa solução a manter, sendo que a mesma
necessitava de uma atualização.
De modo a verificar-se esta atualização, a aplicação criada pelo grupo anterior, foi modificada
quer a nível de linguagem (passou do Visual Basic para o Visual Basic.NET), quer a nível
visual (o software foi criado no Visual Studio em do Visual Basic 6.0 o que permite melhores
formas gráficas) assim como foi introduzido um leitor de pdf.
A mudança de linguagem deveu-se ao facto do Visual Basic já ser considerada uma
linguagem “morta” e com esta mudança de linguagem para Visual Basic.NET, que é uma
linguagem mais recente, torna-se mais fácil para futuros grupos fazerem modificações no
programa pois há mas recursos acerca desta linguagem.
A mudança na linguagem de programação também permitiu a mudança do programa de
criação do software, que passou do Visual Basic 6.0 para o Visual Studio, mudança essa que
permitiu a criação de um programa com um melhor aspeto visual.
A introdução de um leitor de pdf na aplicação foi como objectivo de facilitar ao utilizador um
guia de como proceder na criação da peça para a maquinagem, o processo de maquinagem e a
criação do código NC. Assim é possível que numa só aplicação o utilizador tenha as
“ferramentas” necessárias para criar uma peça no torno mecânico usando o software CATIA.
O software final de pós-processamento corrige todos os erros e evita que o utilizador tenha de
fazer alguma alteração manualmente ao documento. Assim pode-se afirmar que o problema
de compatibilidade que havia entre o CATIA e o torno está resolvido.
Como possível melhoria a efetuar por futuros grupos, propomos que estes façam novos
manuais de instruções para diferentes peças de modo a que existam mais manuais disponíveis
para o utilizador, fazendo com que este tenha mais facilidade na criação de uma peça para o
torno.
S.A.A. Góis1, E.F. Sousa2
10. REFERÊNCIAS
[1] Linguagem de Programação CNC: Torno e centro de usinagem; Azevedo, Domingos;
2013;
[2] gmStudio v1.0;
[3] Visual Studio 2013, Microsoft;
[4] CATIA V5R20, Dassault Systèmes;
[5] HSMWorks, Solidworks extension;
[6] MasterCam X4.