127
I NSTITUTO P OLIT ´ ECNICO NACIONAL C ENTRO DE I NVESTIGACI ´ ON EN C IENCIA APLICADA Y T ECNOLOG ´ IA A VANZADA UNIDAD QUER ´ ETARO P ROGRAMA DE MAESTR ´ IA EN T ECNOLOG ´ IA A VANZADA VIRTUALIZACI ´ ON DE MAQUINADOS CON CNC DE ARQUITECTURA ABIERTA Y SOFTWARE DE USO FLEXIBLE TESIS QUE PARA OBTENER EL GRADO DE : Maestr ´ ıa en Tecnolog ´ ıa Avanzada Presenta: ING. HILARIO MARTINES ARANO Directores de tesis: DR. JOS ´ E JOEL GONZ ´ ALEZ BARBOSA DR. CARLOS TORRES TORRES Santiago de Quer´ etaro, Qro. Mayo 2017

I P ´ NACIONAL

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: I P ´ NACIONAL

INSTITUTO POLITECNICO NACIONAL

CENTRO DE INVESTIGACION EN CIENCIA APLICADA YTECNOLOGIA AVANZADA

UNIDAD QUERETARO

PROGRAMA DE MAESTRIA EN TECNOLOGIA AVANZADA

VIRTUALIZACION DE MAQUINADOS CON CNC DEARQUITECTURA ABIERTA Y SOFTWARE DE USO

FLEXIBLE

TESIS

QUE PARA OBTENER EL GRADO DE:Maestrıa en Tecnologıa Avanzada

Presenta:

ING. HILARIO MARTINES ARANO

Directores de tesis:

DR. JOSE JOEL GONZALEZ BARBOSADR. CARLOS TORRES TORRES

Santiago de Queretaro, Qro. Mayo 2017

Page 2: I P ´ NACIONAL
Page 3: I P ´ NACIONAL
Page 4: I P ´ NACIONAL

Particularidades

T ITULO: VIRTUALIZACION DE MAQUINADOS CON CNC DE ARQUITECTURA

ABIERTA Y SOFTWARE DE USO FLEXIBLE

Autor: Ing. Hilario Martines AranoDirector de Tesis: Dr. Jose Joel Gonzalez Barbosa, Dr. Carlos Torres Torres

La siguiente pagina web contiene el presente texto ası como informacion actualreferente al tema:

https://mega.nz/#recoverspxAzCYQUsAAxKgIok413C5TImpreso en Santiago de Queretaro, QueretaroCompilado con LATEXUltima Edicion, Mayo 2017

III

Page 5: I P ´ NACIONAL

Reconocimientos

Durante toda mi vida he encontrado a personas leales, nobles, entregadas ydispuestas a compartir parte de su vida, amistad y companıa con un servidor. Entiempos difıciles se han encontrado ahı, tambien en los buenos momentos, dandouna palabra de confort y animo, demostrandome que aun se puede confiar y teneresperanzas en la humanidad que tanto he criticado al mas puro estilo Schopen-hauer y Nietzsche.

Quiero reconocer el apoyo y la sensibilidad del Dr. Reydezel Torres Martınez,debido a su humanidad y paciencia pudo ayudarme a vislumbrar no solo cuestio-nes academicas, tambien las relacionadas con la vida, el Doctor Reydezel que consolo una entrevista de unos minutos, confio en mı y me brindo su apoyo y soli-daridad para estudiar la maestrıa, apostando en que esto ayudarıa a mi formacionprofesional, muchas gracias Doctor!.

Mi amigo, hermano y gran ejemplo de vida, Carlos Eduardo Benıtez Suarez,gracias por los consejos, apoyo moral, horas de platicas y esos recorridos cultu-rales tan placenteros, gracias por ser parte de esa humanidad que da testimoniode que se puede ser buena persona, tambien por ensenarme a diferenciar entre losestilos barrocos y neo-clasicos, por compartir mi aversion al vacıo y tambien lapasion del cine, donde podemos ver los detalles mas sutiles en medio de la pelıcu-la y una que otra vez sonar que estamos en una pelıcula italiana o en la realidadde Almodovar.

Quiero reconocer a todos esos maestros que han formado parte de mi forma-cion, en especial a Irma Olea, que desperto en mi el interes por el estudio a cortaedad, a la maestra Marıa Luisa Ruız y por supuesto a mi gran amigo y maestroAgustın Hernandez Rendon, por apoyarme cuando la situacion no era boyante pordemostrarme que sı se quiere se puede.

IV

Page 6: I P ´ NACIONAL

Resumen

Esta tesis de investigacion describe el diseno y desarrollo de un interprete/vir-tualizador de codigos G-M ISO 6983. El sistema presentado es capaz de leer,interpretar y verificar un archivo de codigo G-M, mostrando la virtualizacion delmaquinado. Para la creacion del interprete se utilizo la plataforma Microsoft®Visual Studio® 2012 como compilador. El interprete ha sido programado en unentorno de programacion C#.

En este documento se describe la creacion de un sistema de analisis de codigo G-M. Se definen algunas estructuras sintacticas con el fin de reconocer y diferenciarinstrucciones G-M. Las instrucciones son traducidas en movimientos y despla-zamientos en el entorno virtual programado en el interprete. Durante el desarro-llo del proyecto, se implementaron algoritmos de representacion y manipulaciongrafica, con el proposito de dar ciertas caracterısticas especıficas a la simulacionde la pieza mecanica. Estos algoritmos dieron al interprete, un comportamientoaceptable en comparacion con interpretes comerciales, siendo capaz de leer, in-terpretar y virtualizar los codigos cargados en la interfaz. Se reporta la creacionde clases de programacion en C#, mediante las librerıas de OpenGL, para el ren-derizado y visualizacion en tercera dimension de las trayectorias y formas en lapieza maquinada. Se integran modulos para la determinacion visual de efectos enla superficie maquinada, tales como rugosidad y profundidad de corte. Debido a laversatilidad e integracion de modulos en el interprete, hacen a este, un notable sis-tema de virtualizacion, interpretacion de codigos G-M y analisis de caracterısticasde maquinado. Se obtienen diferentes validaciones en el interprete, equiparando-se parcialmente a los software comerciales. Estos resultados tienen aplicacionesimportantes para ser integrados en un sistema de control numerico computarizadode arquitectura abierta.

V

Page 7: I P ´ NACIONAL

Abstract

This research thesis describes the design and development of a G-M ISO 6983codes interpreter/virtualizer. The presented system is able to read, interpret andverify a G-M code file, showing the machining virtualization. For the interpretercreation, Microsoft® Visual Studio® 2012 platform was used as compiler. Theinterpreter has been programmed in C# programming environment.

In this document the creation of a G-M code analysis system is described. Somesyntax structures are defined in order to recognize and differentiate G-M instruc-tions. The instructions are translated in movements and displacements in the vir-tual environment programmed in the interpreter. During the project developing,graphing and manipulation algorithms were implemented, with the purpose of gi-ve some specific characteristics to the mechanic part simulation. These algorithmsgave to the interpreter an acceptable behavior in comparison with commercial in-terpreters, being able to read, interpret and virtualize the loaded codes to the in-terface. Creation of programming classes in C#, are reported, through OpenGLlibraries, for 3D rendering and visualization of the paths and shapes in the ma-chined piece. Modules are integrated for the visual determination of effects onthe machined surface, such as roughness and cutting depth. Due to the versatilityand module integration in the interpreter, they make it a remarkable virtualiza-tion system, interpretation of G-M codes and analysis of machining characteris-tics. Different validations were obtained in the interpreter, equating partially to thecommercial software. These results have important applications for the integrationin a computer numerical control system of open architecture.

VI

Page 8: I P ´ NACIONAL

Dedicatoria

A mi madre, la senora Margarita Arano.

Por tu amor inconmensurable, ejemplo de vida y teson sin igual, muchas gra-cias por apoyarme en todo momento, aunque mis ideas a veces no luzcan tanconvincentes para ti, gracias tambien por tu compromiso en todo momento paraconmigo y por estar ahı presente en todas las etapas de mi vida, tanto difıcilescomo de dicha. Madre dedico esta tesis a ti, no pude tener un mejor ejemplo demotivacion dıa con dıa, gracias te doy por esas mananas de trabajo, te puedo ase-gurar que fueron de gran motivacion, a ti te debo todo lo que soy y lo que sere,mira que vamos a llegar muy lejos.

A mi abuela, Salome Valdiviezo.

Madre, de ti recibı los mejores mimos de mi vida, tus consejos e historias meinspiraron a ser quien soy, aunque hoy no estas aquı conmigo sabes que te recuer-do todos los dıas, dedico esta tesis a tu memoria. Aspiro a tener esa entrega quetuviste conmigo para con mis semejantes, espero que alla donde estes te regocijesde ver en lo que tu hijo lalito se ha convertido, en algun momento nos volveremosa ver viejita mıa.

Al equilibrio del universo y de la vida.

Por todo esto y mucho mas muchas gracias.

VII

Page 9: I P ´ NACIONAL

Agradecimientos

Al:

Instituto Politecnico Nacional

Centro de Investigacion en Ciencia Aplicada y Tecnologıa Avanzadaunidad Queretaro

Por las facilidades dadas para la realizacion de este proyecto.

Especialmente al Consejo Nacional de Ciencia y Tecnologıa (CONACyT), porel financiamiento otorgado como becario del programa de maestrıa en tecnologıaavanzada, a traves de la beca 677675 y el proyecto CB-2015-251201.

Finalmente a los excelentes doctores y maestros que contribuyeron en mi forma-cion academica:

Dr. Reydezel Torres MartınezDr. Carlos Torres TorresDr. Jose Joel Gonzalez BarbosaDr. Eduardo Castillo CastanedaDr. Eduardo Molares SanchezM. en C. Maximiano Francisco Ruız Torres

VIII

Page 10: I P ´ NACIONAL

Glosario

C++: Creado a mediados de los anos ochenta, es un lenguaje de programaciondesarrollado por Bjarne Stroustrup, con la intencion de ser una extension del len-guaje C.

C#: Es un lenguaje de programacion orientado a objetos. C# fue creado, re-gulado y estandarizado por Microsoft, esta integrado como parte de la plataforma.NET de Microsoft.

CAD: Computer Aided System, en espanol, Diseno Asistido por Computado-ra. Es el conjunto y uso de programas de computo con la intencion de crear yrecrear representaciones graficas de objetos fısicos existentes, estos pueden ser endos dimensiones y en tercera dimension.

CAM: Computer Aided Manufacturing, en espanol Manufactura Asistida porComputadora. Se refiere al uso de diversas aplicaciones que estan incluidas en unsoftware de control numerico, con el objetivo de crear una serie de instruccionesen codigo G, el cual tiene como objetivo indicar a la maquina herramienta lo quetiene que hacer, como y cuando.

CNC: Control Numerico Computarizado. Es un sistema que permite controlaren todo momento la posicion de un elemento fısico, normalmente una herramientaque esta montada en una maquina, o tambien llamado cortador.

Codigo G: El codigo G es el nombre que recibe en espanol al termino eningles G-code. Es un lenguaje de descripcion para operaciones que se realizan enmaquinas de control numerico por computadora (CNC). Fue estandarizado en losanos ochentas como ISO 6983.

FEA: Finite Element Analysis, en espanol Analisis de Elemento Finito. Es una

IX

Page 11: I P ´ NACIONAL

GLOSARIO X

tecnica matematica que es usada para el modelado de una estructura compleja.

ISO 6983: Es una norma especıficamente para el control numerico, donde lasinstrucciones estan situadas de tal forma que son enumeradas siguiendo un forma-to compuesto por un identificador N seguido de un numero en forma creciente.

GUI: Interfaz Grafica de Usuario. Conocida como GUI debido a su nombre eningles (Graphical User Interface). Es un conjunto de imagenes y objetos graficospara representar la informacion y acciones disponibles en el programa informati-co.

LINUX: Es un sistema operativo de codigo abierto (open source). Tiene suorigen en unix, el cual aparece en la decada de los sesenta, los desarrolladores deunix fueron los investigadores Dennies Ritchie y Ken Thompson.

NC: Numeric Control, en espanol Control Numerico. Se define al NC co-mo todo dispositivo, regularmente electronico que tiene la capacidad de dirigiry controlar el posicionamiento de uno o varios elementos mecanicos que puedenmoverse, esto a traves de datos numericos y simbolicos que estan definidos en unprograma.

OpenGL: Open Graphics Library. Es una compilacion de diferentes librerıas,en un ambiente de multiplataformas para la generacion de graficos 2D y 3D encomputadora, es muy usada en la industria del diseno de videojuegos.

RGB: Acronimo en ingles para red, green y blue.

SolidWorks: Es un programa CAD, usado principalmente para el modeladomecanico, permite modelar piezas y conjuntos que son ensamblados posterior-mente.

STEP-NC: Es un lenguaje de control para maquinas herramientas, nacio co-mo ISO 10303 STEP, fue disenado para reemplazar el estandar ISO6983/RS274D.

STL: Stereolthography, en espanol estereolitografıa. Es un proceso de reali-zacion de prototipos mediante la estratificacion con el fin de construir un modelode diseno.

Page 12: I P ´ NACIONAL

Indice general

Particularidades III

Reconocimientos IV

Resumen V

Abstract VI

Dedicatoria VII

Agradecimientos VIII

Glosario IX

Indice General XIV

Indice de Figuras XVI

Indice de Tablas XVI

1 Introduccion 11.1 Definicion del problema . . . . . . . . . . . . . . . . . . . . . . 41.2 Justificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.3.1 Objetivo general . . . . . . . . . . . . . . . . . . . . . . 71.3.2 Objetivos especıficos . . . . . . . . . . . . . . . . . . . 7

1.4 Estado del arte . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Fundamentacion teorica 122.1 Ingenierıa OpenGL . . . . . . . . . . . . . . . . . . . . . . . . 13

XI

Page 13: I P ´ NACIONAL

INDICE GENERAL XII

2.2 Sistemas CAD/CAM . . . . . . . . . . . . . . . . . . . . . . . 142.3 Software CAD/CAM en la interpretacion y virtualizacion de

maquinados CNC . . . . . . . . . . . . . . . . . . . . . . . . . 152.3.1 Virtualizacion en ALPHACAM . . . . . . . . . . . . . 152.3.2 Interpretacion de codigos G-M en LinuxCNC . . . . . 152.3.3 CATIA en un entorno de virtualizacion de maquinados 162.3.4 Visualizacion de maquinados en CAMWorks . . . . . . 172.3.5 Mastercam como interprete/virtualizador . . . . . . . . 18

2.4 Visualizacion grafica de objetos tridimensionales . . . . . . . . 182.4.1 Posicionamiento de objetos virtuales en un espacio tri-

dimensional . . . . . . . . . . . . . . . . . . . . . . . . 182.4.2 Transformacion del origen . . . . . . . . . . . . . . . . 192.4.3 Cambio de escala . . . . . . . . . . . . . . . . . . . . . 192.4.4 Rotacion alrededor del eje X . . . . . . . . . . . . . . . 202.4.5 Rotacion alrededor del eje Y . . . . . . . . . . . . . . . 202.4.6 Rotacion alrededor del eje Z . . . . . . . . . . . . . . . 21

2.5 Modelado de una pieza . . . . . . . . . . . . . . . . . . . . . . 212.5.1 3D como la union de 2D + perspectiva . . . . . . . . . 22

2.6 Estandares para el control CNC . . . . . . . . . . . . . . . . . 222.6.1 Estandar ISO/EIA . . . . . . . . . . . . . . . . . . . . . 23

2.7 Generacion del programa de mecanizado . . . . . . . . . . . . 23

3 Interprete/Virtualizador 243.1 Arquitectura del interprete . . . . . . . . . . . . . . . . . . . . 25

3.1.1 Requerimientos para la visualizacion de maquinadosvirtuales en el interprete . . . . . . . . . . . . . . . . . 25

3.1.2 Creacion de un analisis lexico-semantico-sintactico . . 283.1.3 Diseno y definicion del analisis lexico . . . . . . . . . . 283.1.4 Diseno y definicion del analisis sintactico . . . . . . . . 293.1.5 Diseno y definicion del analisis semantico . . . . . . . . 293.1.6 Diseno de los algoritmo de programacion, para la in-

terpretacion y procesamiento de codigo . . . . . . . . . 303.2 Diseno de la interfaz grafica GUI . . . . . . . . . . . . . . . . . 333.3 Desarrollo de la interfaz grafica GUI . . . . . . . . . . . . . . . 34

3.3.1 Incorporacion de ventanas de control en la interfazgrafica . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.3.2 Motor de graficos para la virtualizacion 3D . . . . . . . 343.4 Programacion de graficos para la visualizacion de movimientos 35

Page 14: I P ´ NACIONAL

INDICE GENERAL XIII

3.5 Interfaz grafica del usuario GUI . . . . . . . . . . . . . . . . . 363.5.1 La barra de menus . . . . . . . . . . . . . . . . . . . . 373.5.2 Menu archivo . . . . . . . . . . . . . . . . . . . . . . . 373.5.3 Menu modo . . . . . . . . . . . . . . . . . . . . . . . . 393.5.4 Menu ejecutar . . . . . . . . . . . . . . . . . . . . . . . 403.5.5 Menu asistente . . . . . . . . . . . . . . . . . . . . . . . 413.5.6 Ejes y lıneas . . . . . . . . . . . . . . . . . . . . . . . . 423.5.7 Seccion ayuda . . . . . . . . . . . . . . . . . . . . . . . 433.5.8 Pantalla de visualizacion del maquinado . . . . . . . . 443.5.9 La barra de movimientos . . . . . . . . . . . . . . . . . 443.5.10 Seleccion de un area de maquinado . . . . . . . . . . . 443.5.11 Tipo de vistas incluidas en el interprete . . . . . . . . . 453.5.12 Ajustar vista . . . . . . . . . . . . . . . . . . . . . . . . 453.5.13 Acercar maquinado . . . . . . . . . . . . . . . . . . . . 463.5.14 Rotar maquinado . . . . . . . . . . . . . . . . . . . . . 463.5.15 Zoom in / Zoom out . . . . . . . . . . . . . . . . . . . . 463.5.16 Fijar maquinado . . . . . . . . . . . . . . . . . . . . . 46

3.6 Procesamiento de codigo . . . . . . . . . . . . . . . . . . . . . 473.7 Renderizado en el maquinado virtual . . . . . . . . . . . . . . 483.8 Interpolacion lıneal . . . . . . . . . . . . . . . . . . . . . . . . 483.9 Interpolacion circular . . . . . . . . . . . . . . . . . . . . . . . 49

4 Virtualizacion de maquinados 504.1 Virtualizacion de maquinados . . . . . . . . . . . . . . . . . . 514.2 Identificacion de la profundidad de corte mediante el software 544.3 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.3.1 Software para la aproximacion de la profundidad . . . 574.3.2 Validacion matematica de la profundidad de corte . . . 594.3.3 Evaluacion grafica de la rugosidad en una superficie

mediante un cortador laser . . . . . . . . . . . . . . . . 654.3.4 Control de los servomotores mediante el sistema CNC . 72

5 Discusion y Conclusiones 775.1 Discusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785.2 Analisis de resultados . . . . . . . . . . . . . . . . . . . . . . . 795.3 Caracterısticas principales del interprete de codigos CNC . . . 845.4 Dificultades enfrentadas durante la elaboracion del proyecto . 855.5 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Page 15: I P ´ NACIONAL

INDICE GENERAL XIV

5.6 Proyeccion a futuro . . . . . . . . . . . . . . . . . . . . . . . . 88

A Apendice A 89A.1 Abrir archivo de texto . . . . . . . . . . . . . . . . . . . . . . . 89A.2 Menu limpiar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89A.3 Cerrar dialogo . . . . . . . . . . . . . . . . . . . . . . . . . . . 90A.4 Acerca de... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90A.5 Estructura REGEX . . . . . . . . . . . . . . . . . . . . . . . . 90A.6 Menu ejecutar . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

Bibliografıa 100

Page 16: I P ´ NACIONAL

Indice de figuras

1.1 Ejemplo de interprete/virtualizador CNC. Fuente Brecher et al.2005 [42]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.2 Interfaz principal del interprete. Fuente Rodrıguez et al. 2014 [13]. 101.3 G-code parsing en funcionamiento. Fuente Seung-Jun et al. 2007

[44]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.1 Ejemplo de maquinado en Alphacam. Cortesıa pagina oficial deAlphacam. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.2 Interface principal de LinuxCNC, realizando un maquinado. Cor-tesıa pagina oficial de LinuxCNC. . . . . . . . . . . . . . . . . . 17

3.1 Diagrama de flujo y estrategia del proceso. . . . . . . . . . . . . . 323.2 Modulos que componen el interprete de codigos CNC. . . . . . . 363.3 Desarrollo de la interfaz grafica GUI . . . . . . . . . . . . . . . . 373.4 Barra de menus del interprete de codigos CNC. . . . . . . . . . . 373.5 Menu archivo del interprete. . . . . . . . . . . . . . . . . . . . . 383.6 Menu modo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.7 Menu ejecutar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.8 Menu asistente. . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.9 Ejes y lıneas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.10 Barra de movimientos del interprete de codigos CNC. . . . . . . . 443.11 Aplicacion de la opcion seleccion. . . . . . . . . . . . . . . . . . 453.12 Ejemplo de maquinado virtual en el interprete. . . . . . . . . . . . 48

4.1 Comparacion de maquinados. . . . . . . . . . . . . . . . . . . . . 524.2 Comparacion de maquinados. . . . . . . . . . . . . . . . . . . . . 534.3 Identificacion visual de la profundidad de corte. . . . . . . . . . . 554.4 Ejemplos de maquinados en el interprete. . . . . . . . . . . . . . 564.5 Ejemplo de ubicacion para el area seleccionada. . . . . . . . . . . 59

XV

Page 17: I P ´ NACIONAL

4.6 Efecto de la rugosidad programada en una superficie maquinada. . 644.7 Distancia angular entre angulo deseado y real. . . . . . . . . . . . 74

Indice de tablas

4.1 Propiedades de los ejemplos de maquinados programados . . . . . 694.2 Rango de parametros de procesamiento laser. . . . . . . . . . . . 704.3 Angulos obtenidos y calculados durante pruebas de posiciona-

miento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

XVI

Page 18: I P ´ NACIONAL

Toda gloria proviene de atreverse acomenzar.Eugene Fitch Ware 1841-1911

1Introduccion

En este capıtulo se presenta la descripcion del temade tesis, las premisas relacionadas con la investiga-cion. Igualmente se mencionan los aspectos genera-les que motivaron el tema propuesto y se hace unarevision del desarrollo historico y el presente de losinterpretes virtualizadores de maquinados.

Resumen

1

Page 19: I P ´ NACIONAL

CAPITULO 1. INTRODUCCION 2

El crecimiento en la demanda de una mayor calidad de los productos manu-facturados y comercializados, introduce la necesidad de desarrollar y me-jorar herramientas de produccion para el maquinado en el control numeri-

co computarizado. En los ultimos anos, el estado del arte y la investigacion sobrelos interpretes de codigo G-M ha sido notablemente relevante. Tiene la intencionde desarrollar sistemas abiertos con aplicaciones universales, algunos de los cua-les cubren las normas ISO6983 y las estructuras basicas del programa NC, Chenet al. 2012 [1], Qi et al. 2011 [2], Yadong et al. 2007 [3], Xingui et al. 2012 [4],otros cubren el estandar mas reciente STEP-NC (Standard for Exchange and Sha-ring of Product) Lan et al. 2008 [5] y Chen et al. 2010 [6].

Las maquinas de control numerico (NC), son dispositivos mecatronicos, quecombinan componentes electronicos y mecanicos con sistemas avanzados de con-trol y programacion Lin et al. 1999 [7] y Suh et al. 2008 [8]. Los sistemas CNCtienen una computadora que lee e interpreta instrucciones en un lenguaje maqui-na o tambien llamado codigo G. Esto con la intencion de guiar la herramienta decorte por la trayectoria deseada Alain et al. 2011 [9]. Estas maquinas CNC pue-den ser clasificadas en diferentes categorıas incluyendo el proceso de mecanizado,numero de ejes, la disposicion del cabezal, el numero de husillos y la configura-cion cinematica de este Stenerson JS et al. 2005 [10] y Vichare et al. 2009 [11].

Durante la ultima decada, se han disenado y puesto en marcha diferentes ti-pos y estilos de interpretes de codigos G-M, tal como lo hizo Yusof et al. 2015[12]. Yusof presenta un interprete CNC para una maquina de arquitectura abierta.Una caracterıstica que presenta el software creado por Yusof y que contrasta di-rectamente con el reportado en este trabajo de tesis es que no usa OpenGL para lamanipulacion de graficos.

De acuerdo con Albert Alain, el lenguaje que controla las maquinas herra-mientas CNC, fue desarrollado a finales de los anos 40 y principios de los 50,con el proposito de apoyar en la manufactura de la posguerra. Algunos cientıficoshan sugerido una definicion para control numerico NC. Alma G. Rodrıguez et al.mencionan que el control numerico esta definido como una forma de automatiza-cion programable, en la cual el proceso es controlado mediante numeros, letras ysımbolos, los mismos que proporcionan la informacion necesaria para ejecutar lasinstrucciones paso por paso, indicando a la maquina la trayectoria a seguir y cualoperacion ejecutar, Rodrıguez et al. 2014 [13].

Page 20: I P ´ NACIONAL

CAPITULO 1. INTRODUCCION 3

Al principio de su desarrollo, la maquina CNC era especıfica y exclusivamenteusada por la industria aeroespacial. Luego fueron adaptadas y adoptadas por otrasareas industriales como la madera, Nagata et al. 2009 [14] y plastico, Zhang et al.2008 [15]. La virtualizacion en procesos de manufactura metal-mecanicos, tratade crear una version virtual de una pieza fısica, es la simulacion de la ejecucion deun programa en codigo G-M que utilizan las maquinas herramientas con ControlNumerico Computarizado. Un CNC de arquitectura abierta permite hacer cam-bios en el hardware de la maquina; el software de uso flexible, implica que puedehaber integracion de varios procesos particulares para obtener un proceso generalde mayor complejidad, que permita por ejemplo cambiar de operacion torneado afresado, Cruz et al. 2000 [16] y Arriaga et al. 1999 [17].

El interprete de codigos G-M ISO 6983 consiste en un virtualizador de ma-quinado con diferentes ventanas, disenadas especıficamente para visualizar el re-corrido de la herramienta de corte durante la simulacion. En este trabajo multiplessimulaciones de maquinados virtuales son reportadas con la intencion de demos-trar la funcionalidad del interprete disenado en C#. El interprete fue desarrolladoen Microsoft.NET Framework 4.5 C#. Permitiendo una compatibilidad con lascomputadoras que tienen como sistema operativo Windows. Este interprete decodigos G-M ISO 6983 tiene una aplicacion para la identificacion de la profun-didad de corte de manera visual y numerica, esto fue agregado con el objetivode denotar que tan profundo es el maquinado simulado. El usuario sera capaz dediferenciar como es el maquinado, donde se encuentra la parte mas profunda ydonde la parte menos profunda de la figura virtual. Rojo es la parte mas profundadel maquinado, verde representa la parte intermedia y finalmente el azul indica laparte superficial de la pieza maquinada. El diseno del interprete de codigos G-MISO 6983 conlleva un complejo sistema de lectura de codigos.

En este trabajo se incluye el proceso de desarrollo de la plantilla GUI y elprograma de control del interprete de codigos G-M ISO 6983. La plantilla GUIcorresponde a la interfaz entre hombre y maquina. Otro aspecto importante en eltrabajo reportado es el proceso acerca de como se realiza la graficacion 3D delos movimientos virtuales. Usando la ingenierıa de OpenGL para el renderiza-do y visualizacion 3D de las trayectorias y formas en la pieza maquinada. Estavisualizacion es una virtualizacion de una pieza mecanica.

Page 21: I P ´ NACIONAL

CAPITULO 1. INTRODUCCION 4

1.1 DEFINICION DEL PROBLEMAEn CICATA unidad Queretaro se encuentra en desarrollo un CNC para torno-

fresador. Una parte importante en el proyecto es la virtualizacion de maquinadosmediante software de uso flexible ejecutable en PC, en una plataforma creada enWindows, que permita validar por simulacion, la funcionalidad de los programasen codigo G-M, antes de la ejecucion fısica del maquinado.

Hoy en dıa existe una apremiante exigencia de agilizar y mejorar los procesosde mecanizado, ya que estos se han convertido en una necesidad indispensableen las cadenas de produccion de diferentes tipos de industrias. Es de mucha im-portancia la adquisicion, aplicacion y creacion de conocimiento relacionado conlos procesos de maquinado, los sistemas informaticos que los generan y controlan.

Considerando los comentarios expuestos en el apartado anterior, se considerala elaboracion de un software simulador y virtualizador de mecanizados, medianteel uso del conjunto de instrucciones del codigo G-M, este interprete-virtualizadordebe estar ıntimamente relacionado a la visualizacion mediante el uso de las li-brerıas de OpenGL y el uso de C# como plataforma de programacion, capaz deadaptarse al torno-fresador en desarrollo.

Page 22: I P ´ NACIONAL

CAPITULO 1. INTRODUCCION 5

1.2 JUSTIFICACIONLa demanda de flexibilidad en los sistemas CNC se incremento a finales de

1970 y principios de 1980, como consecuencia del consumo masivo. Tambien sedebio al rapido crecimiento en el mundo de la industria. Lo anterior permite lafabricacion a gran escala de piezas mecanicas. Posteriormente hacia la consolida-cion del entorno de fabricacion flexible. Se encontro que las maquinas CNC eranun recurso crıtico e imprescindible, debido a su capacidad de ser reprogramadaspara producir diferentes partes, Xu et al. 2006 [18].

Las maquinas de control numerico computarizado CNC, juegan un papel devital importancia en el crecimiento del mundo de la industria, desde su nacimientohasta su posterior desarrollo. La tecnologıa CNC utiliza computadoras y softwarede Manufactura Asistida por Computadora (CAM) para la generacion, analisis yejecucion de control secuencial, Latif et al. 2016 [19]. En el estudio del controlnumerico computarizado se considera que las maquinas CNC se emplean en mu-chas industrias con diferentes controladores y multiples capacidades para diversasaplicaciones tales como: torneado, taladrado, fresado, envasado, soldadura de tu-bos y corte robotico, Groover et al. 2007 [20].

Para entender la importancia de los interpretes de codigos G-M, relacionadoscon el control numerico y las maquinas CNC, es clave tener claro el rol que jueganestos. Debido a la importancia de los interpretes dentro del campo de las maqui-nas herramientas, han sido ampliamente estudiados debido a la notable aplicacionde estos en el control numerico. Generalmente los interpretes de codigo G-M ad-quieren las instrucciones, directamente de la International Standards Organization(ISO) y lo traduce en comandos internos para mover herramientas y ejecutar fun-ciones auxiliares en un sistema CNC, Ertell et al. 1969 [21].

Con la intencion de satisfacer y superar la demanda de tecnologıa de controlnumerico, se desarrolla la norma ISO 6983, ISO 1994 [22]. Se ha comprobadoque el estudio, desarrollo e implementacion de interpretes para CNC de arquitec-tura abierta son exitosos al momento del montaje, son facilmente adaptables a lasmaquinas CNC creadas de manera amateur y de facil manipulacion, ya que fueroncreadas segun las necesidades del usuario, Carbonell et al. 2011 [23]. La constan-te necesidad de tecnologıa creada de manera local, ya sea en el area de trabajo,empresa u organizacion, motiva a la creacion de esta, sujeta a los requerimien-tos que el entorno indique. Con la intencion de solventar estos requerimientos de

Page 23: I P ´ NACIONAL

CAPITULO 1. INTRODUCCION 6

desarrollo de interpretes de codigos G-M, especıficos para una maquina herra-mienta personalizada, muchos interpretes han sido desarrollados con un enfoquepara STEP-NC, Hamilton et al. 2014 [24] y Rauch et al. 2012 [25]. Estos interpre-tes convierten los datos de STEP-NC en codigos G y a su vez en operaciones demaquinados reales y virtuales, Xu et al. 2006 [18]. Existen una gran variedad deenfoques y disenos que han sido llevados a cabo por varios investigadores dentrodel area de los interpretes de codigo G-M, orientados a la virtualizacion de ma-quinados, tal como lo indican: Weck et al. 2001 [26], Newman et al. 2003 [27],Nassehi et al. 2003 [28] y Wang et al. 2007 [29]. Obedeciendo la tendencia en lacreacion de interpretes que satisfacen las necesidades de maquinas-herramientascon un diseno especıfico, se decide crear un virtualizador de maquinados de CNC.

Un estudio reciente, Nittler et al. 2016 [30], demuestra la posibilidad de me-canizar una familia completa de geometrıas de superficie con cierta complejidad,proporcionando mayor precision y versatilidad en la seleccion de herramientas,control de altura, rutinas de desbaste/acabado, etcetera. Estas caracterısticas lasposee un CNC comercial, el cual entre otras desventajas representa un costo ele-vado para los pequenos productores de piezas mecanicas.

El presente trabajo contempla contribuir a la investigacion cientıfica y a usua-rios potenciales que podran hacer uso del interprete/virtualizador de maquinados,los cuales podrıan ser desarrolladores de CNC de arquitectura flexible, sin de-pender de las empresas que fabrican maquinas-herramientas. Esto se logra con eldesarrollo y la aplicacion de un virtualizador de maquinados en un CNC de ar-quitectura abierta y software de uso flexible. Tambien pretende beneficiar a losusuarios del torno-fresador existente en CICATA unidad Queretaro, permitiendo-les trabajar y entrenarse en una computadora antes de utilizar torno-fresadora decontrol numerico computarizado. Ya que de una manera virtual el alumno podraver las trayectorias de la herramienta antes de llevarlas a cabo fısicamente, contri-buyendo a evitar el desperdicio de recursos y posibles danos en el torno-fresador.Tambien, la presente tesis busca contribuir al ahorro de recursos economicos, alno adquirir costosos programas de simulacion que no se adaptan al tipo de pro-gramacion de la maquina en cuestion. En esta tesis se presenta una nueva formade abordar el diseno y la creacion de interpretes/virtualizadores de codigos G-M.Se considera una nueva forma de abordar los interpretes de codigos G-M debi-do a la incorporacion de modulos de identificacion visual, para la apariencia ydeterminacion de la calidad de las superficies maquinadas. Tambien debido a laincorporacion de estimaciones teoricas para la determinacion de la rugosidad.

Page 24: I P ´ NACIONAL

CAPITULO 1. INTRODUCCION 7

1.3 OBJETIVOS1.3.1 OBJETIVO GENERAL

• Desarrollar un interprete/virtualizador de codigos G-M de uso flexible pa-ra la interfaz hombre-maquina, que nos permita visualizar en 3D, el efectodel corte sobre la pieza de trabajo en maquinas - herramientas de controlnumerico computarizado. Simulando las operaciones programadas en codi-go G-M para la generacion de las piezas maquinadas y con capacidad deexportacion a una maquina real.

1.3.2 OBJETIVOS ESPECIFICOS

• Definir los requerimientos semanticos, sintacticos y lexico, para el correctofuncionamiento del interprete de codigos G-M.

• Realizar el diseno conceptual de la GUI.

• Elaborar los algoritmos de programacion para el funcionamiento de la GUI.

• Incorporacion de ventanas de control.

• Elaborar los algoritmos de programacion para la visualizacion grafica de losmovimientos virtuales y puesta en practica dentro de la interfaz.

• Desarrollo e implementacion mediante programacion en C# de graficos enel software para la visualizacion de movimientos y operaciones de fresado.

• Integracion de todos los modulos creados.

• Validacion del funcionamiento del interprete de codigos G-M.

• Incorporacion de un modulo para la identificacion grafica de la profundidadde corte.

• Incorporacion de un modulo para la aproximacion numerica de la profundi-dad de corte.

• Incorporacion de un modulo para la evaluacion grafica de la rugosidad.

Page 25: I P ´ NACIONAL

CAPITULO 1. INTRODUCCION 8

1.4 ESTADO DEL ARTEDurante los ultimos anos, se ha abordado el tema de la virtualizacion de los

movimientos de la herramienta en una maquina CNC. Se puede ver la gran va-riedad de temas y aplicaciones relacionadas con la virtualizacion, ası de las di-ferentes plataformas de programacion usadas, las cuales van desde Java, pasandopor C++ hasta llegar a la plataforma usada en este trabajo C#. Llama la atencionlas formas en que se han ocupado los interpretes de codigo G-M, algunos aplicanmodelados matematicos tratando de darle aplicacion real al comportamiento dediferentes fenomenos fısicos, por ejemplo la rugosidad Radovanovic et al. 2006[31], profundidad de corte Wang et al. 2015 [32], Zhang et al. 2007 [33], Koman-duri et al. 1998 [34], desgaste de la herramienta de corte, Rimpault et al. 2017[35], y otros fenomenos mecanicos, Crescelda et al. 2016 [36], ası como su res-pectiva validacion virtual, hasta la incorporacion de algunos modulos, tratando deequiparar las caracterısticas de estos a software comerciales presentes en el mer-cado. En diversos trabajos presentados en revistas cientıficas internacionales, esposible encontrar elementos referentes a interpretes de codigos G-M disenados endiferentes plataformas de programacion. De acuerdo al trabajo de Perez-Vidal etal. 2003 [37], es posible crear una aplicacion que sea capaz de leer e interpretar elcodigo del programa CNC que controla la maquina, calcular la posicion, el movi-miento de los componentes y de esta manera traducir la secuencia de operacionesdel mecanizado en operaciones booleanas. Por otro lado existen trabajos como elde Zhou et al. 2003 [38], donde modelos de simulacion en un CNC virtual puedenser generados usando software CAD comercial, en este trabajo de investigacionse propone el uso de la tecnica STL como modelo comun en las simulaciones demaquinado virtuales.

Durante el desarrollo de los interpretes de codigos G-M, que virtualizan ma-quinados, podemos encontrar el uso de diferentes tecnicas de visualizacion y deaproximacion de formas, ejemplo de esto es el trabajo reportado en 2003 por Puiget al. [39], donde el metodo propuesto para visualizacion utiliza operaciones boo-leanas dinamicas, las cuales reconstruyen secciones transversales de la herramien-ta de corte y de esta manera reconstruye el modelo 3D. De acuerdo al trabajopublicado por Sung-Lim et al. 2005 [40], es viable crear visualizaciones 3D demaquinados CNC, mediante el uso de las librerıas de OpenGL, en un entorno deprogramacion C++. Loftus et al. 2005 [41], publica un artıculo, donde una interfazgrafica (GUI) es creada, mediante software de uso comercial y la incorporacionde ciertos algoritmos de control, con la intencion de valorar y determinar la cali-

Page 26: I P ´ NACIONAL

CAPITULO 1. INTRODUCCION 9

dad de las superficies maquinadas.

Brecher et al. 2005 [42] y Erkorkmaz et al. 2006 [43], respectivamente, pro-ponen una nueva arquitectura para los interpretes/virtualizadores de codigos G-My tambien una nueva tecnica para la creacion de un analizador de codigos G-M.Crean un ambiente de simulacion, donde una herramienta virtual que hace las ve-ces de un cortador virtual, es programada en el interprete, mediante el uso de pa-queterıas de manipulacion de graficos. En este interprete se procesa un archivo enformato de texto el cual es el codigo G-M, escrito en un formato (ISO 6983). Otroimportante ejemplo de creacion de interprete/virtualizador de codigos G-M, es eltrabajo publicado por Rodrıguez et al. 2014 [13], donde menciona que medianteel uso de la plataforma de Microsoft visual basic, se puede crear una plantilla parauna interfaz grafica, la cual sera usada para el interprete, tambien usa diferentestecnicas de programacion e integracion de modulos para la virtualizacion grafica.

Figura 1.1: Ejemplo de interprete/virtualizador CNC. Fuente Brecher et al. 2005 [42].

La figura 1.1 representa un virtualizador creado por Brecher et al. 2005 [42],donde se es creado un gran numero de analizadores de codigos, realizando tam-bien la virtualizacion de los maquinados con sus respectiva programacion. Tam-bien es posible observar que una herramienta de corte virtual es integrada alinterprete.

Page 27: I P ´ NACIONAL

CAPITULO 1. INTRODUCCION 10

(a) Interface principal durante el proceso (b) G-code parsing en funcionamiento

Figura 1.2: Interfaz principal del interprete. Fuente Rodrıguez et al. 2014 [13].

En el trabajo de investigacion reportado por Rodrıguez et al. 2014 [13] esdisenado un prominente sistema de G-code parsing, como se puede observar enla figura 1.2 (b), esto se logra segun lo reportado mediante estrictas y complejosalgoritmos programados en el interprete que analizan y filtran cualquier caracterno permitido dentro de la semantica y la sintaxis soportada por el software, estamisma tendencia se sigue en el proyecto que se aborda en la presente tesis.

Seung-Jun et al. 2007 [44], Zhang et al. 2006 [45], Simchi-Levi et al. [46] yWeck et al. 2001 [47], reportan en sus respectivas investigaciones, el uso y disenode diferentes interpretes/virtualizadores de codigos G-M. Reportan la incorpora-cion del protocolo de lenguaje STEP-NC, para especificar como hacer una piezamecanica y que pieza se esta haciendo. Proporcionan detalles de dicho proceso,los que son visibles dentro de la interfaz grafica. Por otro lado, la manipulacion dela geometrıa de los maquinados son consideradas en la visualizacion y en la pro-gramacion de los modulos que los mostraran. Las caracterısticas de fabricacionde la pieza mecanizada, son mostradas en los trabajos de investigacion menciona-dos, pues estas son el elemento principal de la descripcion geometrica de una lapieza, ya que ofrecen detalles acerca de la forma, composicion y demas topicosde interes relacionados con la pieza mecanica.

En la figura 1.3, se presenta el analisis de reconocimiento para ciertos patro-

Page 28: I P ´ NACIONAL

CAPITULO 1. INTRODUCCION 11

nes en el codigo insertado, en el interprete reportado por Seung-Jun et al. 2007[44]. Esto es de suma importancia ya que en la creacion del interprete que estadescrito en este trabajo de tesis, se diseno un analisis lexico-semantico-sintacticomuy parecido al reportado por Seung-Jung.

(a) Identificacion de parametros. (b) Agrupacion de informacion en bloques

Figura 1.3: G-code parsing en funcionamiento. Fuente Seung-Jun et al. 2007 [44].

En los trabajos de investigacion reportados por Butala et al. 2008 [48] y Sooriet al. 2013 [49], disenan modelos digitales de un sistema CNC real. Se proponenuna gran cantidad de modelos del sistema a virtualizar y posteriormente integrar.En el proceso de desarrollo, se recrean mediante la programacion en C++ y eluso de librerıas de (OpenGL) figuras virtuales de objetos maquinados, aplicandorenderizacion para el tratamiento graficos de las figuras. Se propone la creacionde un interprete/virtualizador de codigos G-M ISO6983, de uso flexible para unainterfaz hombre-maquina. Esto nos permite visualizar en 3D el efecto del cortesobre la pieza de trabajo en maquinas - herramientas de CNC, contribuyendo deesta manera a la simulacion de operaciones programadas en codigo G-M.

Page 29: I P ´ NACIONAL

Los que se enamoran de la practica sin la teorıa son comolos pilotos sin timon ni brujula, que nunca podran saber adonde van.

Leonardo di ser Piero da Vinci 1452-1519

2Fundamentacion teorica

Se presenta un breve analisis de las librerıas de OpenGL,muestra la compilacion de los principales software para lavirtualizacion de maquinados en el mercado y menciona suscaracterısticas. Se realiza la presentacion de las tecnicas de vi-sualizacion de objetos tridimensionales. Muestra la descripcionde las formas principales de manipulacion de objetos virtua-les y por ultimo se enlistan los estandares fundamentales paralenguaje de programacion CNC.

Resumen

12

Page 30: I P ´ NACIONAL

CAPITULO 2. FUNDAMENTACION TEORICA 13

2.1 INGENIERIA OPENGL

OpenGL es una librerıa grafica orientada al diseno de objetos virtuales entercera dimension, tiene la capacidad de renderizar una gran cantidad deobjetos virtuales ası como convertirlos en buffers de datos, para su poste-

rior procesamiento. La implementacion de las librerıas de OpenGL en el ambientede Microsoft, permite a los programadores crear disenos con una alta calidad enimagen, procesamiento y mayor apego a la realidad. Una de las bondades de estaslibrerıas es la animacion en tres dimensiones, Chen et al. 2010 [50]. Las librerıasOpenGL fueron disenadas para que haya compatibilidad en los principales siste-mas operativos comerciales, tales como Microsoft, Linux, Mac OS, etcetera, estacaracterıstica facilita la importacion y exportacion de datos entre sistemas opera-tivos donde intervengan disenos OpenGL, Wright et al. 2007 [51].

El uso de las librerıas de OpenGL dentro de la creacion de la interfaz grafi-ca del interprete de codigos G-M es de suma importancia, ya que estas puedenfuncionar de manera optima en un ambiente de programacion como el de Win-dows. Las librerıas de OpenGL fueron disenadas para el uso en plataformas comoC/C++, poseen facilidad de adaptacion en la programacion de comandos dondeintervengan las librerıas. OpenGL tiene una gran versatilidad y potencia en la ma-nipulacion de graficos y renderizado.

OpenGL se divide en tres partes fundamentales llamadas funciones principa-les. Las funciones contribuyen directamente al diseno 2D/3D que el usuario deseerealizar, proporcionan interfaces, algunas integradas y otras independientes de laplataforma, con el proposito de crear ventanas y aplicaciones totalmente portables.Wright et al. 2007 [51] las funciones principales son:

• La librerıa OpenGL: Contiene todas las librerıas relacionadas al manejo degraficos en OpenGL.

• La librerıa GLU: Por su acronimo en ingles (OpenGL Utility Library), tam-bien llamada librerıa de utilidades, proporciona acceso relativamente rapidoa las funciones y operaciones mas comunes de OpenGL, a traves de la eje-cucion de comandos de bajo nivel.

• La librerıa GLX: Por su acronimo en ingles (OpenGL Extension to the XWindow System) es una librerıa para sistemas con una cantidad de X ven-tanas, especıficamente para Windows.

Page 31: I P ´ NACIONAL

CAPITULO 2. FUNDAMENTACION TEORICA 14

2.2 SISTEMAS CAD/CAMEl diseno y la fabricacion asistido por computadora ( (CAD)/CAM), son dis-

ciplinas relacionadas con la creacion de realidad virtual y se especializan en elestudio del uso de sistemas informaticos. Utiliza los sistemas CAD/CAM comoherramienta de soporte, para procesos relacionados con el diseno, manufactura yfabricacion de productos maquinados. Estas disciplinas se han convertido hoy endıa en un recurso indispensable para la industria, debido al mejoramiento de la ca-lidad de sus productos, disminucion de costos, tiempo de fabricacion, producciony diseno, Yusof et al. 2015 [52] y Latif et al. 2016 [53].

El modelado de piezas mecanicas consiste en expresar mediante ecuacionesmatematicas el comportamiento, estructura o fenomenos relacionados a un siste-ma real. La mayor parte de las ecuaciones matematicas, expresan relaciones com-plejas en una, dos o tres dimensiones, Saksala et al. 2017 [54]. El diseno asistidopor computadora CAD, es la tecnologıa que esta ıntimamente relacionada con lamanipulacion de graficos mediante computadora. La disciplina CAM, es usadapara la gestion y control de operaciones en plantas industriales, relacionados conla fabricacion de productos de uso general.

Actualmente la gran mayorıa de los trabajos industrializados y que estan rela-cionados con la fabricacion en serie, son simulados, con el objetivo de supervisarsu comportamiento de manera previa a la fabricacion. Hoy en dıa, debido al me-joramiento de la tecnologıa de procesamiento computacional, es posible realizarsimulaciones, virtualizaciones y adaptaciones de procesos de maquinado verda-deramente fidedignas y apegadas a la realidad.

La mayorıa de las empresas que utilizan procesos de maquinados dentro de lafabricacion de sus productos, poseen software de maquinado virtual propio. Sondesarrollados por su planta de trabajadores, disenados especıficamente para losprocesos de produccion propios, los cuales han llegado a ser muy sofisticados. Enla actualidad, la tendencia en lo referente a la produccion masiva, es la utilizaciondel modelado 3D, como herramienta efectiva para la virtualizacion de maquinados[55]. El modelado 3D esta ıntimamente relacionado con los proceso CAD/CAM.

Page 32: I P ´ NACIONAL

CAPITULO 2. FUNDAMENTACION TEORICA 15

2.3 SOFTWARE CAD/CAM EN LA INTERPRETA-CION Y VIRTUALIZACION DE MAQUINADOS CNC

Ejemplos de software CAD/CAM mas usados son ANSYS y ABAQUS. Exis-ten diferentes funciones para este tipo de software, una de las mas destacadas eimportantes sigue siendo el maquinado virtual. Se ha incluido una lista de losmas importantes software utilizados comercialmente hoy en dıa, ası como suscaracterısticas mas notables en el campo de la interpretacion y virtualizacion. Ca-be mencionar que no es adecuado comparar un software que esta especıficamen-te disenado para realizar simulacion de alta calidad, con un interprete-simulador(CNC), que esta limitado unicamente a cubrir una fase concreta para la que fue

creado y que un simulador CAD/CAM puede asumir.

2.3.1 VIRTUALIZACION EN ALPHACAM

ALPHACAM es un software CAD/CAM, para manufactura, especialmenterelacionado con los cortes en madera, metal y abrasivos. Este software incluye di-ferentes modulos de maquinado, los cuales son: enrutamiento, fresado y torneado,los cuales van desde los dos ejes hasta los cinco ejes. Se especializa en procesosde grabado 3D y anidado. El software tambien posee un modulo dedicado al tala-drado, posicionando a este software como versatil y de facil manejo. En la figura2.1, se puede apreciar ejemplo del uso de este software.

Algunas de las grandes ventajas que ALPHACAM posee son: el uso del espa-cio 3D, funciones de dibujado 2D y que trabaja en un espacio de tres dimensio-nes. Para la correcta visualizacion hace uso de coordenadas homogeneas (poseencuatro dimensiones), esto le da un valor agregado al sistema de virtualizacion deALPHACAM, ya que hace un mejor uso de las capacidades graficas del software[56].

2.3.2 INTERPRETACION DE CODIGOS G-M EN LINUXCNC

LinuxCNC es un software para maquinado virtual que es compilado en LI-NUX. Es un software usado para el control de maquinas herramientas, el cualpermite la programacion de alto nivel, programacion ISO estandar y parametrica.Es gratuito y de codigo fuente abierto (open source). LinuxCNC esta bajo la li-

Page 33: I P ´ NACIONAL

CAPITULO 2. FUNDAMENTACION TEORICA 16

Figura 2.1: Ejemplo de maquinado en Alphacam. Cortesıa pagina oficial de Alphacam.

cencia de General Public License (GPL) y Lesser General Public License (LGPL).

LinuxCNC permite ejecutar programas con sistemas CAM, llegando a contro-lar hasta 9 ejes de forma simultanea en una maquina de control numerico, siendoeste uno de sus principales aplicaciones de trabajo. Ofrece una interfaz grafica, uninterprete de codigos G-M, un planeador de movimientos, entre otras caracterısti-cas mas.

En la figura 2.2 se puede apreciar la ventana principal de LinuxCNC, usa elllamado TkLinuxCNC como compilador grafico, el cual esta escrito en Tcl y usael Tk toolkit para mostrar estas visualizaciones graficas, el toolkit esta dentro de lapaqueterıa propia del software, algunas acciones que se pueden correr en el TkLi-nuxCNC, pueden ser ejecutadas desde el teclado.

2.3.3 CATIA EN UN ENTORNO DE VIRTUALIZACION DE MAQUINADOS

Este software fue desarrollado por la empresa Dassault Systemes en 1981.Nace originalmente para dar soporte a la industria aeronautica y como competen-cia directa de SolidWorks. CATIA provee al usuario una solucion integral parael maquinado de piezas mecanicas con un proposito comercial. CATIA es capaz

Page 34: I P ´ NACIONAL

CAPITULO 2. FUNDAMENTACION TEORICA 17

Figura 2.2: Interface principal de LinuxCNC, realizando un maquinado. Cortesıa paginaoficial de LinuxCNC.

inclusive de simular el mecanizado en plantas de fabricacion virtual, tal comocualquier interprete de codigos G-M comerciales. Ofrece la oportunidad no sola-mente de modelar cualquier sistema, si no tambien que sea lo mas apegado a larealidad. La ultima version estable del programa es la V6R2013. La versatilidadcon la que cuenta este software, le permite ser compilado usando diferentes siste-mas operativos, tales como Unix, Linux y Windows [58].

2.3.4 VISUALIZACION DE MAQUINADOS EN CAMWORKS

CAMWorks es un software para maquinado virtual, disenado para simularoperaciones CNC [59]. Fue creado para tener cobertura en diferentes partes dela industria, pero especıficamente para manufactura. CAMWorks disena rutas demaquinado, estos pueden ser para tornos o fresadora. Una de las ventajas ofrecidaspor este software es que posee ciclos de corte los cuales permiten trayectorias rapi-das y con el mınimo margen de error. Estos ciclos de mecanizado le proporcionana la herramienta de corte, una proteccion extra, contra las posibles colisiones. Elmanejo de este software es relativamente sencillo, ya que contiene operaciones de

Page 35: I P ´ NACIONAL

CAPITULO 2. FUNDAMENTACION TEORICA 18

maquinado asociativo y parametrico. Otra de las ventajas que ofrece este softwarees la perfecta visualizacion que contrasta directamente con sus analogos.

2.3.5 MASTERCAM COMO INTERPRETE/VIRTUALIZADOR

Mastercam es un software CAD/CAM que cuenta con una gran popularidaddentro de las maquinas-herramientas y de control numerico. La ultima versioncon la que cuenta mastercam es la X5M1. El software posee diferentes tipos demodulos para aplicaciones especıficas, tal como el modelado 3D con produccionde dibujos 2D. Mastercam interpreta y lee disenos CAD, realiza la manufacturacon operaciones en maquinas herramientas, Castillo et al. 2010 [60]. Uno de losfactores que han influido en la gran aceptacion de mastercam como uno de lossoftware CAD/CAM mas adecuados para el maquinado virtual, es su versatilidad,por ejemplo posee una compatibilidad con SolidWorks.

2.4 VISUALIZACION GRAFICA DE OBJETOS TRI-DIMENSIONALES

Actualmente, la gran mayorıa de los trabajos de produccion en serie o a granescala, son simulados previo a su fabricacion. La simulacion tiene el objetivo desupervisar con antelacion el comportamiento ya sea estructural o funcional delproceso. Esta tendencia se nota principalmente en la industria metal-mecanica.Hoy en dıa existen diversas formas de comprobar el estado final de una piezamecanica en base a su mecanizado, se pueden comprobar factores que modificanel resultado, tales como, el desgaste de la herramienta de corte, temperatura, posi-bles colisiones, deformaciones en la pieza y otros demas errores, Rimpault et al.2017 [35].

Un desafıo enfrentado al representar objetos virtuales en 3D, es el posiciona-miento apropiado de las piezas, Nakamura et al. 1996 [61], ya que se tiene quedisenar algoritmos que permitan la rotacion, traslacion y cambio de escala en lascoordenadas en la piezas disenadas.

2.4.1 POSICIONAMIENTO DE OBJETOS VIRTUALES EN UN ESPACIO TRI-DIMENSIONAL

Es bien conocido que para lograr un correcto posicionamiento de las piezasvirtuales que se disenan en cualquier tipo de simulador, se deben cubrir ciertos

Page 36: I P ´ NACIONAL

CAPITULO 2. FUNDAMENTACION TEORICA 19

requerimientos, los cuales deben incluirse en forma de algoritmos de programa-cion dentro del cuerpo del programa del interprete. Estos requerimientos son desuma importancia ya que proporcionan al simulador propiedades que lo definencomo tal, estas caracterısticas son: transformacion del origen, cambio de escala,rotacion alrededor del eje X, rotacion alrededor del eje Z y rotacion alrededor deleje Y, Nakamura et al. 1996 [61].

2.4.2 TRANSFORMACION DEL ORIGEN

Se toma como un hecho de que una pieza u objeto esta posicionado en unsistema de coordenadas local (x, y, z), por lo tanto sı el sistema de coordenadasoriginal se traslada a otro sistema de referencia de la siguiente manera (xa, ya, za).Segun Shoichiro Nakamura et al. 1996 [61], las nuevas coordenadas serıan:

x1 = x+ xa (2.4.1)

y1 = y + ya (2.4.2)

z1 = z + za (2.4.3)

Donde x1, y1 y z1, representan el nuevo sistema de coordenadas, donde el ob-jeto estara posicionado, despues de que el origen haya sufrido un cambio. Con laimplementacion de estas ecuaciones en un algoritmo de programacion dentro delvisualizador, hace posible la traslacion de la figura virtual de una manera eficaz.

2.4.3 CAMBIO DE ESCALA

Una de las operaciones basicas en la manipulacion de objetos virtuales es elcambio de escala o tambien llamado zoom. Se crea debido a la necesidad de au-mentar o disminuir el tamano del diseno que se esta visualizando en el interprete.Para poder integrar esta caracterıstica a las cualidades de cualquier interfaz grafi-ca, hay que realizar un cambio en la escala del sistema original definido, por unfactor de escala α. En otras palabras hay que realizar una multiplicacion por elvalor de la escala deseada, las nuevas coordenadas en el nuevo sistema definidoson: Nakamura et al. 1996 [61]

x1 = αx (2.4.4)

Page 37: I P ´ NACIONAL

CAPITULO 2. FUNDAMENTACION TEORICA 20

y1 = αy (2.4.5)

z1 = αz (2.4.6)

Como se menciona en la seccion 2.4.2, x1, y1 y z1, representan el nuevo sis-tema de coordenadas, despues de haber enfrentado un cambio en sus parametros.Para el caso del valor α, este representa un valor numerico, por el cual se multi-plicara el valor original x1 y dara como resultado la nueva posicion αx.

2.4.4 ROTACION ALREDEDOR DEL EJE X

Se puede definir la rotacion como el movimiento de cambio en la orientacionde un objeto solido virtual, dado un punto cualquiera de este objeto solido, estepermanece a una distancia constante de un punto fijo. Para describir la orientacionde un cuerpo en un espacio virtual, se le asigna a este un sistema de coordenadasrelacionado al cuerpo y luego se describe la relacion espacial entre el mencionadosistema de coordenadas y el nuevo sistema de referencia expresado en coorde-nadas. Si el sistema original se gira en sentido anti-horario con una cantidad deθ grados alrededor del eje X, las coordenadas de ese nuevo sistema quedarıanexpresadas de la siguiente forma: Nakamura et al. 1996 [61]

x1 = x (2.4.7)

y1 = cos(θ)y − sin(θ)z (2.4.8)

z1 = sin(θ)y + cos(θ)z (2.4.9)

Por ejemplo con el uso de la librerıa de OpenGL para rotar un objeto virtual,se tiene una funcion de alto nivel que construye una matriz de transformacion lacual es necesaria para efectuar la rotacion y despues la multiplica por una matrizactiva, esta instruccion es llamada glRotate. La estructura de dicha funcion llevacomo parametros el angulo a rotar la cual tiene un formato de grados y sentidohorario, y despues X, Y y Z del vector sobre el que se quiere rotar el objeto virtual.

2.4.5 ROTACION ALREDEDOR DEL EJE Y

Si se pretende realizar una rotacion alrededor del eje Y, el sistema donde seencuentra la figura virtual, se debe girar en sentido anti-horario y esta rotacion

Page 38: I P ´ NACIONAL

CAPITULO 2. FUNDAMENTACION TEORICA 21

debe ser expresada en grados, tal rotacion afectara a la expresion y de esta maneradebera ser incluida en la programacion del algoritmo de control del interprete,estas nuevas coordenadas seran: Nakamura et al. 1996 [61]

x1 = sin(θ)z + cos(θ)x (2.4.10)

y1 = y (2.4.11)

z1 = cos(θ)z − sin(θ)x (2.4.12)

2.4.6 ROTACION ALREDEDOR DEL EJE Z

Usualmente cuando se requiere realizar una rotacion alrededor del eje Z, elsistema original se debe girar en sentido anti horario a traves del eje Z, las nuevascoordenadas que expresarıan dicha rotacion tendrıan la siguiente forma: Nakamu-ra et al. 1996 [61]

x1 = cos(θ)x− sin(θ)y (2.4.13)

y1 = sin(θ)x+ cos(θ)y (2.4.14)

z1 = z (2.4.15)

2.5 MODELADO DE UNA PIEZAEl modelo tridimensional es aquel que muestra una imagen o elemento en

una forma que parece estar fısicamente presente con una estructura designada.Basicamente, permite que los elementos que parecen planos a la vista humana, semuestren en una forma que permita que se representen en varias dimensiones. Eltermino tercera dimension, en este trabajo de tesis, hace alusion a un objeto queesta siendo descrito o mostrado, tiene tres dimensiones las cuales son: ancho, altoy profundidad. Por lo regular se disena, en 2D o 3D, la pieza que se desea obtener,esto usualmente se realiza en un software CAD, con los requerimientos deseados

Page 39: I P ´ NACIONAL

CAPITULO 2. FUNDAMENTACION TEORICA 22

por el usuario, posteriormente en el software se obtendra el codigo G-M, que des-cribira todas las caracterısticas propias del diseno que se ha creado, Wright et al.2007 [51].

La fase de modelado es fundamental para la obtencion de buenos resultadosy establecer los requerimientos iniciales para la visualizacion grafica. Ası comotambien la especificacion de las herramientas a utilizar, el tipo de material y evi-dentemente, las medidas que componen la forma. En esta fase tambien es muyimportante el esclarecimiento de la apariencia del entorno virtual, por ejemplolas medidas del cortador, caracterısticas necesarias para la apariencia de la figuravirtual como el sombreado y mallado, y tambien el tipo de renderizado a utilizar,tarea que se simplifica en su comprobacion gracias a la simulacion del modelo.

2.5.1 3D COMO LA UNION DE 2D + PERSPECTIVA

La mayorıa de los dibujos que dan la impresion de ser en tercera dimensionson en realidad un dibujo en 2D. La manipulacion de la perspectiva proporcionala apariencia de estar dibujado en tres dimensiones, Nakamura et al. 1996 [61]. Esprecisamente este efecto del que se vale el modelado para realizar la visualizacionen tercera dimension. Con la apropiada creacion de algoritmos de programacion,donde queden expresados cada una de los comportamientos deseados, dentro delentorno virtual. El final del proceso de modelado supuesto en esta seccion suponela obtencion de la Especificacion para Intercambio Inicial de Graficos (IGES). Losdatos de tipo IGES definiran la geometrıa de la pieza, textura y estructura. A partirde la cual se podran realizar los analisis correspondientes en la siguiente etapa delproceso. Pudiendo ser estudio mecanico mediante elemento finito (FEA), analisisestructural o simplemente estudios de formas, apoyandose en la abstraccion de larepresentacion a favor de datos medibles y computables.

2.6 ESTANDARES PARA EL CONTROL CNCExiste una gran variedad de controladores existentes en el mercado hoy en

dıa. Van desde las normalizaciones europeas, pasando por las estadounidenseshasta llegar a las asiaticas. Se mencionan los principales protocolos de programa-cion para maquinas-herramientas CNC, los cuales son: ISO 6983 (InternationalStandarization Organization) y EIA RS274 (Electronic Industries Association),Jimenez et al. 2010 [62].

Page 40: I P ´ NACIONAL

CAPITULO 2. FUNDAMENTACION TEORICA 23

2.6.1 ESTANDAR ISO/EIA

Segun Cruz et al. 2000 [16], para la programacion ISO existe un teclado consus comandos respectivos, y las letras N, G, F, etc. Los comandos en la normali-zacion ISO tienen una instruccion predeterminada, la cual no cambiara, esto re-presenta una ventaja para el usuario/programador, que pretenda llevar a cabo acti-vidades, valiendose de la programacion ISO. Las instrucciones ISO permiten a lamaquina de control numerico realizar ciertas operaciones especıficas, las cualestiene como proposito ejecutar la instruccion que el usuario/programador desee. Laprogramacion que en la mayorıa de las maquinas de control numerico computari-zado se ejecuta mediante el llamado lenguaje de alto nivel, tiene dos principalesramificaciones, la G (generales) y M (miscelaneas). Es un lenguaje de progra-macion vectorial mediante el que se describen acciones y entidades geometricas,tales como movimientos, cambios de herramienta, velocidad de husillo, etcetera.

2.7 GENERACION DEL PROGRAMA DE MECANIZA-DO

Despues del proceso de obtencion de datos que definen las trayectorias decorte, se procede a realizar la traduccion de la informacion obtenida medianteel analizador lexico-gramatical. Como siguiente paso se traduce a secuencias decodigo interpretables por la maquina-herramienta, mediante la intervencion dealgun software CAD. Despues se producira, una conversion de los puntos quedefinen las trayectorias de corte a los parametros de las instrucciones de interpo-lacion del lenguaje de programacion estandar ISO. El analisis, interpretacion yprocesamiento de todos los datos obtenidos en el proceso generaran, la secuenciade instrucciones ISO que compondran el programa de mecanizado que resulta enla pieza inicialmente disenada y deseada. Solo para ilustrar se puede hacer uso dediferentes tecnicas para la obtencion de la descripcion de las formas de un maqui-nado, ejemplo de esto es el algoritmo de Suzuki et al. 1985 [63]. Este es usadopara encontrar el conjunto de contornos en una imagen. De esta forma poder crearun algoritmo de programacion para despues ser incorporado dentro de un interpre-te. El procedimiento para la creacion del contorno representativo es relativamentesimple, en primer lugar se convierte la imagen a escala de grises, despues se pue-de aplicar el metodo para la obtencion de contornos de la imagen proporcionadapor las librerıas de OpenGL, esto nos permite obtener los contornos de la imagen,dando al usuario pares ordenados de la forma (x,y).

Page 41: I P ´ NACIONAL

La ciencia de hoy es la tecnologıa del manana.Edward Teller 1908-2003

3Desarrollo de un

Interprete/Virtualizador de CodigosG-M con la Normalizacion ISO 6983

Es desarrollado y disenado un interprete/virtualizador de codi-gos G-M. Se definen los requerimientos para la creacion de unanalisis lexico-semantico-sintactico. Se describe la creacion dela interfaz grafica y sus ventanas de control ası como las pro-piedades de estas. Se presenta la creacion de algoritmos parala visualizacion de los maquinados virtuales.

Resumen

24

Page 42: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 25

3.1 ARQUITECTURA DEL INTERPRETE

El interprete de codigos CNC consiste en un software simulador de mecani-zados en tercera dimension, en un entorno virtual. Su funcion es extraerinformacion desde un codigo el cual esta escrito en un formato de tex-

to. El principal objetivo del interprete es convertir la informacion del codigo encomandos para movimientos virtuales. La visualizacion de los movimientos y ma-quinados seran desplegados en una pantalla de computadora. El interprete lee unarchivo de entrada en un formato de texto con una extension .txt, .tap, .ncc, .nc,etcetera; de esta manera se conoce la posicion, tipo de herramienta, velocidad decorte y demas caracterısticas propias del maquinado y convierte esto en aproxi-maciones virtuales de figuras y solidos.

El interprete de codigos CNC emula las funcionalidades y caracterısticas deltorno-fresador antes mencionado, permitiendo la insercion de instrucciones encodigo G-M que componen el mecanizado y muestra el resultado en 3D. El interpre-te de codigos CNC, tiene una gran cantidad de ventanas de control, tales comoarchivo, modo, ejecutar, ejes y lıneas, ayuda, cuadro de visualizacion, zoom, se-leccion, etcetera. Todas estas funciones fueron programadas y desarrolladas enVisual Studio (C)#.

Otras de las funciones del interprete es traducir el codigo G-M que se ha car-gado dentro del mismo y convertir estas instrucciones en movimientos virtuales,como interpolaciones, rotaciones y desplazamientos lineales o circulares. A finde entender como funciona el interprete, es preciso mencionar que una serie dealgoritmos de programacion fueron desarrollados, con el fin de satisfacer las ca-racterısticas de un interprete comercial. El interprete lee codigo ISO 6983 lıneapor lınea en un formato de texto. De esta manera extrae posicion, velocidad decorte de la herramienta, caracterısticas del husillo, tipo de herramienta de corte,color de la lınea, profundidad, entre otra informacion relacionada con el maqui-nado.

3.1.1 REQUERIMIENTOS PARA LA VISUALIZACION DE MAQUINADOS VIR-TUALES EN EL INTERPRETE

Las expresiones regulares dentro del contexto de programacion (regex), sonllamadas expresiones racionales. Son una serie de caracteres que por lo regularforman un patron de busqueda. Son comunmente utilizadas para la busqueda de

Page 43: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 26

patrones dentro de la programacion de algun codigo, en el entorno de programa-cion C. Es posible utilizar este tipo de expresiones mediante la biblioteca estandarincluida en el lenguaje de programacion, utilizando en el inicio del programa me-jor conocido como cabecera la instruccion: <regex>.

Las expresiones regulares, permiten al programador hacer la busqueda y en-contrar porciones especıficas de texto dentro de una cadena de mayor extension decaracteres. El uso de expresiones regulares fue de gran importancia para la crea-cion del analizador gramatical del interprete.

La expresiones regulares son de gran utilidad, pues permiten al programadordescomponer el archivo donde esta escrito el codigo G-M en pequenos bloques yası romper/descomponer estos en palabras individuales. Esto con la intencion deque la estructura lexica y sintactica, sean especificadas para la correcta verifica-cion del archivo. Cada lınea escrita en el codigo G-M tiene un numero de palabrasque empiezan con una letra y siempre son seguidas por un numero, por ejemplo:G01 X30 Y40 Z-5, esta instruccion indica que movimientos va a realizar el ac-tuador, la magnitud en centımetros o metros que se movera el cortador, segun laconfiguracion de la maquina herramienta, ası como la instruccion G-M que efec-tuara el sistema.

A continuacion un ejemplo de instruccion con expresiones regulares, la cualse usa para la busqueda de patrones dentro del analizador del interprete.

1 public void Init ( clsInterprete machineSetup)2 {3

4 {5 mInterprete = machineSetup;6 const string REG NCWORDS = ”[A−Z]([−+]?[0−9]*[\\.,]?[0−9]*)”;7 . . .8

9 mRegWords = new Regex(InsertCommment() + ”[” + skipChars + ”][0−9]?|\\n|”+ REG NCWORDS, RegexOptions.Compiled | RegexOptions.IgnoreCase);

10 // [:\$O]+([0−9]+) Esta sentencia regresara una nueva instruccion paracada etapa

11 . . .12 }13 }

Page 44: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 27

Algunos de los requerimientos basicos, que se deben cumplir en la escritura yestructura del codigo G-M, para la correcta compilacion y verificacion del codigose muestran a continuacion:

Coordenadas absolutas e incrementales: El codigo G-M que se insertara alinterprete, debera hacer uso de las coordenadas absolutas e incrementales, segunsea el caso del programa. Las coordenadas absolutas hacen alusion a un puntofijo absoluto de la pieza, siendo este el punto cero del sistema de coordenadas,un punto en el virtualizador tiene que desplazarse a una coordenada determinadaabsoluta. En el caso de las coordenadas incrementales se refieren a la posicionanterior, se identifican con la letra I.

Inicio de la instruccion: Todas las instrucciones ISO escritas en formato detexto, o tambien llamadas codigo G-M, deben empezar con un identificador N ocon un espacio. Por ejemplo: N01 G02/G03 X5.00 Y12.00 I3.00 J3.00 F. Estodebido a que fue concebido de esta manera durante la programacion inicial delinterprete.

Ambiente tridimensional: Debido a que el resultado de la simulacion de loscodigos insertados tiene que ser una pieza virtual tridimensional, las instruccionesISO tiene que incluir en su estructura coordenadas X, Y, Z. Cada coordenada tieneque poseer un valor numerico despues.

Eliminacion de comentarios: Debido a que durante el analisis-compilacion delcodigo, ciertos caracteres no son reconocidos por la programacion del interprete,es necesario realizar una eliminacion de los comentarios o sımbolos que no estanrelacionados a las instrucciones del codigo G-M. En ocasiones los autores delcodigo G-M, marcan estos con cierta informacion, tal como nombre, fechas, co-mentarios, etcetera, datos que no son necesarios para el procesamiento del codigo.

Sistema metrico: El interprete unicamente es capaz de analizar y procesar uni-dades en el sistema metrico internacional.

Numeracion de las lıneas: Para que el interprete pueda leer e interpretar co-rrectamente, el codigo G-M, es necesario que todas las lıneas de este, esten nume-radas. Es decir, las lıneas que conforman el codigo G-M deben tener un numeroconsecutivo despues de la letra N.

Page 45: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 28

Cadena de valores: El usuario/desarrollador debera confirmar que despues decada variable X, Y, Z existe una cadena de valores. Esto para indicar el movimien-to virtual de una lınea en el maquinado.

3.1.2 CREACION DE UN ANALISIS LEXICO-SEMANTICO-SINTACTICO

Uno de los elementos fundamentales del interprete de codigos G-M, para lacorrecta ejecucion y validacion del codigo que se inserta, es la creacion de unanalizador lexico-semantico-sintactico. Esto tambien permitira la ejecucion delmaquinado virtual. Es necesario transformar cada instruccion en un conjunto deinstrucciones interpretables para la plataforma de programacion que en este casoes C# y simulables dentro de las paqueterıas propias de OpenGL.

3.1.3 DISENO Y DEFINICION DEL ANALISIS LEXICO

El analizador lexico es el encargado de la identificacion de los token permiti-dos dentro de la estructura de reconocimiento del interprete. Este reconocimientose realiza cuando se carga el codigo G-M en el virtualizador. Otra funcion delanalizador lexico es mantener informado al usuario de un posible error dentro delcodigo cargado. En la creacion del llamado analizador incorporado al interpre-te, se hicieron uso de las expresiones regulares, las cuales son las encargadas delreconocimiento de cadenas de valores, comentarios, numeros, identificadores ycantidades relacionadas con el movimiento en los ejes de la maquina herramien-ta. El analizador proporciona informacion relacionada con los token identificados,caracterısticas, posicionamiento de este y su tipo, solamente por mencionar algu-nas.

Token: Se define como token a un sımbolo abstracto que representa un tipo deunidad lexica.

Algunas de las condiciones necesarias que supervisa y verifica el analizadorlexico son, por ejemplo: Que todas las instrucciones deben empezar con la letramayuscula N y que los identificadores que sean cargados al interprete esten dentrodel grupo D,F,I,J,K,G,M,N,R,S,T,X,Y,Z}.

En la construccion del analisis lexico que esta incorporado al interprete, seutilizo la clase regex, que en la plataforma de .Net Framework de C#, es el bus-

Page 46: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 29

cador de este sistema. Auxiliado de las expresiones regulares para la busqueda demodelos de caracteres, propios del codigo G-M insertado, algunas caracterısticasbasicas del analisis presentado son: Lee e interpreta los caracteres insertados, rea-liza un filtrado de los comentarios obsoletos y que emite una alerta de error encaso de existir este.

El analisis lexico evalua todos los identificadores. En este caso el identificadores la primera letra en el codigo G insertado, sera una letra mayuscula.

3.1.4 DISENO Y DEFINICION DEL ANALISIS SINTACTICO

El analisis sintactico evalua todos los token en el codigo. Hace la comproba-cion de la validez de las sentencias que forman el texto en el que esta escrito elcodigo G-M. Evalua sı son correctas dentro del ambiente de programacion crea-do. Este analizador convierte el texto cargado en otras estructuras conocidas. Lascuales son de mayor utilidad en el momento de interpretarlas. Las condicionesnecesarias para el analisis lexico son: No puede existir mas de un token con elmismo identificador en una misma instruccion, tras el identificador en un token,solamente debera existir un valor numerico entero y que el conjunto de identifica-dores posibles seran {D,F,I,J,K,G,M,N,R,S,T,X,Y,Z}.

Segun Cortez et al. 2005 [64], el analisis sintactico puede describirse como elintento de construir un arbol de analisis sintactico para la frase que se quiere co-nocer. La sintaxis de las construcciones de los lenguajes de programacion puedenescribirse por medios de gramaticas libres del contexto, Cortez et al. 2005 [64],Aho et al.1990 [65], Sethi et al. 1988 [66].

3.1.5 DISENO Y DEFINICION DEL ANALISIS SEMANTICO

El analisis semantico incorporado en el interprete es considerado como el ulti-mo procesador de lenguaje que forma parte de la programacion del interprete/-virtualizador. Esta fase es la encargada de procesar requerimientos e informacionadicional necesaria ya sea para una correcta compilacion o porque es requeridapor el programador. En el caso del interprete reportado en este trabajo de tesis,el analisis semantico fue considerado como una solucion para algunos problemasque pudiesen presentarse durante la escritura del codigo G-M, que sera cargado ala interfaz grafica GUI.

Page 47: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 30

Segun Ortın et al. 2010 [67] la fase de analisis semantico obtiene su nombrepor requerir informacion relativa al significado del lenguaje, que esta fuera del al-cance de la representatividad de las gramaticas libres de contexto y los principalesalgoritmos existentes de analisis; es por ello que se dice que captura la parte de lafase de analisis considerada fuera del ambito de la sintaxis.

El principal objetivo del analisis semantico incorporado al interprete es au-mentar la certeza de que el programa que se ha analizado cumpla con las reglasestablecidas dentro de su programacion. Verificara todas las condiciones que nohayan sido evaluadas por los analisis anteriores, para garantizar ası su correctaejecucion, en otras palabras se pretende dar sentido a las construcciones creadasdentro del contexto del analizador mismo.

Algunos errores que el analizador mostrara mediante la interfaz grafica delinterprete seran: No coinciden los tipos de token, no coinciden las estructurasdeclaradas, variable no declarada, identificador reservado usado de modo no per-mitido y acceso a variable fuera de alcance no permitido.

3.1.6 DISENO DE LOS ALGORITMO DE PROGRAMACION, PARA LA INTER-PRETACION Y PROCESAMIENTO DE CODIGO

Un algoritmo de programacion fue desarrollado, programado e incorporado ala estructura funcional del interprete CNC. Esto se realiza con la intencion de eje-cutar los modulos desarrollados en el interprete de codigos G-M. Inicia cargandoel codigo G en formato de texto al interprete. Esta etapa analiza e interpreta elarchivo completo cargado, el algoritmo creado, toma decisiones con respecto a labase de datos cargada al sistema.

El interprete descompone las sentencias presentes en el documento, en blo-ques, despues en palabras individuales. Luego, se procesan las lıneas creadas enbusqueda de tokens y patrones para ası, adquirir las instrucciones relacionadas almovimiento de la herramienta de corte. El algoritmo creado transferira los datosprocesados a una etapa, donde se despliega la visualizacion. Para mayor claridadcon respecto al codigo de programacion, vease el apendice A.

Page 48: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 31

La clase mas usada en C# para la creacion de la graficacion en el interpretees System.Drawing.Graphics, esta clase es de gran utilidad ya que posee entresus metodos todas las funciones graficas que se necesitaban. Esto hace que nose requiera implementar algunas rutinas de graficacion en la programacion delinterprete, haciendo el desarrollo del mismo mejor y funcional.

Por otra parte se implementaron otros metodos, para la incorporacion de cier-tas caracterısticas en la virtualizacion del maquinado. Algunos de los principalesmetodos usados fueron implementados con clases como:

void Bitmap.SetPixel(int x, int y, Sistem.Drawing.Color color); Este es el en-cargado de asignar un color determinado a un pixel del objeto que se esta virtua-lizando.

System.Drawing.Color Bitmap.GetPixel (int x, inty); Este metodo es el encar-gado de asignar un color en cierta area especıfica del Bitmap.

private void Punto (int, int y). Tambien llamada funcion punto, dibuja un puntoen el maquinado virtual, tiene la ventaja de asignar un comportamiento al punto(fino, medio, grande) mediante la variable grosor.

private void Linea (int xa, int xb, int ya, int yb). Tambien llamada funcionlınea, esta se usa principalmente en la programacion del interprete, para dibujarlıneas en la interpolacion lineal, es basicamente la estructura principal del maqui-nado virtual.

Se puede mencionar muchas otras clases y metodos usados en la programaciondel interprete, pero no es el proposito de esta tesis, realizar un listado completo delos mismos, para ejemplos de clases creadas, Samir et al. 2010 [68].

Despues del llamado procesamiento individual, el sistema se pregunta si es elfinal del programa. Cabe aclarar que esta pregunta se realiza de forma interna sinhacer participe al usuario/programador que esta siendo testigo de la compilaciondel programa mediante el software. De no ser el final del programa el sistema re-gresara a la etapa de busqueda de tokens/patrones para volver a mostrar errores yhacer el tratamiento correspondiente.

En el supuesto de ser el final del programa se realiza la ejecucion simulta-

Page 49: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 32

Figura 3.1: Diagrama de flujo y estrategia del proceso.

nea de todo el programa, es decir procesamiento, identificaciones, atribuciones,reconocimiento, etcetera. Despues el programa determina si es la ultima linea delprograma, de no ser ası el software regresa a la etapa de la busqueda de tokens/pa-trones. De ser la ultima lınea del programa se virtualizara el maquinado propuestooriginalmente en el codigo G-M cargado, el usuario podra observar la visualiza-cion del proceso de maquinado en tiempo real, dando de esta la ventaja de observarel comportamiento del maquinado en forma virtual. Todo este proceso esta plas-mado dentro de un diagrama de flujo presentado en la figura 3.1.

Page 50: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 33

3.2 DISENO DE LA INTERFAZ GRAFICA GUICon el proposito de hacer mas facil la interaccion entre el usuario y el interpre-

te de codigos G, una interfaz GUI fue disenada, creada y fue puesta en marcha.Dicha interfaz GUI fue programada en C# usando como plataforma de programa-cion MS-Windows y .NET Framework 4.5 con la intencion de ampliar la compa-tibilidad del interprete con otros sistemas operativos conocidos.

La interfaz GUI desarrollada, permite al usuario familiarizarse con el codigoG-M ISO6983. Proporciona algunos elementos graficos y apariencia muy simi-lares a visualizadores e interpretes de codigos G-M convencionales. Presenta unmenu en forma de barras, integrada donde el usuario puede crear, editar, abrir,cerrar, guardar, cargar archivos, borrar pantalla de visualizacion, editar instruccio-nes cargadas dentro del interprete, parar el proceso de maquinado virtual, etcetera.

Tambien integra un cuadro de visualizacion, donde el usuario observa el pro-ceso de maquinado, ası como tambien la pieza mecanica maquinada predicha. Seincorporan otras caracterısticas dentro del menu, donde el usuario del interpretepuede manipular la pieza maquinada mediante el zoom in, zoom out, ejes y lıneas,ayuda, etcetera.

Fue desarrollada como una interfaz amigable en un entorno Windows, contie-ne todas las funciones requeridas para la gestion/procesamiento del codigo G-M.En el area de visualizacion se podra ver la virtualizacion del maquinado mediantela manipulacion de graficos usando las librerıas de OpenGL. Puede apreciarse unabarra de colores que indican la categorizacion y asignacion de colores para indicarla profundidad de corte en el maquinado. La barra de estado donde se puede ver elprocesamiento del texto. La interfaz grafica GUI permite la interaccion entre losdistintos recursos y caracterısticas programadas dentro de la programacion propiadel interprete.

Page 51: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 34

3.3 DESARROLLO DE LA INTERFAZ GRAFICA GUI3.3.1 INCORPORACION DE VENTANAS DE CONTROL EN LA INTERFAZ GRAFI-

CA

Una interfaz grafica fue desarrollada usando MS-Windows y .NET Framework4.5 como plataforma de programacion.

La interfaz GUI tiene una seccion de herramientas, donde el usuario puedecargar al sistema archivos de texto con la intencion de simularlos, la seccion deherramientas verifica el archivo seleccionado, generando un reporte de error encaso de ser necesario.

Para evaluar y determinar como el interprete de codigos CNC procesa la in-formacion que ha sido cargada al software, y con la intencion de hacer mas facilla manipulacion e interaccion entre la estructura del software y el usuario, mu-chas ventanas de control fueron creadas e incorporadas a la interfaz grafica GUIdel interprete de codigos G-M. Con la intencion de realizar la correcta programa-cion de estas ventanas de control, una gran cantidad de algoritmos de programa-cion fueron desarrollados y creados para ejecutar una accion especıfica (vease elapendice A).

3.3.2 MOTOR DE GRAFICOS PARA LA VIRTUALIZACION 3D

En el diseno del interprete de codigos G-M ISO6983 se utilizaron las librerıasde OpenGL para la renderizacion y visualizacion 3D de los maquinados virtua-les. El uso de OpenGL como motor de graficos es de mucha aceptacion, debidoa la versatilidad de este y su soporte en la gran mayorıa de los sistemas operati-vos computacionales existentes. OpenGL trabaja con la mayorıa de los sistemasWindows y tambien es usado y aplicado en la mayorıa de los lenguajes de progra-macion.

Las librerıas nativas de OpenGL son aceptadas para la generacion de piezase imagenes virtuales. La relativa simplicidad en la programacion de las librerıaspropias de OpenGL, permite al programador disenar y desarrollar aplicacionescapaces de renderizar imagenes complejas las cuales contienen efectos de luz,mapeo de la textura de la imagen virtual, efectos en la atmosfera del diseno yotras tecnicas mas.

Page 52: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 35

3.4 PROGRAMACION DE GRAFICOS PARA LA VI-SUALIZACION DE MOVIMIENTOS

Con el fin de verificar la efectividad del interprete, varios algoritmos fuerondesarrollados bajo un ambiente de programacion Windows (vease el apendice A),mediante el lenguaje de programacion C# y las librerıas de OpenGL como elmotor de graficos, para el renderizado de las piezas virtuales y el diseno de lastrayectorias 3D del maquinado virtual. Se crearon diferentes clases dentro de laprogramacion del interprete, tales clases son enunciadas a continuacion.

analizadorGcode: Es una clase definida por el programador, la cual puede sermanipulada o modificada por el usuario del interprete, es usada para crear objetoslos cuales almacenan informacion extraıda del codigo G-M. Incluyendo informa-cion relacionada con el maquinado, como numero de herramienta, tipo de corte,numero de pasadas, tipo de interpolaciones, numero de instruccion G, duracion deun maquinado en un proceso especıfico, solamente por mencionar algunas.

namespace MovimientoCLS: Esta funcion fue creada por el programador, per-mite asignar a un grupo especıfico de instrucciones G, una direccion y una acciona realizar.

System.Drawing.Color: Esta clase asigna un color y un comportamiento decada lınea para realizar el maquinado. Por ejemplo sı una coordenada esta den-tro de un rango de medicion entonces esta lınea mostrara un color especıfico,luego entonces el usuario podra identificar que tipo de profundidad presenta esemaquinado, ası como el numero de pasadas o simplemente para diferenciar unmaquinado de otro, en la misma simulacion.

Para la integracion de todos los modulos programados, disenados y creados eneste proyecto fue necesario unir todas las partes que fueron pensadas. Por ejemplola interfaz GUI, el control de las ventanas graficas, algoritmos que controlan ope-raciones especıficas, pantalla de visualizacion, entre otras. La mayor motivacionpara la integracion de estas mencionadas partes fue la funcionalidad del interpre-te, ası como que demostrara que es excelente para la simulacion de maquinadosvirtuales.

Las funcionalidades que el interprete presenta son especificados y accesibles,

Page 53: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 36

pues requieren el menor numero de acciones posibles para realizar una instruc-cion, haciendo mas facil el procesamiento de datos y la interaccion entre el usua-rio final y el interprete ya que este identifica de manera inmediata la posicion delos diferentes menus, viendolo desde otra perspectiva, tambien ofrece una ventajapara el programador, ya que mejora la estructura del codigo. Con la integracionde todos los modulos desarrollados para el interprete, este proveera de una mejorperspectiva y calidad de visualizacion para el recorrido de la herramienta que es-tara cortando de manera virtual la pieza mecanica.

Figura 3.2: Modulos que componen el interprete de codigos CNC.

3.5 INTERFAZ GRAFICA DEL USUARIO GUIDurante el desarrollo del trabajo abordado en esta tesis, se crearon diferentes

interfaces graficas, vease figura 3.8. Durante esta transicion se crearon y anexa-ron diversas ventanas en las plantillas disenadas en Visual Studio 2012 C#, con laintencion de homologar la apariencia y las facilidades que el interprete posee conlos que son comercializados actualmente, y que se pueden encontrar en cualquiermaquina-herramienta. Estas interfaces poseen diferentes tipos de menus orienta-dos a que el usuario se familiarice de manera natural y espontanea con la estructuradel interprete, siendo hasta cierto punto, intuitivo el manejo del interprete algunosde los menus presentados en todas las presentaciones de las diferentes interfacesgraficas creadas son los siguientes:

Page 54: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 37

Figura 3.3: Desarrollo de la interfaz grafica GUI

3.5.1 LA BARRA DE MENUS

Esta situada en la parte superior. Ofrece e indica al usuario de manera intuiti-va a primera vista, una serie de menus desplegables que contienen la mayorıa delos procesos para el uso del interprete simulador, ası como diferentes formas deingresar datos y a su vez de consultar caracterısticas del interprete 3.4.

Figura 3.4: Barra de menus del interprete de codigos CNC.

3.5.2 MENU ARCHIVO

Dentro del menu archivo encontraremos las opciones que nos permiten crear ymanipular un archivo generado con el programa, ası como opciones de conexion

Page 55: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 38

para el protocolo de comunicacion elegido, opciones de limpieza de pantalla entreotras (vease la figura 3.5). Estas opciones son:

Figura 3.5: Menu archivo del interprete.

Abrir

Esta opcion dirige al cuadro de dialogo abrir. Para abrir un archivo creado an-teriormente, el interprete de codigos G-M puede visualizar varios formatos rela-cionados con los procesadores de texto, para abrir un archivo el usuario constatarası existe el archivo buscado en una lista desplegable que generalmente esta situadoen la parte inferior del cuadro de dialogo.

Guardar

La opcion de guardar le permite al usuario conservar los cambios que este ha-ya realizado a un archivo. Basicamente se le asigna un nuevo nombre al archivoo ya sea que lo haya editado o que haya creado uno nuevo. Almacena el archivocon el nombre que el usuario le haya asignado (vease la figura 3.5). Si el archivono tiene nombre, cuando el usuario desee guardar el archivo creado, el interpre-te remitira al usuario al cuadro Guardar como, entonces una barra de progresionaparecera indicando el avance del guardado del archivo.

Page 56: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 39

Limpiar

Borra la informacion del procesador, cuadro de estado, cuadro de visualiza-cion y todo. Segun sea el deseo del usuario, cabe aclarar que los nombres de lasdiferentes partes del interprete se encuentran especificados dentro del mismo.

Limpiar procesador de texto: Esta seccion tiene como objetivo el eliminar todala informacion, comentarios o codigo que este presente en el procesador de texto,ya sea que se haya cargado con anterioridad mediante la insercion de codigo vıael menu abrir o por escritura manual. Despejara este campo, para una nueva inser-cion de codigo.

Limpiar cuadro de estado: Al igual que en el apartado anterior, esta seccionfue creada con el objetivo de limpiar el area donde parte del procesamiento delcodigo es mostrado. En esta seccion se muestra la interpretacion de cada analisis.

Limpiar cuadro de visualizacion: Esta opcion fue creada con la intencion deborrar todos los graficos y maquinados virtuales presentes en el area donde seesta visualizando el maquinado. Esta area ocupa la mayor parte de la pantalla y esdonde se muestran los recorridos de la herramienta de corte. Esta parte contienela pieza simulada y los ejes coordenados.

Limpiar todo: Como su nombre lo indica, esta instruccion elimina toda la in-formacion de texto o grafica que este presente en el interprete.

Salir

Esta seccion se utiliza solamente con el fin de salir de la aplicacion del interpre-te, da por terminado de manera subita (sı el usuario ası lo desea). En la figura 3.5se muestra la estructura del menu archivo del interprete de codigos G.

3.5.3 MENU MODO

En este apartado se explican las diferentes opciones para la compilacion delprograma que se carga al interprete de codigos G-M. El menu modo proporcionatres modos diferentes para la compilacion del programa cargado, permite al usua-rio seleccionar los diferentes modos de operacion del interprete de codigos CNC.

Page 57: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 40

Los modos ya mencionados se presentan a continuacion y pueden observarse enla figura 3.6.

Figura 3.6: Menu modo.

Verificar: Esta opcion realiza la examinacion del algoritmo del codigo G paraCNC mediante los analisis integrados dentro del interprete. Ademas le indica alusuario en el cuadro de estado la lista de operaciones que se esta realizando, llevael conteo de lıneas del programa y los errores que hasta ese momento han suce-dido durante el corrimiento. Esta informacion quedara expuesta en el campo decuadro de estado, situado en la parte inferior del interprete.

Verificar + simular: Realiza las operaciones indicadas en el anterior modo ytambien realiza la virtualizacion del maquinado en 3D, detalle del que se ocupaeste trabajo de tesis.

Verificar + simular + ejecutar: Este modo tiene como proposito ejecutar lasinstrucciones de los dos modos anteriores, pero tambien de dar la instruccion a losactuadores de movimiento.

3.5.4 MENU EJECUTAR

El modo ejecutar aparece por defecto en la barra de menus, para acceder a el,basta con situarse en la parte superior del interprete y dar clic al apartado ejecutar.Este modo contiene el mismo comando que ejecuta los modos, verificar, verificar+ simular y verificar + simular + ejecutar, dependiendo del que haya elegido elusuario con anterioridad. El usuario tiene que dar clic al boton correr y de esta

Page 58: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 41

manera el programa empezara a ejecutarse(vease 3.7). Este apartado es el respon-sable de que internamente del interprete, exista una transformacion de codigo Gcargado a un lenguaje maquina de bajo nivel, formando lıneas de programacionentendibles e interpretables por los diferentes analisis disenados, es ası que el tex-to que se programo pueda ser leıble dentro del contexto del visualizador mismo,ejecutando de esta manera las acciones para lo que el interprete fue creado.

Figura 3.7: Menu ejecutar.

3.5.5 MENU ASISTENTE

El menu asistente, proporciona al usuario una serie de instrucciones muy co-munes dentro de la programacion con codigo G-M. Estas instrucciones M (fun-ciones miscelaneas), tales como M00-M06 son de gran utilidad pues permite alusuario insertar estos dentro del codigo que se esta probando, ya sea por cuestio-nes de seguridad o solo por practicidad.

Por otro lado las instrucciones G (funciones preparatorias) G00-G01 solo seenfocan a la forma de avance del programa, se puede decir que estas instruccio-nes son de facil acceso y de uso comun para los maquinados en CNC, tambiense incluyen instrucciones programadas para spindle (velocidad del husillo) y parafeedrate (velocidad de avance), en caso que el usuario decida usar estas instruccio-nes los comandos se insertan en la posicion actual del cursor en el cuadro de texto,el usuario debe sustituir los elementos que se encuentran dentro de los parentesispor el valor deseado.

Page 59: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 42

(a) Codigos M.

(b) Codigos G.

Figura 3.8: Menu asistente.

3.5.6 EJES Y LINEAS

Este elemento de la barra de menu permite el acceso al control de las lıneas derepresentacion en el maquinado, la seccion de ejes y lıneas. Muestra u oculta delcuadro de visualizacion del maquinado los ejes de coordenadas en el maquinadovirtual, los puntos del maquinado y los indicadores del eje, unicamente por men-cionar algunos. Enseguida se enlistan el nombre de los apartados de cada uno deestos elementos.

Lıneas instantaneas: Al acceder a esta opcion el usuario eliminara las lıneasdonde el cortador ha pasado, por lo regular estas trayectorias estan en forma pun-teada.

Page 60: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 43

Figura 3.9: Ejes y lıneas.

Puntos rapidos: Estos indicadores, senalan donde la herramienta de corte hapenetrado a la pieza mecanizada. Al acceder a esta opcion el usuario estara elimi-nando estos puntos de entrada del ya mencionado cortador.

Lıneas de los ejes: Estas lıneas punteadas de color amarillo, indican la com-posicion de las dimensiones en el maquinado. Son usadas solamente como refe-rencias y para una mayor ubicacion de la pieza maquinada.

Indicadores de ejes: Este apartado indica los ejes donde esta ubicado el ma-quinado virtual, donde el eje Z esta representado por el color rojo, el eje Y por elcolor verde y el eje X con el color amarillo. El usuario al acceder a esta seccioneliminara los ya mencionados indicadores de ejes.

3.5.7 SECCION AYUDA

Al seleccionar esta opcion, tambien llamada menu ayuda, proporcionara alusuario informacion acerca de los desarrolladores del interprete y la version delsoftware en ese momento. Al seleccionar la ayuda acerca de se muestra una ven-tana, con informacion relacionada a la version del software, ası como informacionde los responsables del desarrollo del mismo (vease el apendice A).

Page 61: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 44

3.5.8 PANTALLA DE VISUALIZACION DEL MAQUINADO

Ocupa la mayor parte de la pantalla. En este apartado se despliegan de maneracontinua durante la simulacion, los recorridos de la herramienta virtual, ası comoel comportamiento del mecanizado durante la simulacion. Dandole al usuario lacapacidad de poder observar el fenomeno del maquinado de manera parcial don-de este desee. La pantalla de visualizacion permite observar el maquinado en tresdimensiones, ası como tambien la representacion de la pieza y la herramienta decorte, mostrando tambien las lıneas que definen las interpolaciones del mecaniza-do en curso.

3.5.9 LA BARRA DE MOVIMIENTOS

Al igual que la barra de menus la barra de movimientos esta situada en la par-te superior derecha del interprete. Fue disenada con la finalidad de manipular elgrafico obtenido al insertar el codigo G-M dentro del simulador. Esta barra cuentacon una seccion para posicionar la pieza/simulacion en diferentes vistas, tales co-mo vista aerea, de frente, derecha e isometrico. La barra de movimientos cuentacon otra seccion, seleccionar, para ajustar vista (shift + clic a todas las vistas),acercar, rotar, zoom y fijar. Esto se puede observar en la figura 3.10.

Figura 3.10: Barra de movimientos del interprete de codigos CNC.

3.5.10 SELECCION DE UN AREA DE MAQUINADO

Permite al usuario del interprete seleccionar una parte del maquinado virtualpara conocer las coordenadas y a que codigo G-M corresponde, esa area especıfi-camente. Es muy util al momento de procesar esta informacion para una aplica-cion mas especıfica. Basicamente, sı el raton esta lo suficientemente cerca de unalınea que se ha dibujado previamente, proporciona informacion relacionada conel maquinado.

Page 62: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 45

Figura 3.11: Aplicacion de la opcion seleccion.

En esta seccion se presenta el funcionamiento de la aplicacion seleccion, enuna pieza virtual maquinada en el interprete. El usuario selecciona el area dondedesea conocer, que parte del codigo G-M representa. La informacion es mostrada,segun el documento que fue cargado al interprete con anterioridad. Esta aplicaciones usada para mostrar otros fenomenos en el maquinado virtual.

3.5.11 TIPO DE VISTAS INCLUIDAS EN EL INTERPRETE

Esta opcion es de mucha relevancia ya que muestra los accesos directos a lasdiferentes vistas virtuales definidas con anticipacion, mediante la programacionde diferentes matrices de rotacion/traslacion para que estos movimientos fueranposibles. Las diferentes vistas que el interprete posee, son: aerea, de frente, dere-cha e isometrico.

3.5.12 AJUSTAR VISTA

Con el fin de especificar la ampliacion y/u orientacion del maquinado en lavista principal de la pantalla de visualizacion, el usuario debera elegir la opcionajustar vista. Esta opcion le permitira ampliar o manipular la vista del maquina-do virtual de tal forma que se vera considerablemente mas grande, o desde una

Page 63: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 46

perspectiva diferente, tratando de que dicha vista abarque un area mayor dentrode la pantalla de visualizacion. En caso de salir de la zona visible del maquinadola opcion ajustar vista regresara a la posicion original justo antes de dejar de servisible.

3.5.13 ACERCAR MAQUINADO

Esta seccion como en la mayorıa de metodos para aplicar zoom en software,se toma el angulo superior izquierdo como punto de referencia y ası mas adelantetomarlo para futuras programaciones. El menu acercar esta disenado para aplicarzoom a un objeto o area especıfica, es tambien llamado zoom a seleccion, el usua-rio debera elegir con el clic izquierdo del raton el area donde desea acercar paraver con mejor detalle e inmediatamente la zona elegida sufrira un acercamientoconsiderable.

3.5.14 ROTAR MAQUINADO

Esta opcion tiene como objetivo el emular el movimiento de rotacion de larepresentacion virtual. Este movimiento esta asociado con la accion de arrastredel raton tras pulsar en la barra de movimientos el icono de rotacion y mantenera su vez pulsado el boton izquierdo del raton, esto por encima de la pantalla devisualizacion. La antes mencionada rotacion podra ser horizontal, vertical o unacombinacion de las dos, dependiendo de la trayectoria que el usuario haya elegido.

3.5.15 ZOOM IN / ZOOM OUT

El boton zoom in y zoom out permite cambiar el nivel de ampliacion o reduc-cion con que sera visualizado el maquinado virtual. Esta seccion es basicamentelo mismo y ocupa la misma programacion para el menu acercar con la unica di-ferencia es que tiene un apartado propio dentro de la programacion del interpretedesignado, para que mediante el scroll del raton pueda acercar o alejar la piezasegun sea la decision del usuario.

3.5.16 FIJAR MAQUINADO

Este boton sera de gran utilidad para el usuario en caso de que este quieralimitar los movimientos de rotacion, zoom in , zoom out, acercar, manipulacionde vistas, etcetera, pues al elegir dicho apartado el maquinado solo se trasladarapor la accion del raton, delimitando ası las demas opciones que el usuario hayapodido elegir con anterioridad.

Page 64: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 47

3.6 PROCESAMIENTO DE CODIGOEn este apartado se explica a grandes rasgos como se llevo a cabo el proceso de

renderizado de las piezas virtuales dentro del entorno grafico C#. Ası tambien seaborda como se ataco el aspecto del procesamiento de codigo G-M en el interpre-te CNC. Como se sabe en la programacion del interprete se tomaron en cuentadiferentes algoritmos de control y de movimiento, con el objetivo de realizar lasimulacion de los movimientos de manera virtual. Esto se logro tambien con laimplementacion de muchas librerıas propias de C#, una de ellas fue el muy usa-do espacio de nombres System.Drawing.Drawing2D, el cual representa y proveeuna funcionalidad avanzada de graficos bidimensionales y vectoriales, lo cual fueusado como tecnica de graficacion. Esto permite dibujar practicamente cualquiercosa que el programador desee, otra ventaja de gran importancia es que permi-te transformar cualquier movimiento mediante una matriz de rotacion/traslacion3X3. Para almacenar todas estas matrices de transformacion fueron creadas listasmaestras llamadas bloques de movimiento (MotionBlocks), en ese orden de ideastambien se crearon listas para desplegar estos movimientos las cuales contienenlas coordenadas rotadas en un espacio 3D (clsDisplayList).

Como se sabe existen instrucciones G para las interpolaciones lineales (G00,G01); instrucciones G para interpolaciones circulares (G02, G03); distancia ab-soluta (G90) o distancia incremental (G91). Las interpolaciones circulares son lasinstrucciones mas complejas de realizar, puesto que implica muchos recursos den-tro de la programacion. Un maquinado virtual es la union de muchos arcos, lıneasy segmentos, por lo tanto para el dibujado virtual de ciertos arcos primero se di-vidieron en pequenos fragmentos de arcos dependiendo de la longitud del mismo,luego se consideran el punto inicial y el punto final de un segmento de lınea, con elfin de calcular la coordenada del punto inicial y del punto final usando la formulaa continuacion, Cruz et al. 2000 [16].

Sen(A+B) = Sen(A) ∗ Cos(B) + Cos(A) ∗ Sen(B) (3.6.1)

Cos(A+B) = Cos(A) ∗ Cos(B)− Sen(A) ∗ Sen(B) (3.6.2)

Las ecuaciones anteriores, son programadas en la estructura del interprete,para la creacion e interpretacion de interpolaciones circulares y de arco, esto es unejemplo de la adaptacion de algoritmos en la programacion del interprete.

Page 65: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 48

3.7 RENDERIZADO EN EL MAQUINADO VIRTUALUna vez que el codigo fuente que satisface las caracterısticas del interprete de

codigos G-M, se prosigue a la etapa de renderizacion, la cual se refiere al procesode generar una imagen virtual desde un modelo real, en este caso se pretende aco-plar al proceso de maquinado virtual del interprete, se implementan una serie dealgoritmos de programacion con la intencion de mejorar la apariencia de los ma-quinados virtuales reportados en este trabajo de tesis. Existen diferentes tecnicasde renderizado. Basicamente se puede hablar de dos tecnicas principales: renderi-zado de volumen y renderizado de superficie. Para aplicar un tipo de renderizadoen el trabajo de tesis reportado en esta tesis, se hizo necesario el uso de la librerıaActiViz.NET. Esta librerıa proporciona al programador una interfaz la cual po-see un kit de herramientas de visualizacion, es una interfaz orientada a objetos,tambien posee ciertos algoritmos que transforman los datos en entornos 3D.

Figura 3.12: Ejemplo de maquinado virtual en el interprete.

3.8 INTERPOLACION LINEALUn aspecto muy importante dentro de la programacion basica del interprete de

codigos CNC, son las interpolaciones lineales. Estas interpolaciones pueden ser

Page 66: I P ´ NACIONAL

CAPITULO 3. INTERPRETE/VIRTUALIZADOR 49

movimientos con variacion simultanea en los ejes X, Y y Z su aplicacion es re-lativamente simple. En la instruccion se indicara el punto final y el punto inicial,dependera de la posicion del husillo (N). La codificacion de esta interpolacionse consigue gracias a las funciones nativas propias de OpenGL (glVertex3f(floatx, float y, float z)), haciendo alusion a que los vertices declarados en la anteriorinstruccion componen una recta o un conjunto de rectas con la instruccion glBe-gin(GL Line Strips).

3.9 INTERPOLACION CIRCULARSe define como interpolacion circular a las trayectorias definidas por los arcos

de circunferencia, estas podran ser ejecutadas en un determinado plano XY, XZo YZ, las instrucciones para declarar dichas interpolaciones son las instruccionesG, G02 y G03. La representacion virtual para esta interpolacion es mucho mascompleja que la interpolacion lineal. Se puede decir que cual sea la representa-cion grafica que se desee representar, se podra definir como el conjunto de puntosque originalmente la componen, de modo que el desarrollador de este interpreteuso las herramientas presentes en OpenGL para realizar dichas representacionesgraficas. Por ejemplo: el conjunto de puntos (G POINTS), lıneas (GL LINES) yhasta triangulos, cuadrados y hexagonos con la instruccion (GL TRIANGLES,GL QUADS), estas son de gran utilidad al momento de realizar las representacio-nes del codigo G que se desee, solo basta con programar dichos casos y almace-narlos en variables para poder hacer uso de ellas cuando sea necesario.

N01 G02/G03 X2.00 Y2.00 I2.00 J2.00 F.

La instruccion G anterior indica la manera de programar una tıpica interpola-cion circular, donde I y J definen el centro del arco desde la perspectiva del ejeX e Y. Generalmente los valores numericos situados justo despues de I y J, sonvalores incrementales o absolutos, dependiendo del proposito del maquinado, par-tiendo desde el punto de inicio. Se siguio el mismo estilo de programacion que enla seccion 3.8, puesto que se crearon las respectivas rutinas y codigos para cadacaso, segun fuese necesario.

Page 67: I P ´ NACIONAL

El principio de la ciencia, casi la definicion, es el siguiente: “La pruebade todo conocimiento es el experimento”. El experimento es el unicojuez de la verdad cientıfica.Richard Phillips Feynman 1918-1988, premio Nobel de Fısica en 1965

4Virtualizacion de maquinados y

Aplicaciones delInterprete/Virtualizador de Codigos

G-M ISO 6983

Breve descripcion de las caracterısticas de los modulos deidentificacion visual, para la calidad y apariencia de unasuperficie maquinada, se exhiben los resultados obtenidospara las diferentes simulaciones en el interprete, ası comola incorporacion de una aplicacion para un sistema CNC.

Resumen

50

Page 68: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 51

4.1 VIRTUALIZACION DE MAQUINADOS

Con la intencion de corroborar la funcionalidad del interprete de codigos GISO 6983, se realizaron diversas pruebas de funcionamiento con diferen-tes codigos G-M. Verificando el desempeno del interprete. Incrementando

ası la descripcion del desempeno del mismo ante diferentes situaciones.

En este trabajo de tesis, un interprete/virtualizador de codigos G-M ha sidodesarrollado, para un sistema de torno de arquitectura abierta. Este interprete escapaz de leer e interpretar codigos ISO 6983. El interprete desarrollado toma elarchivo de codigo G-M ISO 6983 desarrollado en un software comercial CAD/-CAM y lo toma como un modelo de datos de entrada. Entonces ese archivo deentrada se transfiere al modelo de extraccion de datos que extrae la posicion, lavelocidad de alimentacion, caracterısticas del husillo, etcetera.

La visualizacion de maquinados implica la reconstruccion parcial del modelo.Requiere informacion sobre la geometrıa y ciertas propiedades fısicas. Esta infor-macion se encuentra en forma de cadenas de datos, en el archivo que es cargadoal interprete. Haciendo uso de la librerıa nativa de OpenGL, en lo que a manipu-lacion de graficos se refiere, se logra la creacion de formas y aproximaciones delmaquinado.

La interfaz grafica GUI disenada para el interprete, esta compuesta de tressecciones principales. La primera se trata del menu de procesamiento de codigo,donde el interprete carga la informacion, procesa y toma decisiones mediante laprogramacion de los modulos de procesamiento, considerados anteriormente porel desarrollador. La segunda seccion, trata del menu de movimientos, donde elusuario es capaz de manipular, la figura virtual, que representa el maquinado. Porultimo es la seccion de visualizacion, area que ocupa la principal parte de la pan-talla, y donde el usuario puede observar la apariencia de la pieza virtual simulada.

Los algoritmos programados en el interprete, emulan las trayectorias que sonindicadas en el archivo de codigo G-M. Segun la programacion, para cada instante,se calcula el segmento de interseccion entre dos lıneas y se aplica a los segmentosanteriores y posteriores, sucesivamente. El comportamiento del algoritmo de pro-gramacion antes descrito, es a grandes rasgos, una interpolacion lineal aplicada entodo momento de la simulacion del maquinado.

Page 69: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 52

Powered by TCPDF (www.tcpdf.org)

(a) Simulacion en software comercialMach3.

Powered by TCPDF (www.tcpdf.org)

(b) Simulacion en software comercialMach3.

(c) Simulacion en el interprete creado. (d) Simulacion en el interprete creado.

Figura 4.1: Comparacion de maquinados.

Se realizaron multiples simulaciones en el interprete, con la intencion de veri-ficar la funcionalidad de este. Estas simulaciones empiezan con la creacion de lapieza modelo en un software comercial CAD/CAM, para despues obtener los res-pectivos codigos G-M ISO 6983 que describen las piezas a simular. Despues de lageneracion de los codigos G-M ISO se procede a cargar los codigos al interpretemediante la ventana de abrir. Posteriormente se procede a ejecutar, la simulacionmediante la opcion ejecutar, que esta contenida en la interfaz grafica del interprete.

De esta manera se comprueba la funcionalidad que el interprete ofrece. Escapaz de simular cada uno de los maquinados propuestos con la normalizacionISO6983. En este estudio varios codigos G-M fueron desarrollados y simuladosen el interprete, dando como resultado una virtualizacion y aproximacion de lasfiguras reales originales. Con la intencion de validar el interprete, se realizaron lassimulaciones en el software comercial Mach3, para verificar el comportamiento

Page 70: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 53

del maquinado simulado en el interprete desarrollado. Estas simulaciones compa-rativas son presentadas las figuras 4.1 y 4.2.

Powered by TCPDF (www.tcpdf.org)

(a) Simulacion en software comercialMach3.

(b) Simulacion en el interprete creado.

Figura 4.2: Comparacion de maquinados.

Durante la simulacion en el interprete, el maquinado virtual generado por elinterprete de codigos G-M, disenado, creado y reportado en este trabajo de tesis. escomparable y semejante, a la simulacion que realizan software comerciales, en es-te caso Mach3. En adicion se puede decir, que la apariencia del maquinado virtualentregado por el software Mach3, presenta notables desventajas en comparacionpor el generado con el interprete de codigos G-M, por ejemplo, la resolucion ycalidad de la visualizacion es superior en comparacion a la que presenta el soft-ware Mach3, la manipulacion del maquinado (traslacion, zoom, fijado de la piezavirtual, etc.) es mas facil en el interprete. Ademas el en software Mach3 no existenalgunas funciones que estan incluidas y programadas en el interprete, como el usode colores para la identificacion de la profundidad, la incorporacion de analisis decodigo, etcetera, unicamente por mencionar algunos.

Cabe hacer notar que en el interprete, las diferencias en el aspecto del maqui-nado simulado por el interprete de codigos G-M creado es muy similar al que sepresenta en Mach3. Se puede decir por lo tanto, que las simulaciones proporciona-das por el interprete creado son equiparables a la del software comercial Mach3.Se puede decir tambien que el interprete de codigos G-M, es capaz de simular elproceso de maquinado segun lo programado. Existen diferentes comportamientosdentro del maquinado que estan directamente relacionadas con el codigo G-M. La

Page 71: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 54

validacion del interprete fue hecha tambien usando un requerimiento de revisionque incluye el chequeo de la funcionalidad de las ventanas de control, la forma enque se visualiza el maquinado en la pantalla, la lectura y despliegue del archivode texto en el procesador, la forma en que el slash funciona, entre otros aspectosmas.

4.2 IDENTIFICACION DE LA PROFUNDIDAD DE COR-TE MEDIANTE EL SOFTWARE

Fue desarrollado un modulo especıfico para la identificacion visual de la pro-fundidad de corte para diferentes maquinados virtuales, en la pieza mecanica vir-tual simulada. Como se menciono la profundidad de corte queda expuesta, estemodulo puede simular con una mayor precision la geometrıa y el comportamientoestructural de la pieza maquinada. La identificacion de la profundidad de corte, eneste modulo es unicamente visual. El usuario es capaz de identificar visualmentela profundidad de corte, mediante el uso de colores programados en el interpre-te, esto se logra mediante la incorporacion de librerıas de OpenGL dentro de lasimulacion. Estas librerias nativas permiten manipular segun los requerimientosdel desarrollador los colores (RGB) representes en dichas librerıas. Cada colorpresente en el maquinado representa una profundidad, la cual esta indicada en lapaleta de colores que se encuentra situada a la izquierda de la pantalla de visuali-zacion.

Se puede observar mediante la disposicion de colores RGB, la profundidad decorte del maquinado virtual, se puede ver tambien que cada etapa en el maquinadoesta representado por un color designado con anterioridad. Se decidio agregar unmodulo para la simulacion de la profundidad en el maquinado que se este virtua-lizando al momento que se realiza la prueba. La profundidad se pone en evidenciadependiendo del color que el maquinado senale, y tambien en la ilusion de pro-fundidad, por el manejo de sombras en el maquinado virtual.

Segun las disposiciones de color en el maquinado que simula el interprete, ro-jo indica que esa parte maquinada es la menos profunda y azul corresponde a laparte mas profunda de la superficie maquinada virtualmente. Este analisis permiteal usuario predecir el maquinado antes de ser enviado a una maquina CNC real,ver defectos en la geometrıa del trabajo, ası como observar su comportamientoestructural mientras el maquinado ocurre.

Page 72: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 55

(a) (b)

(c) (d)

Figura 4.3: Identificacion visual de la profundidad de corte.

Esta validacion es de mucha importancia ya que se hace evidente que el interpre-te desarrollado es capaz de leer e interpretar con un amplio margen de funcio-nalidad diferentes codigos G-M en distintas condiciones. Eso le da una relativaventaja sobre los software comerciales que estan en el mercado hoy en dıa. Es-ta caracterıstica de identificar visualmente mediante colores RGB la profundidadde corte no las poseen muchos interpretes. Ejemplo de esto son las simulacionescreadas por el programa Mach3, donde el contraste de la profundidad es un temaque no es considerado.

El desarrollador puede anexar otras funcionalidades. Por ejemplo puede variarla cantidad de colores que el software soporta, vincularlos con otros fenomenosrelacionados con el elemento finito. Por ejemplo la prediccion de fuerzas de cor-te, temperaturas a la que la pieza esta sometida, fuerzas de tension, calidad en lasuperficie maquinada, solamente por mencionar algunas.

Page 73: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 56

4.3 RESULTADOSEn la figura 4.4 se muestran algunos de los maquinados obtenidos durante las

pruebas de funcionamiento del interprete de codigos G-M ISO6983. En este casolas figuras maquinadas son piezas virtuales rectangulares, con esquinas redon-deadas, esto demuestra la efectividad de la programacion de las interpolacioneslineales y circulares dentro del interprete. Se puede notar tambien el cargado exi-toso del codigo G-M al interprete, ası como la incorporacion de distintas ventanasde control y manipulacion del maquinado.

(a) Cubo.

(b) Bloques.

Figura 4.4: Ejemplos de maquinados en el interprete.

Page 74: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 57

4.3.1 SOFTWARE PARA LA APROXIMACION DE LA PROFUNDIDAD

Un interprete de codigos G-M ISO 6983 ha sido creado y probado con el fin deverificar la funcionalidad del mismo, de acuerdo a la norma estandar que rige a loscodigos G-M ISO 6983. Algunos algoritmos fueron creados y programados en elsoftware, con el fin de poner en marcha los modulos que integran en su totalidadal interprete ası como ciertos requerimientos en la estructura que esta programadadentro del interprete.

El primer paso es cargar el archivo que contiene la informacion que el interpre-te simulara, inmediatamente el algoritmo creado toma la decision con respecto alos datos cargados, sı el documento que ha sido ingresado no contiene codigosISO o cualquier otra informacion no relacionada con los codigos G-M entonces elinterprete mandara una senal de error que sera visible para el usuario, entonces lavisualizacion no sera mostrada. Se ha desarrollado un software (interprete de codi-gos G-M ISO 6983) capaz de procesar, interpretar y llevar a cabo simulaciones decodigo en 3D donde el usuario podra apreciar de manera virtual los maquinadosrelativos al codigo G-M que ha cargado en el software; este interprete simula latrayectoria de la herramienta de corte durante el maquinado de un sistema CNC,antes de ser enviado a una maquina herramienta real.

El interprete provee al usuario un entorno grafico 3D disenado con el uso delas librerıas OpenGL para C#, con el proposito de manipular el maquinado des-pues de la simulacion. Por ejemplo el software tiene la capacidad de rotar, realizarzoom en diversas opciones, cambiar el color de la herramienta, identificar la pro-fundidad de corte mediante la disposicion de colores RGB programados en elinterprete, entre otras caracterısticas. El desempeno del software fue probado condiferentes codigos G-M demostrando que cumple con el proposito especificado alinicio del proyecto.

Los resultados mostrados en esta seccion indican que el interprete es viable pa-ra la simulacion e interpretacion, esto fue uno de los objetivos en el inicio de esteproyecto. En comparacion con otros interpretes de codigos G-M disenados porotros investigadores, reportados en el estado del arte de este documento y otrosmas. El nuestro es notablemente superior ya que permite al usuario familiarizarsede una forma mas rapida debido a su diseno de facil manejo, ademas de ofreceralgunas caracterısticas que no estan presentes en otros interpretes, tales como lavisualizacion de la profundidad del maquinado simulado mediante la disposicion

Page 75: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 58

de colores RGB, que nuestro software posee.

El software disenado es capaz de interpretar codigo ISO 6983 para maquina-dos en maquinas herramientas. Otras de las caracterısticas del software disenadoes que es de codigo abierto (open source), esto le permite a futuros desarrolladoresadaptar el interprete segun los requerimientos que este crea conveniente. El codi-go fuente puede ser modificado de manera libre, tambien debido a esto el usuariofinal podra usar el interprete en una forma abierta y de facil acceso, debido a quesu disposicion es de manera intuitiva, no es necesario que el usuario posea cono-cimiento profundo relacionado con la programacion en C# y el manejo de ciertoscodigos G-M.

Con la intencion de aplicar el metodo propuesto, se diseno una aplicacion pa-ra el interprete que permite al usuario calcular la profundidad en el maquinado,usando las coordenadas las cuales son obtenidas directamente del codigo G-M es-crito. Esto fue gracias a la aplicacion de diferentes algoritmos de programacion,obtenidos del estado del arte, Yusof et al. 2015 [12], Rodrıguez et al. 2014 [13] yLatif et al. 2016 [19]. Los comandos dados por el codigo G-M en este caso estanen un formato ISO 6983, es decir son normalizados, estos codigos tienen datosde posicion incremental o absoluta de cada eje, velocidad del cabezal, velocidadde alimentacion y otra informacion que puede usarse para manipular algunas ca-racterısticas en el mecanizado, con respecto a la posicion incremental o absolutaestos parametros indica como y que tanto se movera el cortador en cada plano.

Algo de suma importancia en este trabajo es que el interprete de codigos G-Mes capaz de obtener la posicion del cursor haciendo clic en el area donde el usuariodesea conocer esta informacion. Las posiciones estan dadas en forma de variablesX, Y y Z. Esta informacion es extraıda del archivo en formato de texto, donde estaescrito el codigo. Tambien es importante mencionar que en cada area donde sedio clic reporta diferentes valores para cada parte del maquinado, esto confirma elfuncionamiento de este modulo. Como se puede observar tambien, existe el con-traste entre las diferentes profundidades de corte en cada seccion del maquinado.

Otro aspecto relevante para hacer notar es la capacidad que posee el interpretepara revelar informacion relacionada al maquinado virtual. El interprete propor-ciona la posicion donde esta situado el cursor del raton, esta funcionalidad esusada tambien para el despliegue de informacion relacionada con otros fenome-nos.

Page 76: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 59

(a) Posicion de coordenadas.

(b) Posicion de coordenadas.

Figura 4.5: Ejemplo de ubicacion para el area seleccionada.

4.3.2 VALIDACION MATEMATICA DE LA PROFUNDIDAD DE CORTE

Se conoce como profundidad de corte a la distancia de la profundidad que fuedesprendida en un proceso de maquinado. En otras palabras es la capa de materialdesprendida de la superficie de la pieza durante el proceso de maquinado usual-mente en una pasada de la herramienta. Generalmente se identifica con el sımbolot.

Para esta aplicacion por lo general las mediciones se realizan en nanometros.

Page 77: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 60

Generalmente en la practica, los maquinados reales, poseen una profundidad decorte de hasta cinco veces la velocidad de alimentacion, tal como pasa con el aceroinoxidable de corte bruto con una alimentacion de 0,020 mm por revolucion y unaprofundidad de corte de 0,100 mm. Lo que reducirıa el diametro en 0,200 mm. Sise producen marcas de vibracion o ruido de la maquina se reduce la profundidadde corte.

En un bien conocido experimento realizado y reportado por P. Palanisamy, ex-plica la profundidad de corte y el esfuerzo que esto conlleva matematicamente,algunas de sus conclusiones son expuestas a continuacion: Palanisamy et al. 2007[70].

• La fuerza tangencial Ft es proporcional a la fuerza especıfica y dependientedel material Ks, la alimentacion por diente f , la anchura de la viruta b yfinalmente el borde de la posicion de giro φ. Palanisamy et al. 2007 [70].

FT = Ksbfsenφ (4.3.1)

• Se supone que la fuerza radial normal es proporcional a la fuerza tangencialFN y kt representa el coeficiente de la fuerza de corte. Palanisamy et al.2007 [70].

FN = ktFT (4.3.2)

• El lımite maximo de la profundidad de corte bmin. Palanisamy et al. 2007[70].

bmin = −12kµRe(G(ω)) (4.3.3)

Donde k es la rigidez de corte, µ es la direccion del factor de orientacion, r esel coeficiente de amortiguacion de la herramienta de corte (ω/ωn),m es el prome-dio del numero de dientes que estan en contacto con la pieza mecanica durante elproceso de maquinado, ξ representa el factor de amortiguamiento propuesto porel usuario para el sistema a simular, y por ultimo Re[G(ω)] es la parte real del

Page 78: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 61

sistema dinamico, que se planea simular. Palanisamy et al. 2007 [70].

Re[G(ω)] = 1k

1− r2

(1− r2) + (2ξr)2 (4.3.4)

Por otro lado Bifano propone la siguiente expresion para el calculo de la pro-fundidad de corte especıfica en algunos materiales, en una prueba de identacionmicroscopica. Bifano et al. 1991 [71].

hc = 0.15(EH

)(KIC

H)2 (4.3.5)

Donde hc es la profundidad de corte critica usualmente expresado en µ m; Ees el modulo elastico del material, medido en GPa, H es la dureza del material,medido en GPa; y KIC es la tenacidad a la fractura del material.

En el trabajo reportado por Bifano, se menciona que en las trayectorias ge-neradas que sigue el laser, la rugosidad de la superficie fue medida en algunasregiones aleatorias, esto a lo largo del centro de la pista del laser, con el fin dedeterminar la calidad media de las micro-ranuras producidas por cada parametrorelativo al funcionamiento del laser. La tenacidad a la fractura podrıa obtenersetambien mediante un ensayo de cavidad microscopica, que podrıa calcularse enbase a la dureza del material, el modulo de elasticidad y la longitud de las grietas.Zhan-Kui et al. 2015 [72], Zhang et al. 2007 [73].

KIC = 0.004985( E

HV)1/2( P

C3/2 ) (4.3.6)

Donde HV es la dureza vicker del material, GPa; P es la carga, N; C es lalongitud de las grietas, mm; y KIC es la tenacidad a la fractura del material. Enel interprete de codigos G-M disenado en este trabajo, podemos proponer que elcambio de la profundidad crıtica de corte se rige por las ultimas ecuaciones.

Comparando el corte convencional contra el corte nanometrico, podemos ob-servar que en el nanometrico la profundidad de corte es de hasta 100 nm o menos.Generalmente en el corte nanometrico la formacion de la viruta (chip) tiene laintencion de iniciar desde los defectos puntuales o dislocaciones en un material

Page 79: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 62

especıfico simulado en el interprete CNC, debido a la relativa pequena profundi-dad de corte.

Otro fenomeno importante que ocurre en la simulacion nanometrica es que elproceso de deformacion de la superficie de la pieza de trabajo bajo la accion deuna herramienta de corte virtual. Este fenomeno es diferente porque la propiedaddel material es variante dependiendo de su estructura cristalina del material simu-lado.

Los movimientos de los atomos en la zona en movimiento estan determinadospor el producto de las fuerzas del potencial de interaccion y la solucion directa delas ecuaciones clasicas de movimiento Hamiltoniano presentadas en las siguientesecuaciones, Zhang et al. 2007 [73]. Con el fin de describir matematicamente y demanera nanometrica el mecanizado del corte, se proponen las siguientes ecuacio-nes: Zhang et al. 2007 [73]

Fx = − δViδXi

= P xi (4.3.7)

Donde Vi es el potencial de la pieza de trabajo, P es el momento y Xi = [x, y,z]. Zhang et al. 2007 [73].

VLJ(r) = |V (r0)|[(r0r

)12 − 2(r0r

)6] (4.3.8)

VH(r) = V (r0) + (r − ro2 )12 ∗ d2V (r0)dr2 (4.3.9)

Las ecuaciones anteriores se conocen como el potencial de Leonard-Jones, enestas expresiones r es la distancia entre los dos atomos; r0 es la distancia de lasformas interatomicas y armonicas.

Por otra parte, los movimientos de los atomos perifericos cuando se produceel mecanizado se modifican por la presencia de funciones de velocidad asociadascon cada atomo en la zona periferica. Las funciones de restablecimiento de velo-cidad que actuan sobre los atomos en la zona periferica sirven para representar losefectos de corte en la parte mecanizada. Podemos calcular de forma aproximadala profundidad de corte por el metodo de la variacion, este metodo puede quedar

Page 80: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 63

expresado de la siguiente manera: Zhang et al. 2007 [73].

V (x, y, z) = sup|f(x1, y1)− f(x2, y2)| (4.3.10)

Los resultados del comportamiento del material durante el mecanizado progra-mado a una intensidad de impulso de laser variada simulada es de (0.1−0.6mJ) o(0.78−4.8x105J/m2) y una superposicion de pulsos laterales (OVx = 50,75 88 %).Durante el mecanizado programado, el comportamiento del material en relacioncon la proporcion y profundidad de remocion, generalmente tiene un incrementoen la energıa del pulso laser y solapamiento lateral. El criterio de seleccion es-pecificado para las superficies totalmente texturadas fue el intervalo de rugosidadmedia de 3,0 nm a 6,0 nm.

Estas representaciones para la simulacion del proceso de corte nanometricoestan delimitadas para las coordenadas en el codigo G-M, esto define la profun-didad de corte en cada ejemplo. La profundidad de corte es 3,446 nm y 5.258 nmsegun la simulacion reportada. Esto demuestra que hay una variacion directamen-te relacionada con las coordenadas dadas en el codigo G-M originalmente.

La respuesta superficial observada, puede ser debida al hecho de que el diame-tro del haz se mantuvo constante. Esto hace que alguna region en el perfil del hazen la que la densidad de energıa laser programada en el interprete CNC estuvierapor encima del umbral de eliminacion de material.

Otra explicacion a la respuesta superficial que muestra el maquinado virtual,en las simulaciones realizadas puede ser debido al hecho de que el haz permanececonstante en la zona donde algunas irregularidades aparecieron. El efecto de lascoordenadas en el bloque del codigo G-M en la programacion del comportamien-to en el interprete, afecta directamente el comportamiento de mecanizacion y laapariencia. Los resultados mostraron que en algunas lıneas con la profundidad deremocion dirigida de 3,0 - 6,0 nm, denota que este valor se logro dentro de unrango de energıa de impulsos de 0,15 a 0,30 mJ.

Se puede considerar esta seccion como la caracterizacion virtual mediante laimplementacion de algoritmos de programacion, del proceso de corte. A partir demodelos matematicos propuestos por diferentes investigadores, de forma que des-criban de manera aproximada el fenomeno fısico.

Page 81: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 64

(a)

(b)

Figura 4.6: Efecto de la rugosidad programada en una superficie maquinada.

En las simulaciones creadas se puede observar las alteraciones que sufre lasuperficie durante el maquinado virtual. Estas alteraciones, son el resultado de laprogramacion que se abordo en esta seccion. Esto comprueba la posibilidad deprogramar el comportamiento que tendra el maquinado durante un determinadocorte, esto mediante la inclusion de parametros de corte en el interprete.

Page 82: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 65

4.3.3 EVALUACION GRAFICA DE LA RUGOSIDAD EN UNA SUPERFICIE ME-DIANTE UN CORTADOR LASER

Para incrementar la versatilidad del interprete, se decidio agregar un modu-lo extra para la evaluacion grafica de la rugosidad en una superficie maquinadamediante un cortador laser. Se implementan varios algoritmos de programacionpara la creacion del modulo. En procesos de mecanizado mediante cortador laser,se utiliza una tecnica novedosa para mejorar las propiedades de adherencia, estatecnica se denomina texturizacion laser.

Durante el proceso de texturizacion, un cortador laser de pulsos cortos y unafrecuencia de repeticion relativamente alta, texturiza en la superficie donde estateniendo lugar el proceso de maquinado. La interaccion entre el laser y el mate-rial esta relacionada por muchos factores como la composicion y estructura de lasuperficie, la energıa, la frecuencia, la interaccion con la atmosfera y la anchurade pulso del corte por laser.

Durante el proceso de maquinado nanometrico, la naturaleza nano estructuraldel material que componen la pieza a maquinar debe ser considera como un aspec-to de suma importancia. Esto con el fin de conseguir una alta calidad superficial.Los materiales de ingenierıa utilizados comunmente para el nano-mecanizadoestan comprendidos entre 100nm y 100µm de espesor, DeVor et al. 2004 [74].Por muchos anos la rugosidad en superficies maquinadas ha sido estudiada, la si-guiente ecuacion fue concebida para explicar el ya mencionado fenomeno. DeVoret al. 2004 [74].

Ra = 0.0321f2

rε(4.3.11)

Donde Ra es la rugosidad de la superficie maquinada, f es la velocidad/tipode alimentacion de la maquina herramienta, rε es el radio de la herramienta decorte. Con el fin de hacer una validacion correcta relacionada con la rugosidad,hemos seguido la ecuacion 4.3.10, para simular el impacto de esto en la superficiede un mecanizado simulado se puede observar, el efecto de esto en el mecanizado.

Segun Koechner et al. 2008 [75], para comprender correctamente el funciona-miento de un laser, debemos conocer algunos principios que rigen la interaccionentre radiacion y materia. La longitud de onda de la radiacion absorbida o emitida

Page 83: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 66

viene dada por la relacion de frecuencia de Bohr. Koechner et al. 2008 [75].

E2 − E1 = hv21 (4.3.12)

Donde E2 y E1 son dos niveles discretos de energıa y v21 es la frecuencia, y hes la constante de Planck.

El funcionamiento de un laser requiere que el equilibrio de energıa de un ma-terial sea cambiado de tal manera que la energıa se almacene en los atomos, ioneso moleculas de este material.

Otro aspecto importante relacionado con la propagacion de un pulso laser, deacuerdo con Yariv et. al. 1984 [76], la radiacion laser que opera en una onda con-tinua se puede describir y categorizar por sus efectos sobre la propagacion de unpulso laser debido a la dispersion y esto puede ser senalado por la representaciondel pulso como la suma de muchas soluciones de onda plana, propias de las ecua-ciones de Maxwell.

En el lımite, reemplazaremos la suma por una integral, y consideraremos elcaso de ondas escalares unidimensionales. La amplitud escalar γ(z, t), puede con-siderarse como uno de los componentes del vector del campo electromagnetico.Si A(k) denota la amplitud de la componente de la onda plana con un numero k,el pulso γ(z, t) puede escribirse de la siguiente manera: Yariv et. al. 1984 [76]

γ(z, t) =∫ ∞−∞

A(k)ei(ω(k)t−kz)dk (4.3.13)

La ultima ecuacion satisface la ecuacion de Maxwell, ya que el integrando esuna solucion basica de onda plana. El proceso de corte por laser tradicional esprincipalmente una accion termica en la que se utiliza un haz laser enfocado pa-ra fundir material, localizado en un area especıfica; se produce un corte continuomoviendo el rayo laser o la pieza de trabajo bajo control CNC.

En el proceso de corte por sublimacion laser, el material se retira y se cortapor evaporacion de metal, de acuerdo con los requisitos del proceso, esto requieredensidades de luz y ciertas condiciones termicas y ambientales. El usuario puedeobtener esta condicion mediante el ajuste apropiado de la radiacion laser y el en-

Page 84: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 67

foque del mismo.

El proceso de corte por laser suele implicar el enfoque de un rayo laser, con susrespectivos lentes, que pueden ir desde un espejo concavo hasta un pequeno pun-to que tiene una densidad de potencia suficiente para producir un corte por laser.Este proceso usa una computadora para dirigir la salida de laser de alta potenciaen direccion al material, para que este sea cortado. En este proceso el materialse funde mediante la interaccion del laser, quema o vaporiza la pieza de trabajodonde el laser esta fresando directamente, el haz del laser es guiado por lıneas enun archivo vectorial, en el caso del trabajo descrito en este documento el archivovectorial corresponde al archivo de codigo G-M escrito en un formato de texto.

Adicionalmente, el laser se dirige a traves del brazo de corte, usando espejospara hacer rebotar el haz en la direccion correcta. Para aplicaciones de mecani-zado real, la intensidad del laser se ajusta para estar algo por encima del umbralde dano que el material posea, es decir se tiene que hacer un analisis de que tantapotencia podrıa soportar el material en el proceso de corte, antes de sufrir un danoirreversible o que sus caracterısticas quımicas y estructurales se vean afectadas.

De acuerdo con Perry et al. 1999 [77], la absorcion lineal por defectos produ-ce una absorcion de energıa no homogenea a traves del rayo laser. Las tensionestermicas aumentan hasta el punto en que la ablacion comienza primero desde elpunto con la menor resistencia del material.

Segun Tshabalala et. al. 2016 [36] en su trabajo de investigacion reportado,para predecir el valor de la anchura de barrido laser y la tasa de eliminacion dematerial en estos parametros de mecanizado elegido, los datos tienen que ser go-bernados por las ecuaciones logarıtmicas como se determina mediante regresionde mınimos cuadrados. Las curvas de ajuste para el proceso, la profundidad deremocion (Z, µm) y la anchura de la pista del laser (W,µm) son las siguientes:Tshabalala et al. 2016 [36]

Z = aexp(b ∗OVx)in(Ep) + cexp(d ∗OVx) (4.3.14)

W = aexp(h ∗OVx)in(Ep) +m.exp(p ∗OVx) (4.3.15)

Donde a, b, c, d, g, h,m y p son los coeficientes de ajuste de curvatura,Ep(mJ)

Page 85: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 68

y OVx( %) son la energıa del pulso y la superposicion lateral respectivamente.

Este sistema es utilizado para la medicion activa de la rugosidad y determinarla forma de la superficie, cabe senalar que dicha parametrizacion debe tener unabaja sensibilidad a la vibracion, un ındice que tienda a cero polvosidad y otrosfactores que impiden la medicion.

Este enfoque se basa en el analisis de regresion, en contraste con el enfoqueanalıtico-empırico indicado en el estudio actual del estado del arte. No contieneparametros mecanicos del material, por lo cual no puede ser generalizado.

La tecnologıa laser es una tecnica relativamente joven, tanto que no ha alcan-zado una edad de 40 anos de existencia. En este proyecto hemos decidido utilizarla tecnica propuesta por Tshabalala et. al. 2016 [36]. Los experimentos se reali-zaron en un laser de corte virtual programado en el interprete CNC expuesto eneste trabajo. Las caracterısticas tecnicas propuestas en el desarrollo de la progra-macion fueron: La dimension de muestra de la pieza de trabajo es de 4.8 x 14 x14 mm3 y las propiedades de los materiales usados dentro de la programacion, semuestran e indican en la tabla 4.1.

De acuerdo con Tshabalala la texturizacion de la superficie se realizo utili-zando un modo pulsado. El modo pulsado fue de 25 W de laser de granito dealuminio-itrio dopado con neodimio, con una longitud de onda de 1064 nm, paraaclarar este punto en esta simulacion el sistema laser fue programado para actuaren 3 ejes (X, Y, Z).

Con el fin de disenar un entorno mas realista, el haz laser considerado pro-gramado fue con una duracion de impulso de 250 ns. Los experimentos de Ts-habalala se realizaron bajo condiciones atmosfericas especificas, usando un perfilde haz laser espacial gaussiano de diametro φ = 40µm, este aspecto especıficofue considerado en los aspectos y requerimientos de programacion del interpreteCNC. Tshabalala et. al. 2016 [36]

Basados en experimentos y analisis de Radovanovic et al., las ecuaciones quedeterminan la rugosidad de la superficie en este proyecto se muestran inmediata-mente. Radovanovic et al. 2006 [31].

Page 86: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 69

Tabla 4.1: Propiedades de los ejemplos de maquinados programados

Material Densidad Color Coef. de Exp. Cond. Termica Reflect.Si3N4 − SiC 3244 Kg/m3 Verde 3.92 (10−6)(1/k) 23.6 W/m 0.15

Rz = 12.528 S0.542

(PL)0.542V 0.322 (4.3.16)

Ra = 2.018 S0.670

(PL)0.451V 0.330 (4.3.17)

Donde Rz es la rugosidad estandar, Ra es la desviacion del perfil aritmetico,PL(KW ) es la potencia del laser, S(mm) es el grosor de la pieza, v(m/min) lavelocidad de corte, estas ecuaciones pueden ser aplicadas para la prediccion enterminos matematicos, del comportamiento de la rugosidad en una superficie ma-quinada.

Numerosos estudios han intentado explicar el potencial del par, por ejemploAbell et al. 1985 [78] ha propuesto una interpretacion fısica de los parametrospotenciales. Observar la ecuacion 4.3.18. Abell et al. 1985 [78].

VM (r) = D[exp[−2α(rij − r0)]− 2exp[−α(rij − r0)]] (4.3.18)

Donde rij es la distancia interatomica entre i y j; D y α son las constantes deMorse y por ultimo r0 es la distancia general para los atomos de la estructural delmaterial.

En 1988 Tersoff publico una investigacion, donde describe un potencial parael silicon, las ecuaciones que describen el comportamiento son: Tersoff et al. 1988[79]

E =∑i

Ei =∑i,j 6=i

Vij2 (4.3.19)

En la ultima ecuacion, E indica aquı la energıa total del sistema. Ei es laenergıa del sitio donde se esta llevando a cabo el maquinado, esto es en el sitio

Page 87: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 70

i. Vij es la energıa de interaccion entre los atomos i y j. Rij es la distancia deinteraccion entre los atomos i y j. Tshabalala et al. 2016 [36].

Tabla 4.2: Rango de parametros de procesamiento laser.

Parametro Formula/Nomenclatura Unidades ValoresDiametro del haz φ µ m 40Energıa de pulso Ep mJ 0.1 - 0.60Ancho de pulso Pw ns 250

Frec. de repeticion de pulso f kHz 10,20,30Velocidad de escaneo laser v mm/s 50-600

Espaciado de escaneado laser S µ m 20Solapamiento de pulso lateral OVx = 100[1− ( V

fφ)] % 50-78

Num. de pulsos laterales N = vfφ

% 2,4,8Solap. de pulso transversal OVy = 100[1− (S

φ)] % 50

Prom. de densidad de energıa F = Ep

0.25φ(φ)2 105J/m2 0.78-4.77

Con el firme proposito de lograr una simulacion de un mecanizado mas realis-ta se siguieron los criterios de Tshabalala et al. 2016 [36], donde se caracteriza laprofundidad de remocion (Z), estas caracterizaciones segun Tshabalala son espa-ciadas uniformemente (10 µm - 25 µm). Como se puede ver en las figuras 4.6 (a)y 4.6 (b).

La tasa de repeticion de impulsos (f ) fue variada a lo largo de la velocidad deexploracion (v) con la intencion de investigar el efecto de la superposicion de losimpulsos laterales, el numero de impulsos suministrados y la densidad energeticamedia.

La seleccion de los parametros del laser para las superficies totalmente textu-rizadas, y para la inclusion de los mismos dentro de la programacion del interpretey del respectivo diseno de algoritmos de programacion, tenıan que satisfacer porprimera vez algun criterio de programacion. Por ejemplo, el uso correcto de lasbibliotecas OpenGL y algunos detalles tecnicos para que el aspecto y la aparienciade mecanizado fuera la mejor posible.

Page 88: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 71

En las simulaciones creadas se considera el cambio de rugosidad de la superfi-cie para diferentes grosores de piezas mecanicas y diferentes coordenadas escritasen el bloque de codigo G-M, donde esta informacion aparece originalmente. Estasimagenes muestran tambien como puede cambiar la apariencia y calidad de ma-nera visual de la rugosidad durante un proceso de maquinado virtual.

En las simulaciones creadas por el interprete se presentan los defectos super-ficiales y subsuperficiales durante el maquinado de nano-corte simulado en estetrabajo. Las diferentes profundidades de cada superficie son coloreadas por susdiferentes valores de colores RGB. Estas imagenes tratan de decir que primero si-mulamos el proceso de generacion de algunas superficies con codigo G-M escritoen un formato de texto, resultando de esta manera algunas superficies nanometri-cas, utilizando una herramienta de punta especıfica disenada y abordada en otrostrabajos de investigacion reportados en este documento.

Debe tenerse en cuenta que la distancia entre cada superficie de las etapas demaquinado visibles en las simulaciones. Se especifican dependiendo del color re-presentado. Todo el material desplazado en el mecanizado es representado por unarea libre en el maquinado y tambien por algun rasguno que puede ser visto en lasuperficie nanometrica cortada.

Cuando el proceso de corte por laser esta ocurriendo, algunos aspectos im-portantes deben ser considerados para evitar danos en el area maquinada, estosaspectos son algunas propiedades en el material donde se llevara a cabo el meca-nizado, estas propiedades son: propiedades opticas, termicas, electricas y mecani-cas presentes en el material. La absorcion de la radiacion incisiva es una de lasmas importantes, ya que no solamente depende de las caracterısticas propias delos materiales; tambien depende en gran medida de la longitud de onda de la ra-diacion.

En la tecnica de corte por laser, la extraccion del material se realiza por eva-poracion del material a traves de toda la zona de corte. Esto representa la perdiday/o alteracion de algunas propiedades en el material al que fue expuesto el maqui-nado y que ademas es sometido a condiciones de calor. El corte mediante laser esun proceso de fusion-resolidificacion y en este proceso el material modifica suspropiedades. La transmision de calor se realiza mediante el enfoque del laser en lasuperficie, incrementando la temperatura hasta el punto de ebullicion del material

Page 89: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 72

utilizado.

De acuerdo con el mecanizado generado en esta simulacion, mediante el cor-te con el laser programado en este interprete de codigos G-M ISO 6983 con unapotencia de 800 Kw, con el objetivo de predecir la rugosidad de la superficie, larugosidad estandar Rz es aproximadamente entre 10 µm y 25 µm. A pesar delhecho de que el corte por laser representa y ofrece muchas ventajas sobre otrastecnicas de corte, el corte por laser tiene un alto consumo de energıa y puede re-querir mucha energıa para desarrollar un corte o maquinado.

El costo y la configuracion de un cortador laser tambien puede ser muy alto encomparacion con otras tecnicas. El diseno presentado en este trabajo es practico yutil porque ofrece una gran precision y puede enfocar puntos muy pequenos, redu-ce la posibilidad de deformacion de material porque es una simulacion y ademasse puede probar antes de enviar para realizar el maquinado en un CNC real, conel fin de corregir posibles errores presentes en el mecanizado, de manera previa.

La figura 3.12 representa el efecto de la rugosidad programada, en un ma-quinado virtual, durante las pruebas de funcionamiento del interprete de codigosG-M reportado en este trabajo de tesis, debido a la complejidad de este maquina-do y de la aplicacion de diferentes ındices numericos para determinar la rugosidad.

4.3.4 CONTROL DE LOS SERVOMOTORES MEDIANTE EL SISTEMA CNC

Las ventajas que representa la creacion de un sistema CNC, son numerosas yaque este puede operar simultaneamente, tres ejes o mas con los que trabaja la fre-sadora o torno, segun sea el caso. La disminucion de tiempo de trabajo es tambienuna relevante ventaja que bien vale la pena mencionar. Otra ventaja importante esel uso de equipos CNC hoy en dıa, por ejemplo en cortadoras laser, tornos, cor-tadores de hilos en la industria textil y en las impresoras 3D. Por otra parte valela pena mencionar que la precision que alcanzan los sistemas CNC en las opera-ciones de maquinado son sumamente altas, ademas de trabajar a altas velocidades.

Para el posicionamiento en un plano cartesiano de la herramienta de corte, lacual en este caso es representada por el servo motor CA a 400 Watts del sistemaCNC, se considero adecuado el uso del sistema CNC reportado en este trabajo detesis, para controlar la posicion y los movimientos del servomotor antes mencio-

Page 90: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 73

nado.

Con esta actividad, se pretende dar una descripcion aproximada de la aplica-cion del sistema CNC. Este sistema podra ser usado para satisfacer las necesida-des de los nuevos desarrolladores de conocer el funcionamiento de dicho sistema.Gracias a la creacion de este sistema CNC se pueden ahorrar costos y tiempo dediseno.

Basicamente el montaje del sistema CNC proporciona aprendizaje al disenador,pues a partir de este se resuelven las dudas de funcionalidad, que pudiesen habersurgido durante la elaboracion del interprete de codigos G-M ISO6983, ya que esuna forma de sugerir una aplicacion a dicho interprete dentro del sistema CNCcreado.

Durante la etapa de pruebas del sistema CNC y basados en pruebas presenta-das en el trabajo de Antoni et al. 2012 [80]. Se elaboraron diferentes medicionespara la posicion en grados de cada motor, estas pruebas fueron hechas a partir dela aplicacion del sistema CNC que se menciona en este apartado. El desarrolladorse enfoca solamente en el motor del eje X. En la tabla 4.3 se registran los datos decada angulo obtenido. Durante este proceso se realiza una normalizacion al angu-lo real entre 0◦ y 180◦ .

El angulo de normalizacion es calculado de la siguiente manera:

Diferencia = Angulo real + Angulo medido (4.3.20)

Cabe mencionar que el signo es asignado segun el sentido de giro, si este esopuesto entonces el signo sera negativo. Para crear la tercera columna de la tabla4.3, se decidieron las posiciones reales como absolutamente correctas, esto conla intencion de tener una referencia y de esta manera ajustar los angulos. Es porlo anterior que se decidio que los angulos de 90◦ son correctos pues estan en elcentro y son considerados como poseedores de un error de 0◦.

Como ya se menciono la intencion es normalizar a 90◦, entonces hay que cal-cular la diferencia entre el valor real y el deseado donde el angulo deseado es 90◦,que esta a la mitad de la tabla 4.3, Antoni et al. 2012 [80], este calculo sera obte-nido de la siguiente manera:

Page 91: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 74

Diferencia = 90◦ + (−86.5◦) = 3.5 (4.3.21)

Los demas angulos son calculados a partir de la ecuacion 4.3.20 sumando 3.5◦

a los resultados de la columna dos, de esta manera se obtiene la normalizacion a90◦, que esta expresada en la columna tres.

Diferencia− Angulo medido = Angulo real (4.3.22)

A partir de la ecuacion 4.3.22 se obtiene el valor real del angulo para el servo-motor que fue sometido a pruebas de funcionamiento.

Figura 4.7: Distancia angular entre angulo deseado y real.

Observando la figura 4.7 el giro del servomotor, representa al eje X no es co-rrecto, quizas sea causa de la programacion, la efectividad del sistema CNC ola calidad del servomotor usado. El sistema tiene varias desviaciones cercanas almedio grado (0.5◦), esto se presenta entre los 0◦ y 90◦, y despues de esa zona, ladesviacion es cada vez mayor, alcanzando niveles de casi 7◦ para cuando llega ala posicion indicada de 180◦. Debido al fenomeno presentado acerca de la exce-siva desviacion en la aplicacion del sistema CNC, se propone realizar en trabajos

Page 92: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 75

Tabla 4.3: Angulos obtenidos y calculados durante pruebas de posicionamiento.

Angulo deseado (◦) Angulo real (◦) Normalizacion a 90◦ Pos. deseada-real (◦)0 3.8 −0.3 −0.310 −6.4 9.9 −0.120 −16.2 19.7 −0.330 −26.3 29.8 −0.240 −35.9 39.4 −0.650 −46.2 49.7 −0.360 −55.8 59.3 −0.770 −66.0 69.5 −0.580 −76.6 80.1 0.190 −86.5 90.0 0.0

100 −96.8 100.3 0.3110 −107.4 110.9 0.9120 −118.1 121.6 1.6130 −128.7 132.2 2.2140 −139.7 143.2 3.2150 −150.6 154.1 4.1160 −161.5 165.0 5.0170 −171.9 175.4 5.4180 −182.8 186.3 6.3

futuros un ajuste por aproximacion mas detallado, para obtener una posicion masexacta.

Con respecto al calculo de potencia del sistema, se puede mencionar que elprototipo consta de tres motores principales que representan los respectivos ejesde movimiento en el sistema CNC:

1. Motor de AC de 1/2 HP a 1600 RPM.

2. 2 servo motores de 400 Watts.

Con la informacion proporcionada, se obtuvieron los calculos para conocer

Page 93: I P ´ NACIONAL

CAPITULO 4. VIRTUALIZACION DE MAQUINADOS 76

la cantidad de material que segun la aplicacion propuesta, puede manejar en unaconfiguracion de torneado.

Vc = π ∗ diametro(mm) ∗RPM1000 (4.3.23)

Suponiendo que se desea maquinar una pieza de 150mm de diametro, a unavelocidad de giro de 1600 RPM, se tendrıa:

Vc = π(150)(1600)1000 = 753.98 m

min(4.3.24)

Considerando que la potencia de corte se define de la siguiente manera:

Pc = Vc ∗ f ∗ d ∗ Ps6.12 ∗ 103 ∗ ρ

(4.3.25)

Donde:Pc es la potencia de corte (kW ).Vc es la velocidad de corte (m/min).f es la velocidad de avance en (m/rev).d es la profundidad de corte (mm).Ps es la fuerza especıfica de corte (N/mm2).ρ es la eficiencia mecanica del sistema (80 %).

Pensando que en la aplicacion del sistema CNC maquina aluminio, cuya fuer-za especıfica de corte Ps = 465 N

mm2 con velocidad de avance de 15 mmin

, una po-tencia de corte Pc = 2kW y una eficiencia del 80 % en todo el sistema CNC, setiene:

d = (6.12)(103)(ρ)(2)(Vc)(f)(Ps)

= (6.12)(103)(0.8)(2)(753.98)(1.5)(465) = 0.18mm2 (4.3.26)

El sistema CNC propuesto en esta seccion serıa capaz de procesar y trabajaruna seccion de 0.18mm2, despues de su montaje y adaptacion de un cortador concaracterısticas especıficas.

Page 94: I P ´ NACIONAL

Ahora no es el final. Ni siquiera es el co-mienzo del final. Pero es, quizas, el finaldel principio.

Sir Wiston Leonard Spencer Churchill1874-1965

5Discusion y Conclusiones

En este capıtulo se realiza un analisis de los resultadosobtenidos, durante la validacion del interprete. Se propor-cionan observaciones y recomendaciones, para posiblesnuevos desarrolladores y por ultimo se explica la proyec-cion a futuro del interprete, ası como las posibles mejorasque puede experimentar.

Resumen

77

Page 95: I P ´ NACIONAL

CAPITULO 5. DISCUSION Y CONCLUSIONES 78

5.1 DISCUSION

Se ha desarrollado un software para la simulacion 3D de codigos G-M, nospermite visualizar el recorrido de la herramienta virtual al contacto con lapieza mecanica. Hace un estudio de la calidad de la superficie maquinada

a traves de la incorporacion de diferentes algoritmos de programacion orientadosa la visualizacion grafica, valiendose de la disposicion de diferentes colores en elarea de maquinado.

El interprete de codigos G-M ISO 6983, simula las reacciones ante rugosidadprogramada en un material ası como el uso de diferentes ambientes. Hace unaaproximacion en la profundidad de corte mediante la estratificacion de capas enel corte senalado a traves de colores RGB. El software provee un entorno grafico3D para la manipulacion de la pieza mecanica.

El objetivo del trabajo de tesis reportado, fue presentar informacion sobre unanueva tecnica propuesta para un diseno de interprete CNC relacionado con la in-terpretacion de los codigos ISO 6983. El proyecto fue emprendido para disenar,programar y lograr que funcione correctamente. Fue creado tambien para evaluary predecir la apariencia grafica del maquinado antes de enviarlo para realizar elmaquinado real en una maquina CNC.

Se ha propuesto un nuevo modelo para el desarrollo de un software para lainterpretacion de codigos ISO 6983 o tambien llamados codigos G-M CNC. Seimplemento con exito a traves de una interfaz GUI y algoritmos programados. Laconversion a movimientos simulados, fue posible gracias a la implementacion debibliotecas de OpenGL y algunas nuevas tecnicas expuestas en este trabajo de te-sis. El interprete desarrollado fue programado usando la plataforma de MicrosoftVisual Studio 2012 para el diseno y la implementacion de la interfaz grafica deusuario GUI, fue disenado y programado en C# como un lenguaje de programa-cion en la plataforma Microsoft.NET Framework 4.5.

Se han presentado ejemplos de aplicacion en este trabajo de tesis, incluyendopiezas maquinadas que fueron predichas por el interprete, ası como algunos casosde identificacion de rugosidad y de profundidad de corte, que se han reportadoen esta tesis y otras simulaciones de codigo ISO, que demuestran la eficacia, fun-cionalidad y los beneficios del interprete CNC presentado. Este desarrollo puededesempenar un papel importante en el crecimiento de las pequenas industrias.

Page 96: I P ´ NACIONAL

CAPITULO 5. DISCUSION Y CONCLUSIONES 79

El interprete no necesita muchos requerimientos para su buen uso, su versati-lidad al ser de codigo abierto facilita al desarrollador incorporar cualquier funcionque este desee, ya sea en cuanto calidad de la superficie, profundidad y comporta-miento de la rugosidad en condiciones especıficas con diferentes materiales. Cabesenalar que el interprete durante su validacion ha sido sometido a constantes prue-bas de caracter repetitivo, incluyendo importacion de archivos donde se encuentraescrito el codigo G-M de mas de 20000 lıneas de codigo.

5.2 ANALISIS DE RESULTADOSAnalizando de manera detallada los logros alcanzados, ası como la incorpora-

cion de la comparacion de otros trabajos realizados por otros investigadores en elestado del arte, se puede mencionar lo siguiente:

Puesto que el interprete de codigos ISO 6983, reportado en este documento, esproducto de la complementacion de los codigos generados en un trabajo de tesisanterior a este, Maciel et al. 2014 [81]. Se realizo la complementacion de codigosexistentes, enfocandose unicamente en la virtualizacion de maquinados mediantela interpretacion de codigos G-M.

Se realiza la definicion de requerimientos, para el diseno de un analisis decodigo G-M. El simulador cuenta con tres diferentes analizadores dentro de laprogramacion. Para cada instruccion insertada, se analizan los posibles errores enla construccion, desplegando un mensaje acerca de la procedencia del error. Estosanalizadores son el semantico, sintactico y lexico, que integran una parte funda-mental del interprete, son los encargados de filtrar, analizar y tomar las respectivasdecisiones en relacion al codigo insertado, estos analisis se encuentran detalladosen las secciones 3.1.1, 3.1.2, 3.1.3, 3.1.4 y 3.1.5.

Se creo una interfaz grafica de facil manejo e intuitiva. Se desarrolla conside-rando la comodidad al momento de la operacion, facilitando lo mas posible losaccesos en el menor numero de acciones posibles. Se muestra graficamente to-das las ventanas de control que el interprete posee, especificando rutas y demasdetalles relacionados con el manejo del interprete, esto se puede observar en lassecciones 3.2 y3.3.

Page 97: I P ´ NACIONAL

CAPITULO 5. DISCUSION Y CONCLUSIONES 80

Se disenaron y se anexaron diferentes algoritmos de programacion, con la in-tencion de ejecutar los diferentes modulos desarrollados y que integran al interpre-te. Gracias a estos algoritmos es posible la visualizacion grafica de los movimien-tos en el interprete.

Por otro lado, se crearon multiples algoritmos de programacion con el objeti-vo de darle funcionalidad a cada una de las ventanas creadas en el interprete, estopermite al usuario final abrir varias ventanas dentro de la interfaz grafica GUI, estose logra gracias a la jerarquıa de clases presentes en el lenguaje de programacionC#, mas detalles se encuentran en la seccion 3.3.1.

Durante el diseno y creacion del interprete/virtualizador de codigos G-M, secrearon diversos algoritmos de programacion para la visualizacion grafica de losmovimientos en el interprete. Se crearon rutinas para la lectura y despliegue delarchivo en codigo G-M, al igual se creo un G-code parsing1 para el dibujo degraficos 3D dentro del interprete. Se crean modulos para la seleccion de vistas,zoom, traslacion y rotacion de la pieza mecanica virtual, vease la seccion 3.4.

Se realizo la integracion de cada uno de los modulos que fueron creados, queconformara al interprete, dandole a este una apariencia equiparable a los softwareque se encargan de la interpretacion y virtualizacion de maquinados, vease la sec-cion 3.4.

Se crea un modulo para que de manera visual dentro del interprete se puedadeterminar la profundidad de corte. Esto mediante la disposicion de colores RGBque indican la profundidad en cada etapa del maquinado, esto se logro mediantela manipulacion de las librerıas de OpenGL, para mas detalles acerca de este temarevisar la seccion 4.2.

Para proporcionarle un mayor impacto a las funcionalidades del interprete, seanexo a su programacion y estructura un modulo especıficamente para el calculode la aproximacion numerica de la profundidad de corte, esto quedo registrado enlas secciones 4.3.1 y 4.3.2.

1Programa que es capaz de filtrar, leer y tomar decisiones segun la programacion del desarro-llador.

Page 98: I P ´ NACIONAL

CAPITULO 5. DISCUSION Y CONCLUSIONES 81

Con la intencion de aportar mayor versatilidad al desempeno del interprete, secreo y se integro a la estructura del mismo un modulo, cuyo funcionamiento vaorientado a la evaluacion grafica de la rugosidad cuando esta sometido a un proce-so de corte mediante un cortador laser, este modulo es una aproximacion graficadel proceso de corte en la realidad, vease la seccion 4.3.3.

Por otra parte es posible afirmar que el interprete/virtualizador de maquinadosISO 6983, posee las siguientes caracterısticas y aplicaciones, que lo definen:

• Prediccion del comportamiento del mecanizado antes de ejecutarlo en unamaquina CNC: Durante el proceso de mecanizado se pueden predecir algu-nos aspectos importantes relacionados con la precision, las colisiones y lasinterferencias, se mostrara en la pantalla del interprete, antes de realizar elmecanizado real.

• Optimizacion de resultados: El usuario puede predecir los resultados de me-canizado y detectar algunas imprecisiones y problemas de colision, de modoque puede optimizarse y corregirse, con el fin de mejorar el rendimiento delmecanizado.

• Determinacion de la calidad de una superficie maquinada: Esto se puedelograr ya sea por la rugosidad o algunos otros parametros programados enel interprete CNC.

• Identificacion de la profundidad en la superficie maquinada: Con la inten-cion de observar y senalar como se esta desarrollando el mecanizado duran-te la simulacion.

• Programacion del comportamiento de un modelo de corte por laser: El ob-jetivo en este caso es simular el efecto del laser en una superficie especıficade material.

• Formacion de estudiantes y personal de ingenierıa con un bajo costo: Elinterprete del CNC se realizo con fines didacticos, por lo que los estudian-tes y personal especializado o tambien los aprendices pueden practicar lasoperaciones, procedimientos y habilidades en un entorno seguro y adquirirconocimientos.

Page 99: I P ´ NACIONAL

CAPITULO 5. DISCUSION Y CONCLUSIONES 82

• Codigo abierto: El interprete fue creado en un entorno de codigo abiertopara que en el futuro, sı un usuario/desarrollador quiere modificar o simple-mente mejorar el rendimiento del interprete CNC lo pueda hacer, o agregartambien caracterısticas que no poseen los software comerciales.

• Versatilidad: Se puede utilizar en cualquier lugar sin necesidad de hardwareadicional.

A continuacion se realizan comparaciones entre nuestro desarrollo y los interpre-tes reportados por otros investigadores en el estado del arte.

Uno de los principios basicos para la virtualizacion de figuras reales, se mues-tra el trabajo creado por Puig et al. 2003 [37]. La manipulacion de graficos estapresente mediante el uso de las librerıas de OpenGL, caracterıstica compartida conel interprete creado en este trabajo de tesis. La ventaja que presenta el trabajo re-portado por Anna Puig es el excelente uso del renderizado en las figuras virtuales,caracterıstica que es un area de oportunidad en la virtualizacion de maquinadosdel interprete de codigos G-M. Una ventaja que ofrece el interprete creado, es eluso de algoritmos de programacion para situaciones de maquinados especıficas,tema que no fue considerado en el trabajo de Puig. Por otro lado, con el diseno deuna interfaz grafica poco intuitiva, limita su uso a un sector de usuarios, situacionque se considera en el diseno de la GUI del interprete de codigos G-M, abordadoen este trabajo de tesis.

Nuestro interprete y el interprete presentado por Hong et al. 2010 [82], el nues-tro tiene la capacidad de reconocer la misma cantidad y tipos de token, dandole aeste, el sentido de la homologacion con el reportado. Por otra parte los trabajos re-portados por Hong et al. 2010 [82] y Rodrıguez et al. 2014 [13] respectivamente,ofrecen un analisis lexico-semantico-sintactico en sus respectivos trabajos, carac-terıstica que el interprete reportado tambien posee. Una de las desventajas queenfrenta el interprete en relacion con el reportado por Alma G. es la incorporacionde un protocolo de programacion para comunicarse con un PLC, caracterısticaque el interprete de codigos G-M reportado no posee.

Por otro lado, en el diseno y creacion de interpretes de codigos G-M, existeuna gran variedad de metodos. El trabajo de investigacion reportado por Guo et al.2012 [83], contiene en su programacion, un diccionario NC, que almacena la es-pecificacion del programa NC, algo muy similar a lo que el interprete reportado en

Page 100: I P ´ NACIONAL

CAPITULO 5. DISCUSION Y CONCLUSIONES 83

este trabajo de tesis posee en la seccion 3.5.5, del menu asistente, con la diferenciade que en el trabajo de Xingui Guo, el diccionario es mas completo. El modulointegrado en el trabajo de Guo et al. 2012 [83], es un motor de interpretacion, quecomprueba programas NC y genera las funciones de mecanizado consultando eldiccionario, caracterıstica que contrasta con el interprete de codigos G-M, pueseste no lo posee.

De acuerdo al interprete creado por Yusri Yusof et al. en sus respectivos tra-bajos reportados, Yusof et al. 2015 [12], Latif et al. 2016 [19], Latif et al. 2015[52], Yusof et al. 2016 [53] y Latif et al. 2014 [84], y las diferentes tecnicas conla que resuelve la interpretacion, procesamiento y virtualizacion de maquinadospodemos decir lo siguiente:

• Usualmente, los interpretes creados por Yusri Yusof, interpretan codigo nor-malizado ISO 14649 and ISO 6983, siendo clara la ventaja sobre el creadoen esta tesis, puesto que el nuestro unicamente lee e interpreta codigo ISO6983.

• Las interfaces graficas, creadas por Yusri Yusof, estan disenadas en C++,la nuestra en C#. En esta situacion solamente es cuestion de enfoque deldesarrollador, con respecto a la estetica deseada en el interprete.

• Las ventanas de carga, simulacion y compilacion, son menos amigables ypor esta razon menos intuitivas, con respecto a la interfaz creada y reportadaen este trabajo de tesis.

• la incorporacion de control de actuadores y de hardware, es mas complejay de mayor presencia en el trabajo de Yusri Yusof, puesto que su interpreteposee un modulo especial para el control de sistemas reales.

• Segun lo reportado, no es de codigo fuente abierto, caracterıstica que con-trasta con el nuestro, que sı lo es.

Por otro lado en el caso del interprete, creado por Chen et al. 2010 [50], sepuede decir lo siguiente:

• El uso de expresiones regulares, para la creacion de diferentes analisis, esuna caracterıstica que se comporta en ambos interpretes. De esta manera sepuede hablar de una homologacion entre los dos.

Page 101: I P ´ NACIONAL

CAPITULO 5. DISCUSION Y CONCLUSIONES 84

• El uso de las librerıas de OpenGL para la creacion y manipulacion de figurasvirtuales, es otra caracterıstica compartida entre ambos interpretes.

• En contraste con el trabajo citado de Zongmin Chen, el G-code parsing crea-do por este, es sin duda mas complejo y de mayor alcance, que el reportadoen este trabajo de tesis.

• El uso de C# como plataforma de programacion, es otra caracterıstica com-partida, aunque es importante, destacar que el diseno de la interfaz graficaGUI, no es tan amigable como la reportada en este trabajo.

• Una ventaja sobre el trabajo de Zongmin Chen, es la incorporacion de unmayor numero de ventanas de control y de proceso, que en el trabajo deChen, no fueron consideradas.

5.3 CARACTERISTICAS PRINCIPALES DEL INTERPRE-TE DE CODIGOS CNC

En este apartado se presentan algunas de las caracterısticas mas representativase importantes del interprete de codigos G-M, desarrollado en este trabajo de tesis,cabe senalar que las ya mencionadas caracterısticas son propias del desarrollo quepresenta el interprete, ası como por requerimientos personales del desarrollador,siendo ası mejorables y modificables a peticion del programador y/o usuario quedesee complementar el mismo.

Interface de facil manejo: El interprete fue desarrollado en un ambiente de pro-gramacion amigable de Windows, esto es C# en Visual Studio 2012, esto permiteuna determinada versatilidad para que cualquier usuario o desarrollador puedahacer uso del mismo, ası como tambien la adaptabilidad en una gran cantidad desistemas operativos presentes en el mercado.

Representacion tridimensional: La ventana de representacion del mecanizado,permite visualizar el avance en la simulacion del codigo G en curso, ası como unainterpretacion del mecanizado en tercera dimension, esta representacion tridimen-sional cuenta con el apoyo de varios modulos dedicados a la manipulacion delgrafico, tales como zoom in, zoom out, traslacion, rotacion y seleccion de area enel mecanizado, esta ultima proporciona al usuario las coordenadas que estan repre-sentando esa parte del maquinado segun archivo de texto del codigo G-M original.

Page 102: I P ´ NACIONAL

CAPITULO 5. DISCUSION Y CONCLUSIONES 85

Importacion de Codigo G: El interprete permite al usuario importar codigo Go cualquier otro archivo interpretable por el mismo interprete, este nuevo codigopuede estar modificado dentro del mismo visualizador, ya sea mediante la inser-cion de nuevo codigo o por la edicion que el usuario, tales como archivos de textoque respeten la estructura e instrucciones soportables por el interprete.

Ejecucion en tiempo real: Con la intencion de la homologacion con los interpre-tes y visualizadores de codigo G en el mercado, los cuales en su mayorıa presentanesta caracterıstica como algo usual, el interprete de codigos G muestra el resultadode la simulacion de forma instantanea al ser introducido el codigo G en el simula-dor, dando ası la impresion al usuario final del resultado predicho del maquinadoa realizar.

Multiventana: El interprete de codigos CNC permite al usuario ingresar demanera simultanea las diferentes ventanas que el simulador posee, mientras elprograma esta siendo ejecutado.

Open Source: El codigo fuente en el que fue desarrollado el virtualizador, serade acceso libre para el usuario, para que lo modifique, revise o simplemente ade-cuarlo segun los requerimientos del desarrollador o las necesidades del proyectoque se este desarrollando, pues sera capaz de editar los codigos que componen elsoftware.

5.4 DIFICULTADES ENFRENTADAS DURANTE LA ELA-BORACION DEL PROYECTO

Durante el desarrollo del proyecto es importante mencionar algunos detallesque causaron contratiempos, los cuales ya sea por su relevancia o complejidadson susceptibles a ser mencionados en esta seccion, tambien debido a la posiblecontinuacion de este proyecto por parte de otro desarrollador.

Como primer punto la eleccion del entorno de programacion fue debido a laexistencia previa de codigos escritos en la plataforma de programacion C#, la cualofrece sin duda un gran numero de bondades a la hora de programar en su platafor-ma de compilacion, aunque vale la pena mencionar que existen otras plataformascon una mayor capacidad de soporte en cuanto a graficos se refiere, tal como Java,

Page 103: I P ´ NACIONAL

CAPITULO 5. DISCUSION Y CONCLUSIONES 86

un aspecto muy importante es el uso de las librerıas de OpenGL en C# ya que noimplementa funciones nativas para el correcto manejo de OpenGL, lo cual orilloa la instalacion de dichas librerıas dentro de C# esto requiere de cierta pericia almomento de integrarlas al entorno de C#, ya que es de suma importancia que estasesten presentes, pues de esto depende directamente la apariencia, procesamientoy formas de los maquinados virtuales.

Otro punto importante es la probable obsolescencia a la que podrıa enfrentar-se el interprete. Esta comprobado que este corre y funciona de manera idonea enequipos que tienen instalados Windows 8 y versiones anteriores. La nueva tenden-cia que esta siguiendo Windows en el uso de las forms, indica la no funcionalidaddel interprete en las nuevas versiones de este sistema operativo, valdrıa la pe-na hacer el estudio acerca de la migracion o adecuacion de la programacion delinterprete a las nuevas versiones del sistema operativo Windows.

La implementacion y creacion del G-code parsing y sus respectivos analisis,fue una de las labores sin duda mas difıciles en la elaboracion del interprete. Estorequiere una gran cantidad de programacion de manera especıfica para cada filtroque se planeaba integrar. Tambien la incorporacion al interprete de los diferentesalgoritmos para el calculo de la rugosidad y profundidad de corte. Al igual que elg-code parsing requerıa de una gran cantidad de escritura en lo que a codigo serefiere, ademas se tenıa que hacer una aproximacion de un fenomeno real a pesarde que la informacion ya esta reportada en el estado del arte, sin embargo habıaque crear la programacion necesaria para describirlos.

Page 104: I P ´ NACIONAL

CAPITULO 5. DISCUSION Y CONCLUSIONES 87

5.5 CONCLUSIONESSe ha desarrollado un software capaz de leer e interpretar codigos G-M ISO

6983. Para la simulacion 3D de maquinados virtuales. El interprete permite alusuario visualizar el efecto de una herramienta de corte, al contacto con la piezamecanica. Facilitando al usuario, la prediccion de la forma del maquinado, en ter-cera dimension.

Con la incorporacion de un analisis semantico-lexico-sintactico, el interpre-te es capaz de filtrar, leer e interpretar, el codigo G-M insertado. Se incorporaal interprete una interfaz grafica, amigable e intuitiva, con diferentes ventanas decontrol y procesamiento.

Mediante la incorporacion de un modulo para la identificacion visual de laprofundidad de corte en el maquinado, el usuario es capaz de diferenciar las capasde corte que el maquinado posee. El interprete simula las reacciones ante rugosi-dad programada en un material ası como tambien el uso de diferentes ambientes,hace una aproximacion en la profundidad de corte mediante la estratificacion decapas en el corte senalados a traves de colores RGB, el software provee un entornografico 3D para la manipulacion de la pieza mecanica.

El interprete no necesita muchos requerimientos para su buen uso y utiliza-cion, su versatilidad al ser open source facilita al operador incorporar cualquierfuncion que este desee, ya sea en cuanto calidad de la superficie, profundidad ycomportamiento de la rugosidad en condiciones especıficas con diferentes mate-riales.

Page 105: I P ´ NACIONAL

CAPITULO 5. DISCUSION Y CONCLUSIONES 88

5.6 PROYECCION A FUTUROEl desarrollador/programador que tenga la intencion de seguir con la com-

plementacion, diseno e incorporacion de modulos en el interprete, ya sea paraadecuarlo a las necesidades que este crea conveniente o simplemente mejorarlo.El desarrollador tiene un campo fertil donde podra anexar al interprete de codigosG ISO 6983, caracterısticas como: la seleccion para lıneas en el maquinado me-diante la accion del raton. Esto es muy util para los programadores ya que sı elraton se encuentra suficientemente cerca de una lınea que hemos previamente di-bujado, podra ser identificada y proporcionar informacion, como coordenada, tipode herramienta, ındice de rugosidad y pasadas en esa region. Esto sera de muchautilidad para la localizacion de errores, tambien se podran anexar mas ventanas enel maquinado, con el proposito de incrementar la visualizacion disponible hastaahora, o algunos otros detalles no considerados durante el desarrollo del interpretey que no estan reportados en este trabajo de tesis.

Page 106: I P ´ NACIONAL

AApendice A

El presente apendice tiene la intencion de mostrar parte de los codigos masrepresentativos, que conforman las principales funciones del interprete.

A.1 ABRIR ARCHIVO DE TEXTO

1 private void abrirToolStripMenuItem Click ( object sender , EventArgs e) // AbrirArchivo de Texto

2 {3 button1 Click (sender , e) ;4 OpenFileDialog1.ShowDialog();5 this .Refresh () ;6 if (OpenFileDialog1.FileName.Length > 0)7 {8 OpenFile(OpenFileDialog1.FileName);9 }

A.2 MENU LIMPIAR

1 private void procesadorToolStripMenuItem Click( object sender , EventArgs e)2 {

89

Page 107: I P ´ NACIONAL

APENDICE A. APENDICE A 90

3 richTextBox1.Clear () ;4 }5

6 private void cuadroDeEstadoToolStripMenuItem Click(object sender , EventArgs e)7 {8 richTextBox2.Clear () ;9 }

10 public void xToolStripMenuItem Click(object sender , EventArgs e)11 {12 MG Viewer4.Refresh();13 }14

15 private void todoToolStripMenuItem Click( object sender , EventArgs e)16 {17 richTextBox1.Clear () ;18 richTextBox2.Clear () ;19 MG Viewer4.Refresh();20 MG Viewer4.Clear();21 }

A.3 CERRAR DIALOGO

1 private void salirToolStripMenuItem Click ( object sender , EventArgs e)2 {3 desconectarToolStripMenuItem Click (sender , e) ;4 this .Close() ;5 }

A.4 ACERCA DE...1 private void asistenteToolStripMenuItem Click ( object sender , EventArgs e)2 {3 MessageBox.Show(”Interprete de Codigos CNC\nBeta 4.0 − 2016\nCICATA,

Queretaro\nIng. Hilario Martines Arano.\nDr. Reydezel Torres” ,4 ” Interprete de Codigo CNC”, MessageBoxButtons.YesNo,

MessageBoxIcon.Information);5 }

A.5 ESTRUCTURA REGEX1 Regex CodigoG = new Regex(”[ngxyzfmso:][+−]?[0−9]*\\.?[0−9]*”,

RegexOptions.IgnoreCase);2 foreach ( string line in lines )

Page 108: I P ´ NACIONAL

APENDICE A. APENDICE A 91

3 {4 MatchCollection m = CodigoG.Matches(line.Trim()) ;5 foreach (Match n in m)6 {7 if (n.Value. StartsWith (”X”))8 {9 X = Convert .ToDouble(n.Value.Remove(0, 1).Trim()) ;

10 richTextBox2.AppendText(”X” + X);11 }12 ...13 }14 }

A.6 MENU EJECUTAR

1 private void button2 Click ( object sender , EventArgs e)2 {3 toolStripStatusLabel1 . Text = ”Compilando .... ”; // Etiqueta de Estado4 error = 0; // Reinicio contador de errores5 // Porcentaje Para barra de avance6 double LTotal = Convert .ToDouble(lines .Length);7 double CadaLinea = 100 / LTotal ;8 porcentaje = 0;9 NumeroLineas.Text = Convert . ToString ( LTotal ) ;

10 foreach ( string line in lines )11 {12 MatchCollection m = CodigoG.Matches(line.Trim()) ;13 foreach (Match n in m)14 {15 if (n.Value. StartsWith (”O”) | n.Value. StartsWith (”:”) )16 {17 int O = Convert .ToUInt16(n.Value.Remove(0, 1).Trim()) ;18 richTextBox2.AppendText(”Programa: ” + O);19 }20 if (n.Value. StartsWith (”N”))21 {22 N = Convert .ToDouble(n.Value.Remove(0, 1).Trim()) ;23 richTextBox2.AppendText(”Linea ” + N + ”: ”) ;24 }25 if (n.Value. StartsWith (”X”))26 {27 X = Convert .ToDouble(n.Value.Remove(0, 1).Trim()) ;28 richTextBox2.AppendText(”X” + X);29 }

Page 109: I P ´ NACIONAL

APENDICE A. APENDICE A 92

30

31 if (n.Value. StartsWith (”Y”))32 {33 Y = Convert .ToDouble(n.Value.Remove(0, 1).Trim()) ;34 richTextBox2.AppendText(”Y” + Y);35 }36 if (n.Value. StartsWith (”Z”))37 {38 Z = Convert .ToDouble(n.Value.Remove(0, 1).Trim()) ;39 richTextBox2.AppendText(”Z” + Z);40 }41 if (n.Value. StartsWith (”F”)) // Valor para pasar al Feedrate / Velocidad

de Avance (Herramienta)42 {43 F = Convert .ToDouble(n.Value.Remove(0, 1).Trim()) ;44 richTextBox2.AppendText(”F: ” + F);45 }46

47 if (n.Value. StartsWith (”S”)) // Valor para pasar al Spindle / Velocidadde Corte (Pieza)

48 {49 S = Convert .ToDouble(n.Value.Remove(0, 1).Trim()) ;50 richTextBox2.AppendText(”S: ” + S);51 }52 if (n.Value. StartsWith (”M”))53 {54 switch (n.Value)55 {56 case ”M00”:57 richTextBox2.AppendText(”Parada NO Opcional”);58 break;59

60 case ”M01”:61 richTextBox2.AppendText(”Parada Opcional”);62 break;63

64 case ”M02”:65 richTextBox2.AppendText(”Final del Programa”);66 break;67

68 case ”M03”:69 richTextBox2.AppendText(”Encender Husillo MR

(CW)”);70 break;71

Page 110: I P ´ NACIONAL

APENDICE A. APENDICE A 93

72 case ”M04”:73 richTextBox2.AppendText(”Encender Husillo CMR

(CCW)”);74 break;75

76 case ”M05”:77 richTextBox2.AppendText(”Apagar Husillo”);78 break;79

80 case ”M06”:81 richTextBox2.AppendText(”Cambio de Herramienta”);82 break;83

84 case ”M07”:85 richTextBox2.AppendText(”Encender Refrigerante

2”) ;86 break;87

88 case ”M08”:89 richTextBox2.AppendText(”Encender Refrigerante

1”) ;90 break;91

92 case ”M09”:93 richTextBox2.AppendText(”Apagar Refrigerante”) ;94 break;95

96 case ”M10”:97 richTextBox2.AppendText(”Cerrar Mordazas”);98 break;99

100 case ”M11”:101 richTextBox2.AppendText(”Abrir Mordazas”);102 break;103

104 case ”M13”:105 richTextBox2.AppendText(”Husillo MR y

Refrigerante”) ;106 break;107

108 case ”M14”:109 richTextBox2.AppendText(”Husillo CMR y

Refrigerante”);110 break;111

Page 111: I P ´ NACIONAL

APENDICE A. APENDICE A 94

112 case ”M30”:113 richTextBox2.AppendText(”Final de la cinta ...

??”) ;114 break;115

116 case ”M37”:117 richTextBox2.AppendText(”Apagar el Husillo y

abrir la Guarda”);118 break;119 case ”M38”:120 richTextBox2.AppendText(”Abrir Guarda”);121 break;122

123 case ”M39”:124 richTextBox2.AppendText(”Cerrar Guarda”);125 break;126

127 // M40 −M45 Caja de Velocidades ...128

129 case ”M48”:130 richTextBox2.AppendText(” Inhabilitar Spindle y

Feed Override”) ;131 break;132 case ”M49”:133 richTextBox2.AppendText(”Cancelar M48”);134 break;135 case ”M62”:136 richTextBox2.AppendText(”Activar salida auxiliar

1”) ;137 break;138 case ”M63”:139 richTextBox2.AppendText(”Activar salida auxiliar

2”) ;140 break;141 case ”M64”:142 richTextBox2.AppendText(”Desactivar salida

auxiliar 1”) ;143 break;144 case ”M65”:145 richTextBox2.AppendText(”Desactivar salida

auxiliar 2”) ;146 break;147 case ”M66”:148 richTextBox2.AppendText(”Esperar a que la

entrada 1 este en ON”);

Page 112: I P ´ NACIONAL

APENDICE A. APENDICE A 95

149 break;150 case ”M67”:151 richTextBox2.AppendText(”Esperar a que la

entrada 2 este en ON”);152 break;153 case ”M70”:154 richTextBox2.AppendText(”Activar espejo en X”);155 break;156 case ”M76”:157 richTextBox2.AppendText(”Esperar a que la

entrada 1 este en OFF”);158 break;159 case ”M77”:160 richTextBox2.AppendText(”Esperar a que la

entrada 2 este en OFF”);161 break;162 case ”M80”:163 richTextBox2.AppendText(”Desactivar espejo en X”);164 break;165 case ”M98”:166 richTextBox2.AppendText(”Llamada a

Subprograma”);167 break;168 case ”M99”:169 richTextBox2.AppendText(”Retorno de

Subprograma”);170 break;171 default :172 richTextBox2. SelectionColor = Color.Red;173 richTextBox2. SelectedText = ”Codigo M

desconocido”;174 richTextBox2. SelectionColor = Color.Black;175 error ++;176 break;177 }178 }179

180 // Cod G de acuerdo a ISO 6983181 if (n.Value. StartsWith (”G”))182 {183 // G = Convert .ToDouble(n.Value.Remove(0, 1)) ;184 switch (n.Value)185 {186 case ”G00”:187 richTextBox2.AppendText(”Posicionamiento

Page 113: I P ´ NACIONAL

APENDICE A. APENDICE A 96

Rapido”);188 break;189 case ”G01”:190 richTextBox2.AppendText(” Interpolacion Lineal”) ;191 break;192 case ”G02”:193 richTextBox2.AppendText(” Interpolacion Circular

CW”);194 break;195 case ”G03”:196 richTextBox2.AppendText(” Interpolacion Circular

CCW”);197 break;198 case ”G04”:199 richTextBox2.AppendText(”Esperar cierto tiempo”) ;200 break;201 case ”G07”:202 richTextBox2.AppendText(” Interpolacion Circular

tangencial ”) ;203 break;204 case ”G10”:205 richTextBox2.AppendText(”Ajuste del valor de

offset del programa”);206 break;207 case ”G20”:208 richTextBox2.AppendText(”Unidades Imperiales

(pulgadas)”) ;209 break;210 case ”G21”:211 richTextBox2.AppendText(”Unidades Metricas”);212 break;213 case ”G28”:214 richTextBox2.AppendText(”Volver a Home

(Maquina)”);215 break;216 case ”G32”:217 richTextBox2.AppendText(”Maquinado de Rosca en

una pasada”);218 break;219 case ”G36”:220 richTextBox2.AppendText(”Compensacion

automatica de herramienta en X”);221 break;222 case ”G37”:223 richTextBox2.AppendText(”Compensacion

Page 114: I P ´ NACIONAL

APENDICE A. APENDICE A 97

automatica de herramienta en Z”);224 break;225 case ”G40”:226 richTextBox2.AppendText(”Cancelar compensacion

de radio de curvatura de herramienta”) ;227 break;228 case ”G41”:229 richTextBox2.AppendText(”Compensacion de radio

de curvatura a la izquierda ”) ;230 break;231 case ”G42”:232 richTextBox2.AppendText(”Compensacion de radio

de curvatura a la derecha”) ;233 break;234 case ”G50”:235 richTextBox2.AppendText(”Escala”);236 break;237 case ”G70”:238 richTextBox2.AppendText(”Ciclo de acabado”);239 break;240 case ”G71”:241 richTextBox2.AppendText(”Ciclo de maquinado en

torneado”) ;242 break;243 case ”G72”:244 richTextBox2.AppendText(”Ciclo de maquinado en

frenteado”) ;245 break;246 case ”G73”:247 richTextBox2.AppendText(”Repetecion de patron”) ;248 break;249 case ”G74”:250 richTextBox2.AppendText(”Taladro intermitente ,

con salida para retirar virutas ”) ;251 break;252 case ”G76”:253 richTextBox2.AppendText(”Maquinar una rosca en

multiples pasadas”) ;254 break;255 case ”G96”:256 richTextBox2.AppendText(”Desbaste a velocidad

tangencial constante ”) ;257 break;258 case ”G97”:259 richTextBox2.AppendText(”Fin de desbaste a

Page 115: I P ´ NACIONAL

APENDICE A. APENDICE A 98

velocidad tangencial constante ”) ;260 break;261 case ”G98”:262 richTextBox2.AppendText(”Unidades por minuto”);263

264 break;265 case ”G99”:266 richTextBox2.AppendText(”Unidades por

Revolucion”);267 break;268 default :269 richTextBox2. SelectionColor = Color.Red;270 richTextBox2. SelectedText = ”Codigo G

desconocido”;271 richTextBox2. SelectionColor = Color.Black;272 error ++;273 break;274 }275 }276 richTextBox2.AppendText(” ”) ;277 }278 richTextBox2.AppendText(”\n”);279 richTextBox2. SelectionLength = 0;280 richTextBox2. SelectionStart = richTextBox2.Text .Length;281 richTextBox2. ScrollToCaret () ;282

283 // Actualizar Barra de Progreso284 porcentaje = Convert .ToUInt16(Math.Round(porcentaje +

CadaLinea));285 if ( porcentaje >= 100) { porcentaje = 100; }286 toolStripProgressBar1 .Value = porcentaje ;287

288 // Habilitadores de operaciones simultaneas289 // Seleccionador de secuencia *290 switch(modo)291 {292 case 0: // Verificar293 // No son necesarias instrucciones adicionales294 break;295 case 1: // Simular296 // Instrucciones de dibujo297 break;298 case 2: // Ejecutar299 // Instrucciones de Maquinado300 break;

Page 116: I P ´ NACIONAL

APENDICE A. APENDICE A 99

301 }302 // Inst .de espera para completar la tarea303 }304

305

306 // Final del Reconocimiento de Instrucciones307 if ( error > 0) // Si el programa contiene errores308 {309 NumeroErrores.Text = Convert . ToString ( error ) ;310 System.Media.SystemSounds.Exclamation.Play();311 toolStripStatusLabel1 . Text = ”Errores ... ”;312 }313 else314 {315 toolStripProgressBar1 .Value = 0;316 toolStripStatusLabel1 . Text = ”Completado”;317 System.Media.SystemSounds.Beep.Play();318 }

Page 117: I P ´ NACIONAL

Bibliografıa

[1] LONG CHEN, DONG YU, HAN ZHANG, CONG GENG, LEI DONG.Design and implement of a modularized CNC interpreter basedon the integration of tool path planning module. IEEE Internatio-nal Conference on Computer Science and Automation Engineering(CSAE), volumen 3, 2012, paginas. 613-616.

[2] GAO QI, ZU YINGLI. Research on universal NC program processorfor CNC system. Second International Conference on Digital Manu-facturing & Automation, Zhangjiajie, Hunan,. 2011, paginas 1046-1049.

[3] YADONG LIU, XINGUI GUO, WEI LI, KAZUO YAMAZAKI, KEI-ZO KASHIHARA, MAKOTO FUJISHIM. An intelligent NC programprocessor for CNC system of machine tool. Robotics and Computer-Integrated Manufacturing. Robotics and Computer-Integrated Ma-nufacturing, volumen 23, 2007, paginas 160-169.

[4] XINGUI GUO, YADONG LIU, DAOSHAN DU, KAZUO YAMAZAKI,MAKOTO FUJISHIMA. A universal NC program processor designand prototype implementation for CNC systems. The InternationalJournal of Advanced Manufacturing Technology, 2012, volumen 60,paginas. 561-575.

[5] H. LAN, R. LIU, C. ZHANG. A multiagent-based intelligentSTEPNC controller for CNC machine tools. International Journal ofProduction Research , volumen 46, julio 2008 , paginas. 3887-3907.

[6] W. X. CHEN. Research on STEP Compliant CNC System for Inte-gration of CAD/CAPP/CAM. Mechanical Manufacturing and Auto-mation, 2010, paginas 529-551.

100

Page 118: I P ´ NACIONAL

BIBLIOGRAFIA 101

[7] LIN Y, LEE TS. An adaptative tool path generation algorithm forprecision surface machining. Computer Aided Design, 1999, pagi-nas 237-47.

[8] SH SUH, SK KANG, DH CHUNG, I STROUD. Theory and designof CNC system. Springer Series in Advanced Manufacturing, 2008,ISBN 9781848003354, paginas 113-115.

[9] ALBERT, ALAIN Understanding CNC Routers. FPInnovations,2011. primera edicion, paginas 221-234.

[10] STENERSON JS, CURRAN K. Computer numerical control: opera-tion and programming. Prentice-Hall, 2005, ISBN-10: 0131115472,paginas 32-44.

[11] VICHARE P, NASSEHI A, KUMAR S, NEWMAN ST. A unified ma-nufacturing resource model for representing cnc machining systems.Robotics and Computer-Integrated Manufacturing, 2009. paginas999-1007.

[12] YUSRI YUSOF, KAMRAN LATIF. A Novel ISO 6983 Interpreter forOpen Architecture CNC Systems. The International Journal of Ad-vanced Manufacturing Technology, 2015, volumen 80, numero 9-12,pagina 1777.

[13] ALMA G. RODRIGUEZ, LUIS R. VIDAL P. , JUAN MIGUEL D IAZ

M. , CESAR LEONARDO GONZALEZ PINZON.G-Code interpreterdevelopment using Microsoft Visual Basic for ABL63 Control Sys-tems. Electronic Vision, numero 1, 2014, paginas 143-153.

[14] FUSAOMI NAGATA, YUKIHIRO KUSUMOTO, KEIGO WATANABE.Intelligent machining system for the artistic design of wooden paintrollers. Robotics and Computer-Integrated Manufacturing, 2009,paginas. 680-688.

[15] HUI ZHANG, CHANGSHENG AI, FANG ZHAO, XIANGBO ZE. TheCNC Development of the Sawing and Milling Machining Center forPlastic Door and Window PVC Profile Based on Fanuc. 7th WorldCongress on Intelligent Control and Automation (WCICA), 2008,paginas 9362 - 9367.

Page 119: I P ´ NACIONAL

BIBLIOGRAFIA 102

[16] JORGE JIMENEZ CRUZ. Introduccion al Proceso de Fresado porControl Numerico, Lenguajes: Herdenhain TNC/ISO. Instituto Po-litecnico Nacional, ISBN 970-18-4120-4 2000.

[17] LEOBARDO ARRIAGA SEGUNDO. Las Maquinas Herramienta conControl Numerico. Instituto Politecnico Nacional, ISBN 970-18-3176-4 1999.

[18] XU X, NEWMAN S. Making CNC machine tools more open, inter-operable and intelligent—a review of the technologies. Computersin Industry; 2006. Paginas 57- 2.

[19] KAMRAN LATIF, YUSRI YUSOF. New Method for the Develop-ment of Sustainable STEP-Compliant Open CNC System. 13th Glo-bal Conference on Sustainable Manufacturing - Decoupling Growthfrom Resource Use, procedia CIRP 40 2016, paginas 230-235.

[20] GROOVER MP. Automation, production systems, and computer-integrated manufacturing. Prentice Hall Press, Upper Saddle River,NJ, ISBN 9780133499711, 2007.

[21] ERTELL GG. Numerical control. Wiley-Interscience, 1969.

[22] ISO (1994) 10303-1 TC184/SC4: Product data representation andexchange—part 1: overview and fundamental principles. Internatio-nal Standard. ISO. Vernier, Geneva, Switzerland .

[23] JOSE MARTIN CARBONELL, EDUARDO VENDRELL VIDAL. Si-mulador de Mecanizados en Codigo ISO-6983. Proyecto Final deCarrera. Escuela Tecnica Superior de Informatica, Universidad Po-litecnica de Valencia, Valencia Espana, Septiembre de 2011, paginas45-66.

[24] HAMILTON K, HASCOET JY, RAUCH M. Implementing STEP-NC:Exploring possibilities for the future of advanced manufacturing.In: Modern Mechanical Engineering. Springer, Berlin Heidelberg,2014, paginas 199-239.

[25] RAUCH M, LAGUIONIE R, HASCOET JY, SUH SH. An advancedSTEP-NC controller for intelligent machining processes. Roboticsand Computer Integrated Manufacturing, 2012, paginas 375-384.

Page 120: I P ´ NACIONAL

BIBLIOGRAFIA 103

[26] WECK M, WOLF J, KIRITSIS D. STEP-NC–The STEP compliantNC programming interface. International Intelligent ManufacturingSystem Forum, 2001.

[27] NEWMAN S, ALLEN R, ROSSO JR R. CAD/CAM solutions forSTEPcompliant CNC manufacture. Jr R. CAD/CAM solutions forSTEPcompliant CNC manufacture. International Journal of Compu-ter Integrated Manufacturing, 2003, paginas 590-597.

[28] NASSEHI A, NEWMAN S, ALLEN R. The application of multi-agentsystems for STEP-NC computer aided process planning of prismaticcomponents. International Journal of Machine Tools and Manufac-ture, 2006, paginas 559-574.

[29] WANG H, XU X, DES TEDFORD J. An adaptable CNC system ba-sed on STEP-NC and function blocks. International Journal of Pro-duction Research, 2007, paginas 3809-3829. 45- 17.

[30] NITTLER KM, FAROUKI RT. A real-time surface interpolator met-hodology for precision CNC machining of swept surfaces. Int J AdvManuf Technol, 2016, paginas 561–74.

[31] MIROSLAV RADOVANOVIC, PREDRAG DASIC. Research on sur-face roughness by laser cut. Trstenik, Serbia : 2006.

[32] ZHAN-KUI WANG, ZHUAN-KUI WANG, YONG-WEI ZHU, JIAN-XIU SU. Effect of lapping slurry on critical cutting depth of spi-nel. Applied Surface Science, volumen 347, ISSN 0169-4332, 30 deagosto 2015, paginas 849-855.

[33] Z. G. ZHANG ; F. Z. FANG, C. K. SUN. Nanoscale cutting mecha-nism by molecular dynamics simulation. 3rd International Sympo-sium on Advanced Optical Manufacturing and Testing Technologies:Design, Manufacturing, and Testing of Micro- and Nano-Optical De-vices and Systems, Noviembre 14, 2007.

[34] R. KOMANDURI, N. CHANDRASEKARAN, L.M. RAFF. Effect oftool geometry in nanometric cutting: a molecular dynamics simula-tion approach. volumen 219, ISSN 0043-1648, 1998, paginas 84-97.

Page 121: I P ´ NACIONAL

BIBLIOGRAFIA 104

[35] X. RIMPAULT, J.-F. CHATELAIN, J.E. KLEMBERG-SAPIEHA, M.BALAZINSKI. Tool wear and surface quality assessment of CFRPtrimming using fractal analyses of the cutting force signals. CIRPJournal of Manufacturing Science and Technology, volumen 16,enero 2017, paginas, 72-80.

[36] LERATO CRESCELDA TSHABALALA, CEBOLENKOSI PHILANI

NTULI, JEAN C. FWAMBA, PATRICIA POPOOLA, SISA LESLEY

PITYANA. Surface Texturing of Sialon Ceramic by FemtosecondPulsed Laser. Procedia Manufacturing, volumen 7, ISSN 2351-9789,2016, paginas 660-667.

[37] ANNA PUIG, LLUIS PEREZ-VIDAL, DANI TOST. 3D simulation oftool machining. Barcelona Espana, Computers & Graphics, volumen27, 2003, paginas 99–106.

[38] Z.D. ZHOU, J.D. ZHOU. Y.P. CHEN, S.K. ONG. A.Y.C. NEE.Geometric Simulation of NC Machining Based on STL Models. CIRPAnnals - Manufacturing Technology, volumen 52, 2003, paginas129-134.

[39] DANI TOST, ANNA PUIG, LLUIS PEREZ-VIDAL. Boolean Opera-tions for 3D Simulation of CNC Machining of Drilling Tools. Cata-luna Espana, Computer-Aided Design, volumen 36, 2004, paginas315–323.

[40] SUNG-LIM KO, TRUNG-THANH PHAM, YONG-HYUN KIM. Vi-sualization Process for Design and Manufacturing of End Mills.Springer Berlin Heidelberg, 2005, paginas 1133–1136.

[41] NING LIU, MARTIN LOFTUS, ANDREW WHITTEN. Surface Fi-nish Visualisation in High Speed, Ball Nose Milling Applications.International Journal of Machine Tools & Manufacture, volumen 45,2005, paginas 1152–1161.

[42] Y. ALTINTAS, C. BRECHER, M. WECK, S. WITT. Virtual MachineTool. CIRP Annals - Manufacturing Technology, volumen 54, 2005,paginas 115–138.

Page 122: I P ´ NACIONAL

BIBLIOGRAFIA 105

[43] K. ERKORKMAZ, Y. ALTINTAS, C.H. YEUNG. Virtual ComputerNumerical Control System. CIRP Annals - Manufacturing Techno-logy volumen 55, 2006, paginas 399–402.

[44] SEUNG-JUN SHIN, SUK-HWAN SUH, IAN STROUD. Reincarnationof G-code Based Part Programs into STEP-NC for Turning Applica-tions. Computer-Aided Design, volumen 39, 2007, paginas 1–16.

[45] ZHANG C., LIU R. AND HU T. On the futuristic machine controlin a STEP-compliant manufacturing scenario. International Journalof Computer Integrated Manufacturing, volumen 19, 2006, paginas508-516.

[46] SIMCHI-LEVI D., KAMINSKY P. AND SIMCHI-LEVI E. Designingand management the supply chain. McGraw-Hill, Irwin, New York,NY. ISBN: 978-0-12-294151-1, 2003.

[47] WECK M., WOLF J. AND KRISTIS D. STEP-NC: the STEP com-pliant NC programming interface: evaluation and improvement ofthe modern interface. International IMS Forum, Ascona , Suiza,2001.

[48] BUTALA P., VENGUST I., VRABIC R., KUSCER L. Virtual Manu-facturing Work Systems. Mitsuishi M., Ueda K., Kimura F. (eds) Ma-nufacturing Systems and Technologies for the New Frontier, 2008,paginas 129-132.

[49] MOHSEN SOORI , BEHROOZ AREZOO, MOHSEN HABIBI. Dimen-sional and Geometrical Errors of Three-axis CNC Milling Machinesin a Virtual Machining System. Computer-Aided Design volumen45, noviembre 2013, paginas 1306–1313.

[50] Z. CHEN. Development of Opengl Based 3D Simulator for Compu-ter Numerical Control. International Conference on Artificial Inte-lligence and Computational Intelligence, Sanya, 2010, paginas 319-321.

[51] RICHARD S. WRIGHT, JR. BENJAMIN LIPCHAK, NICHOLAS

HAEMEL. OpenGL Superbible Fourth Edition, Comprehensive Tu-torial and Reference. Addison-Wesley, ISBN 0-321-49882-8 2007.

Page 123: I P ´ NACIONAL

BIBLIOGRAFIA 106

[52] YUSRI YUSOF, KAMRAN LATIF. New Interpretation Module forOpen Architecture Control based CNC Systems. Procedia CIRP, vo-lumen 26, 2015, paginas 729-734.

[53] KAMRAN LATIF, YUSRI YUSOF. New Method for the Develop-ment of Sustainable STEP-Compliant Open CNC System. 13th Glo-bal Conference on Sustainable Manufacturing - Decoupling Growthfrom Resource Use. Procedia CIRP 40, 2016, paginas 230 – 235.

[54] TIMO SAKSALA, MIKKO HOKKA, VELI-TAPANI KUOKKALA.Numerical 3D modeling of the effects of strain rate and confiningpressure on the compressive behavior of Kuru granite. Computersand Geotechnics, volumen 88, agosto 2017, paginas 1–8.

[55] http://www.autodesk.com/solutions/cad-cam [Fe-cha de consulta 20/Feb/2017]

[56] http://www.alphacam.es/ [Fecha de consulta 20/Feb/2017]

[57] http://linuxcnc.org/ [Fecha de consulta 20/Feb/2017]

[58] https://academy.3ds.com/en/software/catia-v5-student-edition [Fecha de consulta 20/Fe-b/2017]

[59] http://www.camworks.com/ [Fecha de consulta 20/Fe-b/2017]

[60] M. EN I. FELIPE D IAZ DEL CASTILLO RODRIGUEZ. Programa-cion Automatica de Maquinas CNC. Facultad de Estudios Superioresde Cuautitlan, Departamento de Ingenierıa, pagina 29.

[61] SHOICHIRO NAKAMURA. Analisis Numerico y Visualizacion Grafi-ca con MATLAB Prentice Hall Hispanoamericana, S.A. ISBN 968-880-860-1 1996.

[62] ING. RICARDO JIMENEZ. Ingenierıa de Manufactura, ControlNumerico por Computadora (CNC). pagina 6.

[63] SUSUKI, S. Y ABE, K. Topological Structural Analysis of Digiti-zed Binary Images by Border Following. CVGIP, volumen 30, 1985,paginas 32-46.

Page 124: I P ´ NACIONAL

BIBLIOGRAFIA 107

[64] AUGUSTO CORTEZ. Comparative Analysis Between a Parser Sin-tactic LL And a Parser Sintactic for LR For a Normal Language. RI-SI 2(2), 2005, Universidad Nacional Mayor de San Marcos, ISSN:1815-0268, paginas 60-68.

[65] AHO A., SETHI, ULLMAN. Compiladores, principios, tecnicas yherramientas. Addison-Wesley 1990, Wilmington-Delaware EUA.

[66] SETHI, RAVI. Lenguajes de Programacion, Diseno e Implementa-cion. Prentice Hall Hispano-americana 1988.

[67] FRANCISCO ORTIN SOLER, JUAN MANUEL CUEVA LOVELLE,MARIA CANDIDA LUENGO D IEZ, AQUILINO ADOLFO JUAN

FUENTE, JOSE EMILIO LABRA GAYO, RAUL IZQUIERDO CAS-TANEDO. Analisis Semantico en Procesadores de Lenguaje. Servi-tec, Oviedo Espana, ISBN: 84-688-6208-8.

[68] SAMIR E. ABDEL RAHMAN, AMR M. ABDELLATIF. DisBlue+:A Distributed Annotation-Based C# compiler. Egyptian InformaticsJournal, volumen 11, junio 2010, paginas 1-10, ISSN 1110-8665.

[69] ZHAO DONG-LIN, FANG KAI, QUIAN WEI, ZHOU PING. Designand Realization of NC Code Explaining. Industrial Automation, vo-lumen 28 pagina 43.

[70] P. PALANISAMY, I. RAJENDRAN, S. SHANMUGASUNDARAN. Op-timization of machining parameters using genetic algorithm and ex-perimental validation for end-milling operations. Manuf Technol,2007, volumen 32, pagina 644.

[71] T. G. BIFANO, T. A. DOW, R. O. SCATTERGOOD. Ductile-regimegrinding: a new technology for machining brittle materials. Mayo01 1991, Vol. 113, paginas 184-189.

[72] WANG ZHAN-KUI, WANG ZHUAN-KUI,ZHU YONG-WEI,SU JIAN-XIU. Effect of lapping slurry on critical cutting depth of spinel. Ap-plied Surface Science, volumen 347, 30 August 2015, paginas 849-855.

Page 125: I P ´ NACIONAL

BIBLIOGRAFIA 108

[73] Z. G. ZHANG, F. Z. FANG, C.K. SUN. Nano - scale cutting mecha-nism by molecular dynamics simulation. Tianjin China, 3rd Inter-national Symposium on Advanced Optical Manufacturing and Tes-ting Technologies: Design, Manufacturing, and Testing of Micro-and Nano-Optical Devices and Systems, 2007, volumen 6724.

[74] LIU, X., DEVOR, R. E., KAPOOR, S. G., EHMANN, K. F. The me-chanics of Machining at the Microscale: Assessment of the CurrentState of the Science. Manufacturing Science and Engineering, 2004,volumen 126, paginas. 666 – 678.

[75] W. KOECHNER. Solid - State Laser Engineering. Nueva York:Springer - Verlag Berling Heidelberg.

[76] AMNON YARIV, POCHI YEH. Optical Waves in Crystals, Propaga-tion and Control of Laser Radiation. Estados Unidos de America:Wiley - Insterscience, 1984.

[77] M.D. PERRY. B. C. STUART, P. S. BANKS. M. D. FEIT, V. YA-NOVSKY, A. M. RUBENCHIK. Ultrashort-pulse laser machining ofdielectric materials. Livermore California, USA, 1999, Journal ofApplied Physics, volumen 85, pagina 9.

[78] ABELL, G. C. Empirical chemical pseudopotential theory of mole-cular and metallic bonding. American Physical Society, 1985, volu-men 31, paginas 6184-6196.

[79] TERSOFF, J. Empirical interatomic potential for silicon with impro-ved elastic properties. American Physical Society, (1988, volumen38, paginas 9902-9905.

[80] JOSEP ANTONI MARTIN RODRIGUEZ, JOSEP MARIA TORRENTS

DOLZ. Sistema de posicionado angular automatizado, configuradoy sincronizable para muestras de hormigon. Proyecto de final decarrera, Universidad Politecnica de Cataluna, septiembre del 2012,paginas 60-62.

[81] CASTELLANOS, CARLOS FRANCISCO MACIEL. Control Nume-rico Computarizado de Arquitectura Abierta Para Servomotores-Motores de Corriente Alterna Usando Modbus. CICATA IPN unidadQueretaro, 2014, pagina 88.

Page 126: I P ´ NACIONAL

BIBLIOGRAFIA 109

[82] HAITAO HONG, DONG YU, XIAOHUI ZHANG, LONG CHEN. Re-search on a new model of numerical control program interpreter. 2ndInternational Conference on Advanced Computer Control (ICACC),2010, volumen 2, paginas 467-472.

[83] XINGUI GUO, YADONG LIU, DAOSHAN DU, KAZUO YAMAZAK,MAKOTO FUJISHIMA. A universal NC program processor designand prototype implementation for CNC systems. The InternationalJournal of Advanced Manufacturing Technology, 2012, volumen 60,paginas 561-575.

[84] YUSRI YUSOF, KAMRAN LATIF. A New ISO 14649 TranslationModule for Open Architecture CNC Systems. Applied Mechanicsand Materials Volumen 660, (2014) paginas 878-882, Trans TechPublications, Suiza.

[85] J. GARRIDO, R. MARIN, J. IGNACIO, J. SAENZ. Extension delestandar ISO 10303 AP-238 para la automatizacion del acceso adatos de procesos CNC. Revista Iberoamericana de Automatica e In-formatica Industrial RIAI volumen 6, enero 2009, paginas 105-116.

[86] SHREINER, D., KUEHNE, B., TRUE, T., COMMIKE, A. Perfor-mance OpenGL: Platform Independet Tecniques. ACM SIGGRAPH2005 Courses. ACM, 2005. pagina 1.

[87] CHEN-HUA SHE, CHUN-CHENG CHANG. Design of a generic five-axis postprocessor based on generalized kinematics model of machi-ne tool. Taiwan : International Journal of Machine Tools & Manufac-ture. Volumen 47, Marzo 2007, Paginas 537-545, ISSN 0890-6955.

[88] A.Y.C. NEE, S.K. ONG, G. CHRYSSOLOURIS, D. MOURTZIS.Augmented reality applications in design and manufacturing. CIRPAnnals - Manufacturing Technology, Volumen 61, 2012, ISSN 0007-8506, paginas 657-679.

[89] QIAN YI, CONGBO LI, YING TANG, XINGZHENG CHEN. Multi-objective parameter optimization of CNC machining for low carbonmanufacturing. Journal of Cleaner Production, Volumen 95, 15 Ma-yo 2015, ISSN 0959-6526, paginas 256-264.

Page 127: I P ´ NACIONAL

BIBLIOGRAFIA 110

[90] G.R. ANSTIS, P. CHANTIKUL, B.R. LAWN, ET AL. A critical eva-luation of indentation techniques for measuring fracture toughness:I. Direct crack measurements, J.Am. Ceram. Soc. Volumen 64, 981paginas 533–538.

[91] P. CHANTIKUL, G.R. ANSTIS, B.R. LAWN, ET AL. A critical eva-luation of indentation techniques for measuring fracture toughness:II. Strength method, J. Am. Ceram.Soc. Volumen 64, 1981, paginas539–543.

[92] SHANSHAN CHEN, B.E. Graphical Simulation Software for theTool Path Within an Integrated CAD/CAM/CNC Environment A The-sis in Industrial Engineering, Faculty of Texas Teach University,Master of Science in Industrial Engineering. Diciembre 1995.

[93] QUINTERO GOMEZ, ANA MARIA. Metodologıa para la evaluacionde tecnicas de renderizado 3D en un sistema de visualizacion deimagenes medicas. Universidad Tecnologica de Pereira, 2010, pagi-nas 15-18.

[94] C. DURAN Y F. MORRILLO. Rendering Volumetrico Acelerado Ba-sado en Mecanismos de Manejo de Texturas. Proyecto de grado, Uni-versidad Simon Bolivar, paginas 19, 20 y 21.