Universidad Autónoma de San Luis Potosíciep.ing.uaslp.mx/tesis/tesisPDF/177201817320601488.pdf ·...

150
Universidad Autónoma de San Luis Potosí Facultad de Ingeniería Centro de Investigación y Estudios de Posgrado “GENERACIÓN AUTOMÁTICA DE TRAYECTORIAS DE HERRAMIENTA PARA EL MAQUINADO DE MODELOS 3D A PARTIR DE FORMAS APROXIMADAS” Tesis Para obtener el grado de Maestro en Ingeniería Mecánica Presenta: Ing. Edgar Abraham Mendoza López Asesor: Dr. Hugo Iván Medellín Castillo San Luis Potosí, S.L.P. Febrero 2013

Transcript of Universidad Autónoma de San Luis Potosíciep.ing.uaslp.mx/tesis/tesisPDF/177201817320601488.pdf ·...

Universidad Autónoma de San Luis Potosí

Facultad de Ingeniería

Centro de Investigación y Estudios de Posgrado

“GENERACIÓN AUTOMÁTICA DE TRAYECTORIAS

DE HERRAMIENTA PARA EL MAQUINADO DE

MODELOS 3D A PARTIR DE FORMAS

APROXIMADAS”

Tesis

Para obtener el grado de

Maestro en Ingeniería Mecánica

Presenta:

Ing. Edgar Abraham Mendoza López

Asesor:

Dr. Hugo Iván Medellín Castillo

San Luis Potosí, S.L.P. Febrero 2013

i

Resumen

Aunque en los sistemas de manufactura rápida se han desarrollado nuevas técnicas para la

fabricación de piezas o componentes, la mayoría de ellas aún presentan dos grandes limitaciones:

el tipo de material que son capaces de procesar y la precisión dimensional que pueden lograr. No

obstante, la mayoría de los trabajos de investigación reportados en la literatura se enfocan a

mejorar dichas limitaciones, mientras que algunos otros se enfocan a la investigación de nuevas

técnicas que tomen las ventajas de la manufactura rápida y la manufactura tradicional para

obtener sistemas de fabricación más robustos y eficientes. Debido a las limitaciones que presenta

la manufactura rápida, la principal aplicación ha sido la producción de formas aproximadas, es

decir, la fabricación de piezas con forma muy cercana a la forma final. Por otro lado, estos

sistemas ofrecen las ventajas de producir piezas que requieren procesos de acabado mínimos, un

ahorro significativo de material, reducción del tiempo de maquinado así como de los costos de

producción. El proceso de acabado comúnmente utilizado para las formas aproximadas ha sido el

maquinado CNC por la gran variedad de materiales que se pueden maquinar, la calidad del

acabado superficial que se puede lograr, y la precisión dimensional elevada. Aunque la principal

desventaja del maquinado es el desperdicio de material, es despreciable cuando es aplicado a

formas aproximadas.

En este trabajo de tesis se presenta una nueva técnica para la generación automática de

trayectorias de maquinado para sistemas de tres ejes, utilizando como materia prima formas

aproximadas y rectangulares. El método propuesto consta de dos módulos principales: módulo de

discretización de la superficie y módulo de posicionamiento de la herramienta. En el módulo de

discretización la superficie del modelo se discretiza por medio de puntos utilizando un análisis de

visibilidad de las diferentes secciones del modelo. El módulo de posicionamiento de la

herramienta está basado en un algoritmo nuevo el cual permite posicionar la herramienta de corte

sobre la superficie del modelo; este algoritmo tiene la capacidad de posicionar diferentes tipos de

herramientas con solo cambiar un parámetro. Cada posición calculada de la herramienta es

analizada modelando numéricamente la herramienta y el portaherramientas para obtener de esta

manera posiciones libres de colisiones e interferencias.

Para probar la factibilidad del método propuesto, se implementaron los algoritmos desarrollados

y se generaron las trayectorias de maquinado para diferentes modelos con forma y complejidad

variable. Los diferentes algoritmos desarrollados fueron probados y se obtuvieron resultados

exitosos. Como parte de la validación, las trayectorias generadas se utilizaron para maquinar una

pieza en un sistema de maquinado de tres ejes. Los resultados obtenidos muestran que las

trayectorias generadas en el sistema propuesto cumplen con las condiciones de tolerancias en

superficies con pendiente menores a 60º, sin embargo, cuando la pendiente es mayor a 60º el

error se incrementa debido a una distribución no uniforme de la cresta.

ii

Agradecimientos

Me gustaría agradecer al Dr. Hugo Iván Medellín Castillo por haber confiado en mi persona, por la paciencia, por la dirección de esta tesis y haber compartido sus conocimientos y experiencia en estos últimos seis años. Al Dr. Dirk Frederik de Lange por los consejos, el apoyo y el ánimo que me brindó durante este proceso. Además agradezco al M.I. Germánico González Badillo por su ayuda en temas relacionados con la programación. Al Ing. Jorge Zaragoza Siqueiros y al Ing. Rodolfo Auristel López Palau por su ayuda en temas relacionados a programación y maquinado CNC. Gracias también a mis amigos, colegas, técnicos y secretarias de la universidad por sus consejos, estímulo, ayuda y apoyo durante los últimos dos años. A mis padres Clemente y Aurora, a mis hermanos Verónica, Claudia, Clemente y Fernando que con su apoyo y dedicación han logrado mantenerme en el camino de la superación y que en los momentos difíciles hemos estado unidos para salir adelante. A ti Daniela por estar ahí durante todos estos años apoyándome y haciendo esto más sencillo, a tu familia por el apoyo recibido.

A la Facultad de Ingeniería y al CIEP por brindar las instalaciones y espacios necesarios.

Finalmente quiero agradecer al Consejo Nacional de Ciencia y Tecnología de México, CONACYT, por la beca otorgada para realizar mis estudios de maestría.

Edgar A. Mendoza

iii

Contenido

Resumen .................................................................................................................................................. i Agradecimientos .................................................................................................................................... ii Contenido .............................................................................................................................................. iii Lista de Figuras..................................................................................................................................... vi Lista de Tablas ....................................................................................................................................... x Glosario ................................................................................................................................................. xi

Introducción ........................................................................................................................................... 1

Planteamiento del proyecto de tesis ...................................................................................................... 2 Objetivo general ................................................................................................................................... 3 Metodología ......................................................................................................................................... 4 Organización de la tesis ........................................................................................................................ 4

Capítulo 1. Antecedentes teóricos ...................................................................................................... 5

1.1 Maquinado ............................................................................................................................... 5 1.1.1 Maquinado con herramientas de múltiples filos ................................................................. 6 1.1.2 Parámetros del maquinado con herramientas de múltiples filos .......................................... 8 1.1.3 Clasificación de las operaciones en el proceso de maquinado ............................................ 9

1.2 Trayectorias de herramienta ...................................................................................................... 9 1.2.1 Métodos para la generación de trayectorias de herramienta .............................................. 10 1.2.2 Métodos para el posicionamiento de la herramienta ......................................................... 12 1.2.3 Interferencias .................................................................................................................. 14 1.2.4 Colisiones ....................................................................................................................... 14 1.2.5 Estrategias de maquinado ................................................................................................ 17 1.2.6 Error en la dirección de maquinado ................................................................................. 18 1.2.7 Error en dirección ortogonal a la dirección de maquinado ................................................ 18

Capítulo 2. Generación de trayectorias de herramienta ................................................................. 21

2.1 Maquinado de modelos 3D ..................................................................................................... 21 2.2 Modelo sólido y materia prima ............................................................................................... 22 2.3 Parámetros del maquinado ...................................................................................................... 23

2.3.1 Herramientas de corte y sistema de sujeción .................................................................... 23 2.3.2 Profundidad e intervalos de corte .................................................................................... 24 2.3.3 Tolerancias ..................................................................................................................... 25

2.4 Generación de trayectorias de herramienta .............................................................................. 25 2.4.1 Offset del modelo CAD................................................................................................... 25 2.4.2 Posicionamiento por iteración ......................................................................................... 28 2.4.3 Discretización de la superficie ......................................................................................... 35

2.4.3.1 Perfiles de intersección ................................................................................................ 36 2.4.3.2 Análisis de visibilidad ................................................................................................. 37 2.4.3.3 Posicionamiento de la herramienta .............................................................................. 47 2.4.3.4 Análisis de la tolerancia en la dirección de maquinado................................................. 50 2.4.3.5 Análisis de colisiones .................................................................................................. 51 2.4.3.6 Ventajas y desventajas................................................................................................. 54

2.5 Generación de trayectorias de herramienta para desbaste ......................................................... 54

iv

2.5.1 Parámetros en el desbaste ................................................................................................ 55 2.5.2 Cálculo de las pasadas ..................................................................................................... 55

2.6 Generación de trayectorias de herramienta para acabado ......................................................... 60 2.6.1 Paso en la dirección de maquinado .................................................................................. 60 2.6.2 Paso entre trayectorias paralelas ...................................................................................... 60

Capítulo 3. Generación de código o instrucciones de maquinado .................................................. 62

3.1 Control Numérico (NC) o Control numérico computarizado (CNC) ........................................ 62 3.1.1 Carácter .......................................................................................................................... 62 3.1.2 Palabra ............................................................................................................................ 63 3.1.3 Bloque ............................................................................................................................ 63 3.1.4 Programa ........................................................................................................................ 63

3.2 Estructura de los bloques de programa .................................................................................... 63 3.2.1 Número de bloque (N) .................................................................................................... 64 3.2.2 Funciones preparatorias (G) ............................................................................................ 65 3.2.3 Avance de los ejes (F) ..................................................................................................... 69 3.2.4 Velocidad del cabezal (S) ................................................................................................ 69 3.2.5 Número de herramienta (T) ............................................................................................. 69 3.2.6 Funciones auxiliares (M) ................................................................................................. 69 3.2.7 Comentario de bloques .................................................................................................... 71

3.3 Estructura del programa .......................................................................................................... 71 3.4 Generación de código CNC para maquinado ........................................................................... 72

3.4.1 Encabezado del programa ............................................................................................... 72 3.4.2 Cuerpo del programa ....................................................................................................... 72 3.4.3 Fin del programa ............................................................................................................. 79

3.5 Generación de código de maquinado para robot y/o propósito general ..................................... 81

Capítulo 4. Implementación ............................................................................................................. 82

4.1 HWTestBedApp ..................................................................................................................... 82 4.2 Configuración de la pieza (Part Setup) .................................................................................... 83 4.3 Materia prima (Raw Material) ................................................................................................. 84

4.3.1 Forma rectangular (Rectangular Shape) ........................................................................... 84 4.3.2 Archivo (File) ................................................................................................................. 86

4.4 Configuración del desbaste y acabado (Rough Setting, Finish Setting) .................................... 88 4.4.1 Sistema de herramientas (Tooling System) ...................................................................... 89 4.4.2 Parámetros de maquinado (Machining Parameters).......................................................... 91

4.5 Simulación (Simulation) ......................................................................................................... 94 4.6 Código (Code) ........................................................................................................................ 95

Capítulo 5. Análisis y evaluación del sistema .................................................................................. 97

5.1 Resultados del sistema ............................................................................................................ 97 5.1.1 Modelo 1: Gehaeuse........................................................................................................ 97 5.1.2 Modelo 2: Molde .......................................................................................................... 102 5.1.3 Modelo 3: Camión ........................................................................................................ 105 5.1.4 Modelo 4: Sello............................................................................................................. 108 5.1.5 Modelo 5: Superficie de forma libre .............................................................................. 111 5.1.6 Modelo 6: Trial ............................................................................................................. 114

5.2 Discusión.............................................................................................................................. 123 5.2.1 Trayectorias de herramienta .......................................................................................... 123 5.2.2 Análisis de colisiones .................................................................................................... 126 5.2.3 Generación de pasadas de herramienta (desbaste) .......................................................... 127

v

5.2.4 Código de maquinado ................................................................................................... 127

Conclusiones ....................................................................................................................................... 129 Referencias ......................................................................................................................................... 132 Apéndices ........................................................................................................................................... 136

A. Códigos G ................................................................................................................................ 136 B. Códigos M................................................................................................................................ 138

vi

Lista de Figuras

Figura 1. Construcción automática de modelo octree. ............................................................................... 3

Figura 2. Esquema general del maquinado de modelos aproximados (octree). ........................................... 3

Figura 1.1. Proceso de corte durante el maquinado: a) sección transversal del proceso de maquinado, y (b)

herramienta con ángulo de ataque negativo; comparada con el ángulo positivo de a). .............. 5

Figura 1.2. Tipos de operaciones de maquinado: a) torneado, b) taladrado, c) maquinado con herramientas

de múltiples filos, y d) procesos con herramientas de múltiples filos. ...................................... 6

Figura 1.3. Maquinado periférico: a) maquinado de placa, b) ranurado, c) maquinado lateral, y d)

maquinado paralelo simultáneo. .............................................................................................. 7

Figura 1.4. Dos formas de maquinado: a) maquinado hacia arriba, y b) maquinado hacia abajo. ............... 7

Figura 1.5. Maquinado frontal: a) maquinado frontal convencional, b) maquinado frontal parcial, c)

maquinado terminal, d) maquinado de perfiles, e) maquinado de cavidades, y f) maquinado de

contorno superficial. ............................................................................................................... 8

Figura 1.6. Generación de trayectorias por el método iso-paramétrico..................................................... 10

Figura 1.7. Generación de trayectorias por el método iso-planar (cartesiano). ......................................... 11

Figura 1.8. Trayectorias adyacentes de posiciones de herramienta y cresta típica. ................................... 12

Figura 1.9. Posicionamiento por inversión de la herramienta: a) herramienta de punta de bola, y b)

herramienta de filete. ............................................................................................................ 12

Figura 1.10. Posicionamiento de la herramienta por desplazamiento: (a) modelo original, y (b) modelo

desplazado. ........................................................................................................................... 13

Figura 1.11. Posicionamiento de la herramienta mediante rayos. ............................................................ 13

Figura 1.12. Tres tipos de interferencias: a) global, b) local, y c) con superficies vecinas. ....................... 14

Figura 1.13. Detección de colisiones mediante operaciones booleanas: a) colisión, b) resultado de

intersección entre el modelo y el portaherramientas. .............................................................. 15

Figura 1.14. Detección de colisiones en el portaherramientas. ................................................................ 16

Figura 1.15. Modelo geométrico del sistema completo para la detección de colisiones (herramienta y

portaherramientas). ............................................................................................................... 16

Figura 1.16. Estrategias de maquinado: a) zig-zag, y b) contornos. ......................................................... 18

Figura 1.17. Determinación del paso en la dirección de maquinado. ....................................................... 18

Figura 1.18. Determinación del paso lateral. ........................................................................................... 19

Figura 1.19. Determinación del intervalo de intersección de planos: a) pequeño, y b) grande. ........... 20

Figura 2.1. Esquema general del maquinado de partes. ........................................................................... 21

Figura 2.2. Diagrama de flujo para el maquinado de modelos 3D. .......................................................... 22

Figura 2.3. Modelo 3D. .......................................................................................................................... 23

Figura 2.4. Modelos de materias primas, a) rectangular, y b) aproximadas. ............................................. 23

Figura 2.5. Herramientas de corte: a) plana, b) punta de bola, y c) de filete. ............................................ 24

Figura 2.6. Sistemas de sujeción para herramientas de corte. .................................................................. 24

Figura 2.7. Parámetros del maquinado: a) profundidad de corte, y b) intervalo de corte. ......................... 25

vii

Figura 2.8. Superficie desplazada: a) modelo original, y b) modelo desplazado....................................... 26

Figura 2.9. Cálculo de posiciones de la herramienta................................................................................ 27

Figura 2.10. Trayectorias de herramienta. ............................................................................................... 27

Figura 2.11. Esquema del proceso de obtención de puntos sobre la superficie. ........................................ 29

Figura 2.12. Posicionamiento de la herramienta mediante iteración. ....................................................... 30

Figura 2.13. Diagrama de flujo del método para posicionamiento de la herramienta. ............................... 31

Figura 2.14. Extrapolación lineal. ........................................................................................................... 31

Figura 2.15. Extrapolación circular......................................................................................................... 33

Figura 2.16. Trayectorias de herramienta con segmentos lineales y circulares. ........................................ 33

Figura 2.17. Diagrama de flujo para la generación de segmentos lineales y circulares. ............................ 34

Figura 2.18. Generación de perfiles: a) modelo, b) plano de corte, y c) áreas de intersección. ................. 36

Figura 2.19. Clasificación de los perfiles: a) perfil con múltiples lados, y b) perfil con un solo lado. ....... 37

Figura 2.20. Visibilidad de lados rectos basada en su normal: a) lado inclinado, y b) lado vertical. ......... 38

Figura 2.21. Perfil después de la eliminación de lados rectos sin visibilidad. ........................................... 38

Figura 2.22. Visibilidad nula: a) lados del perfil, y b) resultados del análisis de visibilidad. .................... 39

Figura 2.23. Visibilidad parcial: a) lados del perfil, y b) resultados del análisis de visibilidad. ................ 40

Figura 2.24. Visibilidad indefinida: a) lados del perfil, y b) resultados del análisis de visibilidad. ........... 40

Figura 2.25. Análisis de visibilidad de rectángulos. ................................................................................ 41

Figura 2.26. Diagrama de flujo para el análisis de visibilidad basada en rectángulos. .............................. 42

Figura 2.27. Perfil después del análisis de visibilidad por rectángulos. .................................................... 42

Figura 2.28. Descomposición de un lado en secciones: a) lado original, y b) lados generados. ................ 43

Figura 2.29. Comparación de secciones: a) lado A y B, b) resultado de AB y C, y c) perfil final. ............ 44

Figura 2.30. Resultado final después del análisis de visibilidad por discretización. ................................. 45

Figura 2.31. Discretización de superficies de 3 diferentes modelos: a) modelo de una turbina, b)

discretización de la turbina, c) modelo de un camión, d) discretización del camión, e) modelo

de un molde, y f) discretización del molde. ........................................................................... 47

Figura 2.32. Herramientas de corte y su punto de referencia: a) plana, b) punta de bola, y c) filete. ........ 47

Figura 2.33. Área proyectada de la herramienta. ..................................................................................... 48

Figura 2.34. Esquema de una herramienta de filete. ................................................................................ 49

Figura 2.35. Procedimiento general para posicionamiento de herramientas. ............................................ 50

Figura 2.36. Análisis del error en la dirección de maquinado. ................................................................. 51

Figura 2.37. Modelo geométrico del sistema de sujeción y herramienta. ................................................. 51

Figura 2.38. Diagrama de flujo para análisis de colisiones. ..................................................................... 53

Figura 2.39. Recálculo de posiciones debido a colisiones. ...................................................................... 53

Figura 2.40. Desbaste capa por capa. ...................................................................................................... 54

Figura 2.41. Generación de trayectorias en materia prima rectangular. .................................................... 56

Figura 2.42. Método para el cálculo de las trayectorias por pasada.......................................................... 56

Figura 2.43. Generación de trayectorias por pasada: a) trayectorias sobre modelo final, b) pasadas para

modelo final, c) trayectorias sobre materia prima, y d) pasadas para materia prima. ............... 57

Figura 2.44. Sustracción de modelos: a) sustracción de modelos, y b) sustracción de trayectorias. .......... 57

Figura 2.45. Generación de trayectorias para evitar interferir en el modelo final. .................................... 58

Figura 2.46. Trayectorias finales para desbaste. ...................................................................................... 58

Figura 2.47. Trayectorias de desbaste: a) materia prima, b) trayectorias de desbaste sobre modelo, y c)

trayectorias de desbaste......................................................................................................... 59

viii

Figura 2.48. Trayectorias de acabado: a) modelo y sus trayectorias, y b) trayectorias. ............................. 61

Figura 3.1. Estructura de un bloque en programación CNC. .................................................................... 64

Figura 3.2. Direcciones de giro de G02 y G03. ....................................................................................... 66

Figura 3.3. Selección de planos del área de trabajo: a) plano XY, b) plano XZ, y c) plano YZ. ............... 67

Figura 3.4. Compensación del radio de la herramienta. ........................................................................... 68

Figura 3.5. Cotas absolutas. .................................................................................................................... 68

Figura 3.6. Cotas incrementales. ............................................................................................................. 69

Figura 3.7. Encabezado del programa. .................................................................................................... 72

Figura 3.8. Organización de las matrices de desbaste y acabado. ............................................................ 73

Figura 3.9. Encabezado y primera parte del cuerpo del programa. ........................................................... 74

Figura 3.10. Cuatro trayectorias de herramientas. ................................................................................... 75

Figura 3.11. Matriz de trayectorias de desbaste. ...................................................................................... 76

Figura 3.12. Trayectorias finales de desbaste. ......................................................................................... 77

Figura 3.13. Diagrama de flujo para la escritura de la trayectorias de herramienta. .................................. 78

Figura 3.14. Programa CNC. .................................................................................................................. 79

Figura 3.15. Programa CNC final. .......................................................................................................... 80

Figura 3.16. Código de maquinado para robot y/o propósito general. ...................................................... 81

Figura 4.1. Interfaz gráfica de la plataforma HWTestBedApp. ................................................................ 82

Figura 4.2. Opciones del menú de maquinado “Machining”. ................................................................... 83

Figura 4.3. Diálogo de notificación. ....................................................................................................... 84

Figura 4.4. Orientación del modelo. ....................................................................................................... 84

Figura 4.5. Definición de la materia prima (forma rectangular). .............................................................. 85

Figura 4.6. Origen del sistema de coordenadas. ...................................................................................... 85

Figura 4.7. Materia prima de forma rectangular. ..................................................................................... 86

Figura 4.8. Materia prima de forma aproximada. .................................................................................... 87

Figura 4.9. Materia prima desde archivo. ................................................................................................ 87

Figura 4.10. Materia prima desde un archivo (forma aproximada). ......................................................... 88

Figura 4.11. Configuración del maquinado. ............................................................................................ 88

Figura 4.12. Definición de nueva herramienta. ....................................................................................... 89

Figura 4.13. Opción para nuevas herramientas creadas. .......................................................................... 91

Figura 4.14. Parámetros del maquinado. ................................................................................................. 92

Figura 4.15. Información de la generación de trayectorias: a) acabado, y b) desbaste. ............................. 93

Figura 4.16. Reporte de la generación de trayectorias de herramienta. .................................................... 93

Figura 4.17. Opción “Simulation”. ......................................................................................................... 94

Figura 4.18. Modelo geométrico del portaherramientas. ......................................................................... 94

Figura 4.19. Simulación gráfica de las trayectorias de maquinado. .......................................................... 95

Figura 4.20. Opción “Code->CNC”: a) ningún código generado (opciones inhabilitadas), y b) código

generado para acabado (opción “Finishing” habilitada). ........................................................ 95

Figura 4.21. Código de maquinado para desbaste. .................................................................................. 96

Figura 5.1. Modelo 1: Gehaeuse. ............................................................................................................ 97

Figura 5.2. Materia prima para el modelo Gehaeuse: a) forma aproximada, y b) materia prima y modelo.98

ix

Figura 5.3. Trayectorias para desbaste de modelo Gehaeuse. ................................................................ 100

Figura 5.4. Descomposición de la trayectoria de desbaste para el modelo Gehaeuse.............................. 100

Figura 5.5. Trayectoria de acabado para el modelo Gehaeuse. .............................................................. 102

Figura 5.6. Modelo 2: Molde. ............................................................................................................... 102

Figura 5.7. Materia prima para el Molde: a) modelo octree, y b) materia prima y modelo. .................... 103

Figura 5.8. Trayectorias de desbaste para el Molde. .............................................................................. 104

Figura 5.9. Trayectorias de acabado para el Molde. .............................................................................. 105

Figura 5.10. Modelo 3: Camión. ........................................................................................................... 105

Figura 5.11. Materia prima para el Camión........................................................................................... 106

Figura 5.12. Trayectorias de desbaste para el modelo del Camión. ........................................................ 107

Figura 5.13. Trayectorias de acabado para el modelo del Camión. ........................................................ 108

Figura 5.14. Modelo 4: Sello. ............................................................................................................... 108

Figura 5.15. Materia prima para el modelo del Sello. ............................................................................ 109

Figura 5.16. Trayectorias de desbaste para el modelo del Sello. ............................................................ 110

Figura 5.17. Trayectorias de acabado para el Sello: a) vista isométrica, y b) vista lateral. ...................... 111

Figura 5.18. Modelo 5: Superficie de forma libre.................................................................................. 112

Figura 5.19. Materia prima para el modelo de superficie de forma libre. ............................................... 112

Figura 5.20. Trayectorias de desbaste para el modelo de superficie de forma libre. ............................... 113

Figura 5.21. Trayectorias de acabado para el modelo de superficie de forma libre. ................................ 114

Figura 5.22. Modelo 6: Trial. ............................................................................................................... 115

Figura 5.23. Sistema de fresado CNC utilizado para el maquinado del modelo Trial. ............................ 115

Figura 5.24. Materia prima para el modelo Trial: a) materia prima virtual, y b) materia prima real. ....... 116

Figura 5.25. Herramientas de corte plana para desbaste, 10mm............................................................. 117

Figura 5.26. Trayectorias de desbaste para el modelo Trial. .................................................................. 117

Figura 5.27. Maquinado de desbaste: a) materia prima, b) después de 3 capas de maquinado, c) después de

4 capas de maquinado, d) después de penúltima capa de acabado, e) y f) después de la

remoción del efecto escalera, última capa de maquinado. .................................................... 118

Figura 5.28. Herramienta de punta de bola para acabado, 6.35mm. ....................................................... 119

Figura 5.29. Trayectorias de acabado para el modelo Trial. .................................................................. 120

Figura 5.30. Etapas durante el maquinado de acabado: a) y b) después de un cuarto de modelo maquinado,

c) y d) después de la mitad del modelo maquinado, e) y f) después de tres cuarto de modelo

maquinado, g) y h) modelo completamente maquinado. ...................................................... 121

Figura 5.31. Máquina de medición por coordenadas. ............................................................................ 121

Figura 5.32. Características medidas en el modelo Trial. ...................................................................... 122

Figura 5.33. Registro de datos en la máquina de medición por coordenadas (MMC). ............................ 123

Figura 5.34. Máximo error de discretización......................................................................................... 125

Figura 5.35. Distribución no uniforme de la cresta en el maquinado de acabado. .................................. 126

x

Lista de Tablas

Tabla 1. Técnicas RP actuales. ................................................................................................................. 1

Tabla 2. Principales limitaciones de las técnicas RP. ................................................................................ 2

Tabla 3.1. Ejemplos de números de bloque. ............................................................................................ 64

Tabla 4.1. Avances de herramienta para aluminio, utilizando herramientas de carburo. ........................... 90

Tabla 5.1. Información para modelo Gehaeuse: a) parámetros del desbaste, y b) resultados de la

generación de trayectorias. .................................................................................................... 99

Tabla 5.2. Información de modelo Gehaeuse: a) parámetros del acabado, b) resultados de la generación de

trayectorias. ........................................................................................................................ 101

Tabla 5.3. Información para el modelo del Molde: a) parámetros del desbaste, b) resultados de la

generación de trayectorias. .................................................................................................. 103

Tabla 5.4. Información para el modelo del Molde: a) parámetros del acabado, y b) resultados de la

generación de trayectorias. .................................................................................................. 104

Tabla 5.5. Información para el modelo del Camión: a) parámetros de las trayectorias de maquinado, b)

resultados de la generación de las trayectorias para desbaste. .............................................. 106

Tabla 5.6. Información para el modelo del Camión: a) parámetros del acabado, y b) resultados de la

generación de trayectorias. .................................................................................................. 107

Tabla 5.7. Información para el modelo del Sello: a) parámetros del desbaste, b) resultados de la generación

de trayectorias. ................................................................................................................... 109

Tabla 5.8. Información para el modelo del Sello: a) parámetros del maquinado, b) resultados de la

generación de trayectorias. .................................................................................................. 110

Tabla 5.9. Información para el modelo de superficie de forma libre: a) parámetros del desbaste, y b)

resultados de la generación de trayectorias. ......................................................................... 113

Tabla 5.10. Información para el modelo de superficie de forma libre: a) parámetros del acabado, y b)

resultados de la generación de trayectorias. ......................................................................... 114

Tabla 5.11. Información para el modelo Trial: a) parámetros del desbaste, b) resultados de la generación

de trayectorias. ................................................................................................................... 116

Tabla 5.12. Información para el modelo Trial: a) parámetros del acabado, y b) resultados de la generación

de trayectorias. ................................................................................................................... 119

Tabla 5.13. Análisis de dimensiones medidas y reales. ......................................................................... 122

Tabla 5.14. Resumen de resultados obtenidos de las pruebas. ............................................................... 124

xi

Glosario

NNS Forma Casi Neta (Near Net Shape)

RP Prototipado Rápido (Rapid Prototyping )

CAD Diseño Asistido por Computadora (Computer-Aided Design)

SLA Estereolitografia (Stereolitography)

JP Chorro de Fotopolímero (Photosolidification)

FDM Modelado por Deposición Líquida (Fused Deposition Modelling)

SLS Sinterizado Selectivo por Laser (Selective Laser Sintering)

3DP Impresión Tridimensional (Three Dimensional Printing)

LENS Formado Final en Ingeniería por Laser (Laser Engineering Net Shaping)

DLMS Sinterizado Directo de Metal por Laser (Direct Metal Laser Sintering)

DMD Deposición Directa de Metal (Direct Metal Deposition)

LOM Manufactura de Objetos Laminados (Laminated Onject Manufacturing)

DM Maquinado de Escritorio (Desktop Machining)

CNC Control Numérico Computarizado (Computer Numerical Control)

CC Puntos de Contacto de la Herramienta (Cutter Contacts Points)

CAM Manufactura Asistida por Computadora (Computer-Aided Manufacturing)

Introducción

1

Introducción

La manufactura de formas aproximadas (Near Neat Shape, NNS, por sus siglas en inglés) se

refiere a la fabricación de productos donde el objetivo principal es producir partes tan cercanas

como sea posible a su forma final. Los beneficios de la manufactura NNS incluyen una reducción

en el trabajo de acabado requerido, un ahorro significativo de material, y una reducción en los

costos y tiempos de producción. Los sistemas tradicionales de manufactura NNS son:

Fundición: proceso de manufactura en el que un material en estado líquido es vertido

dentro de un molde que contiene cavidades de la forma deseada, y luego es solidificado.

Forja: proceso de fabricación en el cual la forma es obtenida mediante el formado de un

metal utilizando fuerzas de compresión en lugares específicos.

Moldeo por inyección: proceso de manufactura para la producción de partes de plástico

(termoplásticos y termoestables). El material es alimentado hacia un contenedor caliente,

en donde se mezcla y forza a entrar en una cavidad (molde) para su posterior enfriamiento

y endurecido, manteniendo la forma del molde.

Además de estos sistemas, desde hace más de dos décadas se han desarrollado nuevas tecnologías

para la fabricación de partes. Una de estas tecnologías es el Prototipado Rápido (RP, por sus

siglas en inglés) que se describe como una tecnología para producir partes directamente de

modelos digitales generados en sistemas de Diseño Asistido por Computadora (CAD, por sus

siglas en inglés), y con muy poca necesidad de intervención humana [1]. La mayoría de las

técnicas RP actuales están basadas en procesos de construcción “capa por capa”, en donde una

serie de secciones o capas se obtienen de un modelo CAD. Este tipo de procesos también son

conocidos como procesos de adición de material, esto debido a que en lugar de remover material,

se añade material hasta obtener la pieza final. Existen diferentes métodos de RP, siendo la mayor

diferencia entre ellas la técnica utilizada para la adición de material, así como el tipo de material

que se utiliza. Algunas de las técnicas RP más comunes se muestran en la Tabla 1, [2].

Material Técnica

Líquido

Estereolitografía (SLA)

Chorro de fotopolímero (JP)

Fotosolidificación

Modelado por deposición liquida (FDM)

Inyección múltiple de tinta

Inyección simple de tinta

Polvo

Sinterizado selectivo por láser (SLS)

Impresión tridimensional (3DP)

Formado final en ingeniería por láser (LENS)

Sinterizado directo de metal por láser (DLMS)

Deposición directa de metal (DMD)

Sólido Manufactura de objetos laminados (LOM)

Maquinado de escritorio (DM)

Tabla 1. Técnicas RP actuales.

Introducción

2

Una de las limitaciones más importante que afecta a todas estas técnicas RP es la precisión y el

acabado superficial de los componentes [2], Tabla 2. Debido a esto, la principal aplicación de las

técnicas RP ha sido en la producción de prototipos de forma aproximada (NNS), que requieren

una operación de acabado para lograr las tolerancias requeridas. Algunos productos fabricados

con técnicas RP pueden utilizarse directamente, sin embargo, la mayoría requieren un post-

procesamiento considerable.

Precisión y acabado superficial del componente

Resolución limitada a lo largo de los ejes de

construcción. Aproximación en facetas y efecto escalera.

La precisión dimensional y la calidad de la

superficie es menor que el maquinado CNC y procesos de moldeo por inyección.

Contracción y distorsión.

Tabla 2. Principales limitaciones de las técnicas RP.

Las técnicas de manufactura de formas aproximadas, incluyendo las técnicas modernas de RP,

requieren de un post-procesamiento para lograr la precisión dimensional y el acabado superficial

deseado. Una opción viable de post-procesamiento es el maquinado CNC, el cual es un proceso

de fabricación basado en la remoción de material y mediante el cual se pueden producir una gran

cantidad de productos metálicos y otros materiales como la madera y los plásticos. A diferencia

de las técnicas RP, las ventajas del maquinado CNC son: la gran variedad de materiales que se

pueden maquinar, el acabado superficial de gran calidad y la precisión dimensional elevada. Sin

embargo, al ser un proceso de remoción de material, su principal desventaja es el desperdicio de

material [3], que aplicado a formas aproximadas tiene un impacto mucho menor volviéndose una

opción viable en cuanto al ahorro de material y tiempo de maquinado, lo cual se traduce en la

reducción de costos de fabricación.

Planteamiento del proyecto de tesis Recientemente se propuso una nueva técnica RP la cual está basada en la fabricación de

prototipos a partir del ensamble automático de material en forma de cubos [4]. La técnica

propuesta incluye la aproximación del modelo CAD de la pieza por medio de la descomposición

octree. El procedimiento general consiste en delimitar el modelo por el mínimo cubo posible

(bounding cube), después este es subdividido en más y más cubos de distintos tamaños hasta que

se alcance el tamaño mínimo definido. En la descomposición habrá cubos que no formen parte

del modelo (cubos vacíos) y se eliminarán quedando solo los que formen parte de él. Estos cubos

son fabricados y pegados con adhesivo de acuerdo a la secuencia del ensamble generada,

obteniéndose así una forma aproximada del modelo CAD (Figura 1). En este sistema, al igual que

en los sistemas tradicionales de manufactura de formas aproximadas y los sistemas RP, es

necesario un proceso adicional para lograr la precisión dimensional y el acabado superficial de la

pieza final.

Introducción

3

(a) Modelo 3D (b) Representación octree (c) Planificación del ensamble

(d) Toma de elementos (cubos) (e) Aplicación de adhesivo (f) Ensamble de elementos

del alimentador

Figura 1. Construcción automática de modelo octree.

Por lo anterior se propone el desarrollo de algoritmos para la generación de trayectorias de

maquinado a partir de modelos aproximados y/o materia prima de formas regular (rectangular).

El propósito es que las piezas fabricadas por los distintos métodos de manufactura de formas

aproximadas se puedan maquinar para obtener piezas que cumplan con la precisión dimensional y

el acabado superficial especificados.

Objetivo general El objetivo principal del proyecto de tesis es el desarrollo de un sistema para la generación

automática de trayectorias de herramienta para el maquinado de modelos 3D a partir de formas

aproximadas. Para ello se considera el maquinado CNC de tres ejes, esto como parte del trabajo

desarrollado en [4], ver Figura 2.

Figura 2. Esquema general del maquinado de modelos aproximados (octree).

Introducción

4

Metodología La metodología propuesta para el desarrollo del trabajo de tesis es la siguiente:

Revisión bibliográfica de algoritmos y técnicas para la generación de trayectorias de

herramienta para maquinado.

Desarrollo de un algoritmo nuevo o existente para la obtención de volúmenes de

maquinado.

Desarrollo de un algoritmo nuevo o existente para la generación de trayectorias de

herramienta para maquinado de desbaste y acabado.

Análisis de manufacturabilidad (accesibilidad, grados de libertad, trayectorias,

interferencias, colisiones, cavidades, etc.).

Desarrollo e implementación de algoritmos en un programa computacional.

Generación de código o instrucciones para un sistema CNC.

Pruebas y evaluación del sistema.

Se considera que siguiendo la metodología anterior es posible cumplir el objetivo general de la

tesis, contribuyendo de esta manera al desarrollo de técnicas para el maquinado de modelos 3D a

partir de formas aproximadas.

Organización de la tesis La tesis está organizada de la siguiente manera. En el Capítulo 1 se presenta un resumen de los

conceptos básicos sobre el maquinado, así como una revisión detallada de los métodos existentes

para la generación automática de trayectorias de herramienta. En el Capítulo 2 se presenta el

desarrollo de los algoritmos para la generación de trayectorias de herramienta para el maquinado

de modelos 3D a partir de formas aproximadas, así como de formas rectangulares. Los

fundamentos teóricos de la programación de sistemas CNC, así como el desarrollo de los

algoritmos para la generación de código CNC a partir de las trayectorias de herramienta, se

presentan en el Capítulo 3. La implementación de los algoritmos para la generación de

trayectorias de herramienta y la generación de código CNC o instrucciones de maquinado se

presenta y describe en el Capítulo 4. En el Capítulo 5 se realiza la evaluación, análisis y discusión

de los resultados obtenidos de la fabricación de algunas piezas planeadas en el sistema

desarrollado y utilizando un sistema CNC de tres ejes. Finalmente, se presentan las conclusiones

obtenidas con el desarrollo del presente proyecto así como la propuesta de trabajo futuro.

Capítulo 1. Antecedentes teóricos

5

Capítulo 1. Antecedentes teóricos

Antecedentes teóricos

Este Capítulo presenta una revisión de los diferentes tipos de maquinado convencional existentes,

así como un análisis de los parámetros fundamentales en el maquinado CNC de tres ejes.

Posteriormente se presenta una revisión de los trabajos previos de investigación en el área de

maquinado y generación de trayectorias de herramienta.

1.1 Maquinado

El maquinado es el término general para describir el proceso de remoción de material de una

pieza [5]. Tiene como objetivo generar la forma de la pieza deseada partiendo de un cuerpo

sólido, o mejorar las tolerancias y el acabado superficial de una pieza de trabajo previamente

formada, al retirar el material excedente en forma de pequeños elementos (virutas) [6]. Los

procesos de remoción de material se dividen en tres grupos principales: maquinado tradicional,

procesos abrasivos y maquinado no tradicional. En el maquinado tradicional se utilizan

máquinas-herramienta (tornos, taladros, fresadoras, etc.) junto con herramientas afiladas para

cortar el material mecánicamente. La acción de corte predominante comprende la deformación

cortante del material para formar la viruta, la cual se desprende dejando una nueva superficie [3].

El esquema del proceso de corte se muestra en la Figura 1.1.

(a) (b)

Figura 1.1. Proceso de corte durante el maquinado: a) sección transversal del proceso de

maquinado, y (b) herramienta con ángulo de ataque negativo; comparada con el ángulo positivo

de a).

El maquinado comprende una familia de operaciones y cada una capaz de generar geometrías y

texturas superficiales específicas. Las operaciones de maquinado más importantes son: torneado,

taladrado y el maquinado con herramientas de múltiples filos (también conocido como fresado)

[3], [5]-[8].

Capítulo 1. Antecedentes teóricos

6

Torneado. Consiste en la remoción de material mediante una herramienta de corte con un solo

filo mientras la pieza de trabajo está sometida a rotación. La herramienta de corte se mueve en

una dirección paralela al eje de rotación de la pieza de trabajo para desprender el material

excedente (Figura 1.2a). Algunos ejemplos de piezas fabricadas por este proceso son: ejes,

casquillos, poleas, tornillos, etc.

Taladrado. Se le llama taladrado a la operación de hacer agujeros cilíndricos. Utiliza una

herramienta de corte en rotación que típicamente tiene dos filos. La herramienta es alimentada en

una dirección paralela al eje de rotación dentro de la pieza de trabajo para formar el agujero

(Figura 1.2b).

Maquinado con herramientas de múltiples filos (fresado). En este tipo de maquinado se utiliza

una herramienta rotativa de múltiples filos (conocida como fresa), la cual se mueve a velocidades

relativamente bajas hacia el material de trabajo y en casi cualquier dirección de los ejes

coordenados. En la Figura 1.2c y Figura 1.2d se muestra el esquema de dicho proceso y algunos

ejemplos de las herramientas utilizadas. Debido a su gran flexibilidad, la operación de maquinado

con herramienta de múltiples filos es una de las de mayor aplicación en los procesos de

fabricación industriales.

(a) (b)

(c) (d)

Figura 1.2. Tipos de operaciones de maquinado: a) torneado, b) taladrado, c) maquinado con

herramientas de múltiples filos, y d) procesos con herramientas de múltiples filos.

1.1.1 Maquinado con herramientas de múltiples filos

La orientación entre el eje de la herramienta y la dirección de avance es una de las características

que distinguen este tipo de maquinado del taladrado. Los elementos de corte de la herramienta

comúnmente se les llaman filos o dientes. Las herramientas pueden ser de una sola pieza

Capítulo 1. Antecedentes teóricos

7

(herramienta sólida) o filos individuales (insertos) que son ensamblados en un núcleo. Este

conjunto forma la herramienta de corte de múltiples filos. En el maquinado con herramientas de

múltiples filos se pueden distinguir dos tipos básicos [7]:

a) Maquinado periférico o maquinado horizontal

En el maquinado periférico o maquinado horizontal el eje de la herramienta es paralelo a la

superficie a ser maquinada. La herramienta de corte tiene filos en la periferia exterior del

cortador. En la Figura 1.3 se muestran las formas básicas del maquinado periférico.

(a) (b) (c) (d)

Figura 1.3. Maquinado periférico: a) maquinado de placa, b) ranurado, c) maquinado lateral, y d)

maquinado paralelo simultáneo.

Además, en el maquinado periférico se distinguen dos formas de proceder: el maquinado hacia

arriba y el maquinado hacia abajo, Figura 1.4. En el maquinado hacia arriba o contra avance

(también llamado maquinado convencional) el espesor máximo de la viruta está al final del corte.

Sus ventajas son: el agarre del diente no es función de las características superficiales de la pieza,

y la contaminación y/o cascarilla no afectan la vida de la herramienta. En el maquinado hacia

abajo o concurrente (el giro de la herramienta es en la misma dirección que el avance de la

pieza), el corte comienza en la superficie de la pieza, y la viruta es más gruesa en esta zona. Una

ventaja de este proceso es que la componente hacia abajo de la fuerza de corte mantiene a la

pieza en su posición, en especial en piezas delgadas. Sin embargo, las fuerzas grandes de impacto

que se producen cuando los dientes entran a la pieza requieren un soporte rígido y un mecanismo

de avance de la mesa sin juego.

(a) (b)

Figura 1.4. Dos formas de maquinado: a) maquinado hacia arriba, y b) maquinado hacia abajo.

b) Maquinado frontal o maquinado vertical

El maquinado frontal o maquinado vertical es la operación que controla la altura de la pieza a ser

maquinada y en donde el eje de rotación de la herramienta es perpendicular a la superficie de

Material Material Material Material

Capítulo 1. Antecedentes teóricos

8

trabajo. La herramienta para este tipo de operaciones es una herramienta frontal. Al igual que en

el maquinado periférico, en el maquinado frontal también existen variantes como se muestra en la

Figura 1.5.

(a) (b) (c)

(d) (e) (f)

Figura 1.5. Maquinado frontal: a) maquinado frontal convencional, b) maquinado frontal parcial,

c) maquinado terminal, d) maquinado de perfiles, e) maquinado de cavidades, y f) maquinado de

contorno superficial.

1.1.2 Parámetros del maquinado con herramientas de múltiples filos

En los siguientes párrafos se detallan los principales parámetros de maquinado con herramientas

de múltiples filos [5]-[8].

La velocidad de corte ( ) es determinada por el diámetro exterior de la herramienta, y se

convierte a la velocidad de rotación del husillo utilizando la siguiente ecuación,

donde es el diámetro de la herramienta y es la velocidad de rotación del husillo.

En el maquinado periférico el grosor de la viruta varía en su longitud, esto debido al movimiento

longitudinal relativo entre la herramienta y la pieza. Para una herramienta de dientes rectos se

puede calcular el espesor aproximado de viruta no deformada (profundidad de corte de viruta), , mediante,

donde es el avance por diente de la herramienta medido a lo largo de la superficie del cortador,

esto es, la distancia que recorre la pieza por cada diente, en mm/diente o pulg/diente, y es la

Material Material Material

Avance

Avance Avance

Capítulo 1. Antecedentes teóricos

9

profundidad de corte. Conforme aumenta, la fuerza sobre el diente de la herramienta se

incrementa.

El avance por diente se calcula como,

donde es el número de dientes o filos en la periferia del cortador.

El tiempo de corte se puede calcular utilizando la siguiente ecuación,

donde es la longitud de la pieza y es la extensión del primer contacto de la herramienta con la

pieza. Si se supone que (que en general no es el caso), la rapidez de remoción del material

es,

donde w es el ancho del corte (que para una pieza más angosta que la longitud de la herramienta

es igual al ancho de la pieza).

1.1.3 Clasificación de las operaciones en el proceso de maquinado

El maquinado de una pieza generalmente se realiza en dos etapas: desbaste y acabado, aunque en

algunos casos se utiliza una tercera etapa llamada maquinado de limpieza.

Desbaste. Es el proceso de remoción de materia prima con una alta tasa de remoción para

obtener la pieza deseada en forma casi neta. Típicamente se realiza con herramientas de

corte planas y comúnmente se remueve un 70% del material excedente.

Aproximadamente entre el 50% y 90% del tiempo de maquinado es utilizado en esta

operación [9]-[10].

Acabado. En esta operación se remueve el material excedente de la pieza obtenida en la

operación de desbaste, logrando el acabado superficial y la precisión dimensional finales

de la pieza, aunque algunas requieren una tercera operación llamada “maquinado de

limpieza”. Generalmente se utilizan herramientas de punta de bola.

Maquinado de limpieza. El propósito del maquinado de limpieza es remover los

volúmenes no cortados dejados en las regiones cóncavas después de la operación de

acabado. Se utilizan herramientas de punta de bola del mismo tamaño o menor que en la

operación de acabado [12]-[13].

1.2 Trayectorias de herramienta

La generación de trayectorias de herramienta o de maquinado es un proceso mediante el cual se

determinan las rutas o trayectorias adecuadas de la herramienta para convertir una forma inicial

(materia prima o NNS) a su forma final (pieza final) definida por lo general mediante un modelo

Capítulo 1. Antecedentes teóricos

10

CAD tridimensional. Para lograr lo anterior se utiliza un procedimiento basado en la

aproximación de la pieza mediante curvas que comúnmente pueden ser segmentos lineales o

circulares. Idealmente cada punto en la superficie de diseño debe ser un punto de contacto entre

la herramienta y la pieza de trabajo; sin embargo, esto es computacionalmente costoso por lo que

se recurre a distintos métodos de generación de trayectorias y estrategias de maquinado para

reducir el tiempo de cálculo [14].

1.2.1 Métodos para la generación de trayectorias de herramienta

Los métodos convencionales para la generación automática de trayectorias tienen como objetivo

la determinación de los puntos de contacto (CC) entre la herramienta y la pieza de trabajo. Estos

métodos se pueden clasificar en tres grupos:

a) Método iso-paramétrico

Las trayectorias iso-paramétricas fueron introducidas por primera vez por Loney and Ozoy [15].

En ellas se mantiene uno de los dos parámetros de una superficie paramétrica S(u,v) constante

(Figura 1.6), mientras los puntos de contacto son generados a lo largo del otro parámetro [16].

Los puntos de contacto son tomados como trayectorias de la herramienta. El método iso-

paramétrico es popular en el maquinado de superficies libres ya que los datos de la superficie son

directamente utilizados en la generación de las trayectorias de la herramienta [17]. Aunque el

intervalo entre trayectorias es controlado por la restricción de la altura de la cresta, las

trayectorias generadas por este método generalmente son más densas en algunas regiones de la

superficie debido a la transformación no-uniforme entre el especio paramétrico y el euclidiano

[18]. Esto lleva a una distribución no-uniforme de la cresta a la largo de la superficie, afectando

la eficiencia del maquinado. Además, es difícil generar las trayectorias de herramienta por este

método en superficies que constan de varias superficies cortadas [19].

Figura 1.6. Generación de trayectorias por el método iso-paramétrico.

b) Método iso-planar

En el método iso-planar las trayectorias de la herramienta son calculadas interceptando la

superficie de diseño con una serie de planos paralelos en el espacio cartesiano (Figura 1.7). Las

Capítulo 1. Antecedentes teóricos

11

curvas obtenidas de la intersección son tomadas como trayectorias de la herramienta [20]-[22].

Típicamente los planos de corte son verticales [23]-[24] (método cartesiano) o planos

horizontales [25]-[27] (método de contornos). El paso lateral (distancia entre planos paralelos) es

seleccionado con base en la restricción de la altura de la cresta, aunque el método se caracteriza

por el intervalo uniforme entre las trayectorias de la herramienta. Este método es muy robusto y

ampliamente utilizado en sistemas CAM comerciales [28]. A diferencia del método iso-

paramétrico, el método iso-planar puede ser utilizado para superficies cortadas y compuestas, y

modelos de mallas triangulares. Sin embargo, la selección de los planos de intersección afecta

grandemente a la longitud de la trayectoria y el tiempo de maquinado. La simplicidad del método

radica en que las curvas de intersección representan los puntos de contacto de la herramienta

(CC).

Figura 1.7. Generación de trayectorias por el método iso-planar (cartesiano).

c) Método iso-cresta

En el método iso-cresta se selecciona una trayectoria maestra de una de las fronteras de una

superficie y a partir de ella se generan las siguientes trayectorias, Figura 1.8. Cada punto de

contacto en la siguiente trayectoria de la herramienta es calculado a partir de la trayectoria actual

de tal modo que la cresta sea igual o menor a la máxima desviación permitida a lo largo de la

superficie, [29]-[30]. El método iso-cresta está diseñado para que la cresta permanezca constante.

Dada una trayectoria de corte, en [31] la curva iso-cresta es generada utilizando el método de

búsqueda de bisección, el cual es reemplazado por el algoritmo iterativo de Newton en [32]. El

maquinado redundante en los métodos iso-paramétrico y en el iso-planar es minimizado al

mantener la altura de la cresta constante. Aunque la longitud general de la trayectoria se reduce

significativamente en el método iso-cresta, comparada con los otros dos métodos, éste sufre de la

inexactitud en la determinación de la curvatura en la dirección de la trayectoria de corte, además

también se tiene el problema de la transformación no-uniforme de las trayectorias entre el espacio

cartesiano y el paramétrico.

Curvas

Planos

Modelo

Capítulo 1. Antecedentes teóricos

12

Figura 1.8. Trayectorias adyacentes de posiciones de herramienta y cresta típica.

1.2.2 Métodos para el posicionamiento de la herramienta

Las superficies de los modelos a maquinar son aproximadas por medio de segmentos

generalmente lineales definidos por una posición inicial y una posición final. El cálculo

apropiado de las posiciones de dichos segmentos es muy importante ya que afecta directamente la

calidad de la aproximación. Para ello existen diferentes métodos, los cuales se presentan a

continuación:

a) Inversión de la herramienta

El método de inversión de la herramienta es utilizado para generar superficies desplazadas

(offset). Dicha superficie es obtenida a partir de cada punto de contacto tomándolo como centro

de la herramienta y con posición invertida en la dirección . El punto de la superficie desplazada

toma lugar en dirección normal a la superficie en el punto de contacto, [33][36]. La superficie

completa es generada moviendo la herramienta a cada punto de contacto definido en la superficie

original, Figura 1.9.

Figura 1.9. Posicionamiento por inversión de la herramienta: a) herramienta de punta de bola, y

b) herramienta de filete.

Trayectoria 1

Trayectoria 2

Cresta

Herramienta

Superficie desplazada

Superficie original

Radio de la

herramienta (r)

Herramienta invertida

Herramienta

invertida

Superficie

desplazada

Superficie

original

Capítulo 1. Antecedentes teóricos

13

b) Superficie desplazada basada en mallas triangulares

Un método comúnmente utilizado para modelos basados en mallas es la generación de superficies

desplazadas a partir de los triángulos que los forman. Cada triángulo es desplazado en dirección

normal a la superficie a partir de sus vértices, Figura 1.10. Las posiciones de la herramienta se

obtienen interceptando la superficie desplazada mediante una serie de planos de corte [9][34]-

[35]. La limitación del método es que solo funciona para posicionamiento de herramienta de

punta de bola, donde la superficie desplazada se realiza a un valor constante.

Figura 1.10. Posicionamiento de la herramienta por desplazamiento: a) modelo original, y b)

modelo desplazado.

c) Posicionamiento por rayos

Este método es utilizado para modelos basados en mallas triangulares; tanto el modelo de la pieza

como la herramienta constan de triángulos y a su vez de vértices. En cada posición de la

herramienta, y a partir de cada vértice ubicado dentro de la sección de corte de la herramienta, se

lanza un rayo en dirección del modelo de la pieza, Figura 1.11. El rayo interceptado con menor

distancia determina la altura que debe tener en esa posición la herramienta [37]. Para generar las

siguientes posiciones se mueve la herramienta a la siguiente ubicación deseada y se repite el

procedimiento hasta terminar la pieza.

Figura 1.11. Posicionamiento de la herramienta mediante rayos.

Capítulo 1. Antecedentes teóricos

14

1.2.3 Interferencias

Cuando se está removiendo material en un punto en particular, la herramienta puede penetrar en

uno o más puntos sobre la misma superficie o sobre superficies vecinas. Si la penetración es más

grande que la tolerancia especificada, entonces se le llama interferencia. Las interferencias dañan

las superficie de diseño por lo que su detección y remoción durante la generación de trayectorias

es muy importante.

Las interferencias más típicas utilizando una herramienta de punta de bola son: interferencia

global, interferencia local e interferencia con superficies vecinas, Figura 1.12, [20][38]-[39]. Las

interferencias globales, Figura 1.12a, ocurren si cualquier ángulo entre la normal a la superficie

y el eje Z es mayor a 90º, ocasionando que el cuerpo de la herramienta interferirá en esa región.

Las interferencias locales, Figura 1.12b, ocurren cuando el radio de curvatura local en la

superficie es menor al radio de la herramienta, ocasionando que el fondo de la herramienta

interferirá con la superficie en esa región. Este tipo de interferencias se pueden eliminar

seleccionando una herramienta con menor diámetro. Finalmente, si dos o más superficies están

conectadas de tal manera que la accesibilidad a un punto de contacto en una superficie está

restringido por superficies a su alrededor, entonces el maquinado de ese punto interferirá con

otras superficies, Figura 1.12c.

(a) (b) (c)

Figura 1.12. Tres tipos de interferencias: a) global, b) local, y c) con superficies vecinas.

Aunque las interferencias se refieren a un sobremaquinado debido a la herramienta, también

existe el caso contrario cuando se deja un volumen sin maquinar debido a una trayectoria

ineficiente causada por las burdas aproximaciones de la superficie. Esto se puede solucionar al

incrementar la resolución de la aproximación de la superficie, manteniendo el error de la

superficie maquinada dentro de la tolerancia especificada.

1.2.4 Colisiones

La mayoría de los trabajos reportados en la literatura realizan la generación de trayectorias de

maquinado considerando solamente la sección de corte de la herramienta, es decir, no consideran

el portaherramientas o sistema de sujeción. Sin embargo, para obtener trayectorias confiables es

necesario la detección y eliminación de colisiones considerando, además de la herramienta, el

portaherramientas y la pieza de trabajo.

Sobrecorte

Posición de la

herramienta

Punto de contacto

Eje

Punto de

contacto Sobrecorte

Posición de la herramienta

Posición de la herramienta

Superficie 1

Superficie 2

Punto de contacto

Capítulo 1. Antecedentes teóricos

15

Existen diferentes técnicas para la detección de colisiones, como aquellas basadas en operaciones

booleanas donde se modela completamente el sistema de sujeción y se posiciona en cada punto

de la trayectoria. Posteriormente se realiza una prueba de intersección entre el modelo y el

portaherramientas, si , (Figura 1.13), la posición de la

herramienta es inválida debido a que se presenta una colisión. En caso contrario, el punto es

válido debido a que la posición está libre de colisiones.

(a) (b)

Figura 1.13. Detección de colisiones mediante operaciones booleanas: a) colisión, y b) resultado

de intersección entre el modelo y el portaherramientas.

Aunque las mayores ventajas del método son la confiabilidad y su facilidad de implementación,

su principal desventaja es el gran tiempo de cómputo para la detección de colisiones,

convirtiéndolo en un método ineficiente. Para evitar el uso de operaciones booleanas, se han

desarrollado técnicas alternativas basadas en evaluaciones geométricas simples. Una de estas

técnicas se presenta en [40], en donde la detección de colisiones para un punto de análisis dado

y radio de herramienta , Figura 1.14, consiste en determinar si existen puntos

, sobre la superficie discretizada, que se encuentren dentro del espacio geométrico de la

herramienta o portaherramientas. Si al menos un punto cumple esta condición, entonces la

posición de la herramienta no es válida. La ecuación (1.6) describe un conjunto de ecuaciones

para verificar las posibles colisiones en las distintas secciones del modelo geométrico de la

herramienta y el portaherramientas, los cuales se modelan como una serie de cilindros apilados

con una esfera en la parte más baja.

Modelo

Portaherramientas Colisión

Capítulo 1. Antecedentes teóricos

16

Figura 1.14. Detección de colisiones en el portaherramientas.

La técnica mostrada tiene la ventaja de trabajar de manera numérica lo que hace al algoritmo más

rápido para la detección de las colisiones, aunque la precisión del cálculo depende de la densidad

de puntos generados sobre la superficie. Existe otra técnica similar pero cuya formulación

permite mayor flexibilidad en cuanto a la representación geométrica del portaherramientas así

como el análisis de interferencias y colisiones para tres tipos de herramientas de corte, planas,

filete y de punta de bola [38]. La Figura 1.15 muestra el esquema propuesto para detección de

colisiones. El perfil está constituido por seis segmentos, AB (fondo del filo), BC (filete), CD (filo

lateral), DE (filo lateral y cuerpo de la herramienta), EF (portaherramientas) y FG

(portaherramientas), con parámetros , y origen en . La

ecuación (1.7) describe un conjunto de ecuaciones para verificar las posibles colisiones de

acuerdo a la distancia del punto de inspección al eje de la herramienta en el eje .

Figura 1.15. Modelo geométrico del sistema completo para la detección de colisiones

(herramienta y portaherramientas).

Portaherramientas

Cuerpo y filo

lateral

Filete

Lado superior

de corte

Lado inferior de

corte

Punto discretizado,

Colisión potencial del

portaherramientas

Punto de contacto (CC)

Posición de la

herramienta (CL),

Capítulo 1. Antecedentes teóricos

17

Las relaciones geométricas (1.7) son utilizadas para detectar si un punto de inspección está o no dentro del espacio geométrico de la herramienta y/o portaherramientas.

Geométricamente, cuando la herramienta presenta interferencias o colisiones con la superficie de

diseño, al menos un punto está dentro de la superficie de revolución del perfil de la Figura 1.15.

En otras palabras, la distancia entre este punto y el eje de la herramienta es menor que el radio del

perfil a la altura del punto que está siendo evaluado.

1.2.5 Estrategias de maquinado

El objetivo de las estrategias de maquinado es unir las posiciones de la herramienta mediante un

patrón de secuencia claramente definido de acuerdo a la técnica seleccionada. La técnica

mediante la cual son unidas las posiciones de la herramienta afecta directamente al tiempo de

maquinado [41]. Una estrategia apropiada puede resultar en la mínima longitud de trayectoria, el

mínimo número de retracciones y la flexibilidad de ser localmente refinada para alcanzar las

propiedades geométricas de la superficie. Las estrategias de maquinado comúnmente utilizadas

son [14][42]: Zigzag y contornos.

Zigzag

Esta estrategia consiste en generar líneas paralelas en todo el dominio a maquinar alternando la

dirección entre trayectorias adyacentes dado que el corte principal se considera en ambas

direcciones. Esta técnica permite el contacto continuo de la herramienta sin que esta tenga que

perder tiempo en establecer una nueva posición de corte, esto hasta que el dominio completo ha

sido recorrido. La implementación de esta estrategia es la más simple, Figura 1.16a.

Contornos

La técnica de maquinado de contornos utiliza trayectorias derivadas de los desplazamientos

(offsets) sucesivos de los fronteras a maquinar, ya sea desde el centro hacia los límites externos, o

desde ellos hacia el centro, Figura 1.16b. Los contornos pueden ser construidos mediante el

cálculo del diagrama de Voronoi, pair-wise offseting, y enfoques basados en pixeles. Estos

métodos pueden ser computacionalmente costosos.

Capítulo 1. Antecedentes teóricos

18

Figura 1.16. Estrategias de maquinado: a) zigzag, y b) contornos.

1.2.6 Error en la dirección de maquinado

Cuando el maquinado se realiza utilizando una estrategia de maquinado en zigzag, es decir, la

herramienta se mueve en línea recta entre dos puntos de contacto sucesivos, el error entre las

trayectorias de maquinado y la superficie de diseño debe ser menor a la tolerancia especificada. A

partir de la Figura 1.17 se puede calcular la máxima distancia entre dos posiciones de herramienta

consecutivas que garanticen la tolerancia requerida [33]:

donde:

Figura 1.17. Determinación del paso en la dirección de maquinado.

1.2.7 Error en dirección ortogonal a la dirección de maquinado

La longitud de las trayectorias de herramienta se ve claramente afectada por la distancia entre

trayectorias laterales, conocida como “paso lateral”. Este parámetro en cierta medida determina la

longitud de la trayectoria total, entre más pequeño sea el paso lateral mayor es la cantidad de

Capítulo 1. Antecedentes teóricos

19

planos de corte y por consiguiente la longitud de la trayectoria total de la herramienta se

incrementa. Por esta razón se debe seleccionar un paso lateral lo más grande posible sin que el

error entre la superficie de diseño y la superficie maquinada sea mayor a la tolerancia

especificada. El paso lateral ( ) es una función de la altura de la cresta ( ) que se refiere al

material no maquinado entre trayectorias adyacentes, el radio de la herramienta ( ), y del radio de

curvatura local ( ). Debido a que en general la superficie de diseño varía a lo largo del dominio,

se debe adaptar el paso lateral de acuerdo con la geometría en esa región y no un paso constante

como si se tratara de una superficie plana en todo el dominio. En la Figura 1.18 se muestra un

caso general para la determinación del paso lateral para una superficie no-plana. El primer paso

es aproximar la superficie entre las trayectorias mediante un arco circular con extremos en los

puntos de contacto A y B, del cual se obtiene la curvatura ( ) en esa región [43]-[44].

Figura 1.18. Determinación del paso lateral.

Del triángulo mostrado en la Figura 1.18 con lados , ( ) y ( ), se puede escribir la ley

de cosenos como [21]:

y calculando el en función de a partir de la identidad trigonométrica ,

se obtiene,

sustituyendo (1.11) en (1.9) y resolviendo para ,

Plano de corte actual Siguiente plano de corte

Siguiente paso de la herramienta Paso actual de la herramienta

Centro de curvatura

Superficie

Cresta

Capítulo 1. Antecedentes teóricos

20

Esta ecuación es válida para cualquier curvatura, sin embargo para , la superficie entre dos

trayectorias adyacentes puede ser aproximada por un plano sin pérdida de precisión, reduciendo

la ecuación (1.12) a:

donde está dado en la dirección del vector que une dos trayectorias adyacentes de la

herramienta. Sin embargo, para determinar el intervalo en el plano horizontal es necesario

proyectar en dicho plano. En la Figura 1.19 se muestran dos casos en donde el ángulo o

pendientes del vector varían. Para el caso de la Figura 1.19a donde es pequeño, la cresta está

formada por las caras de la esfera del cortador. El intervalo de intersección de los planos está

dado por [45]:

Cuando es grande (Figura 1.19b), una de las caras está formada por la parte cilíndrica o cuerpo

de la herramienta y la otra cara está formada por la esfera de la herramienta. En este caso el

intervalo para los planos de intersección se convierte en [46]:

(a) (b)

Figura 1.19. Determinación del intervalo de intersección de planos: a) pequeño, y b) grande.

Generalmente la selección del intervalo de los planos de intersección se obtiene del menor

intervalo calculado en la dirección de maquinado de la trayectoria inmediata anterior.

Capítulo 2. Generación de trayectorias de herramienta

21

Capítulo 2. Generación de trayectorias de herramienta

Generación de trayectorias de herramienta

En este Capítulo se presentan distintas técnicas para la generación de trayectorias de herramienta

para el maquinado de modelos 3D a partir de formas aproximadas y formas rectangulares. En la

primera parte se presenta el desarrollo de técnicas generales para la generación de trayectorias, y

en la segunda parte se analizan y desarrollan las particularidades involucradas en las trayectorias

de herramienta para desbaste y acabado.

2.1 Maquinado de modelos 3D

El maquinado de partes generalmente consta de dos operaciones: desbaste y acabado. En el

desbaste se remueve la mayor cantidad de material de la materia prima para aproximar la pieza

deseada, y en la operación de acabado se le dan las dimensiones y acabado superficial finales. La

operación de desbaste se realiza a partir de productos semielaborados como lingotes, tochos u

otras piezas previamente conformadas por otros procesos como moldeo, forja etc. Por otro lado,

en la operación de acabado la entrada puede ser un modelo proveniente directamente de la

operación de desbaste o de algún proceso anterior, es decir, que no se le aplicó un maquinado de

desbaste. La característica principal de la forma que se recibe en esta operación es que solo tiene

una pequeña capa de material innecesario, que es removida en este proceso creando el acabado

superficial y características dimensionales apropiadas.

La Figura 2.1 muestra un esquema general del maquinado. El proceso tiene como entrada una

materia prima, después pasa a un post-procesamiento (maquinado de desbaste y/o acabado) del

que se obtiene la pieza final. Un esquema más detallado del maquinado de partes se muestra en el

diagrama de flujo de la Figura 2.2, en el cual se tiene como entrada un modelo digital 3D de la

pieza final, la materia prima (3D) y los parámetros del proceso.

Figura 2.1. Esquema general del maquinado de partes.

Forma

rectangular

Formas

aproximadas

Materia prima

Post-procesamiento

Pieza final

Capítulo 2. Generación de trayectorias de herramienta

22

Figura 2.2. Diagrama de flujo para el maquinado de modelos 3D.

2.2 Modelo sólido y materia prima

El modelo sólido 3D de la pieza final representa la forma final a la que se desea llegar a partir de

la remoción del material excedente de la materia prima (Figura 2.3). La materia prima se puede

clasificar en dos grupos principales de acuerdo a su forma: formas rectangulares y formas

aproximadas. En las formas rectangulares la materia prima es un bloque a partir del cual se desea

obtener la pieza final y en las formas aproximadas no se tiene restricción en cuanto a la forma

que pueda tener. Dichas formas pueden provenir de procesos anteriores como, la forja, fundición,

moldeo por inyección, prototipado rápido o bien de cualquier forma que se pueda representar

mediante un modelo CAD. Dependiendo del nivel de aproximación, las materias primas de forma

aproximada no siempre requerirán de un desbaste. Sin embargo, sea cual sea la forma de la

Modelo sólido 3D

Inicio

Definir parámetros de

maquinado

Generar trayectorias de

herramienta para desbaste

Generar trayectorias de

herramienta para acabado

Materia prima

(geometría)

CNC Robótico ¿Maquinado CNC

o robótico?

Generar código Generar código

No Si No Si

Configurar parámetros

del robot

¿Maquinar?

Configurar parámetros

de CNC

¿Maquinar?

Fin

Maquinar

Fin

Maquinar

Capítulo 2. Generación de trayectorias de herramienta

23

materia prima, ésta debe contener el suficiente material para obtener la pieza final. La Figura 2.4

muestra diferentes opciones para la materia prima del modelo de la Figura 2.3.

Figura 2.3. Modelo 3D.

(a) (b)

Figura 2.4. Modelos de materias primas, a) rectangular, y b) aproximadas.

2.3 Parámetros del maquinado

Los parámetros en el maquinado definen la manera en que se generarán las trayectorias. Entre los

parámetros más importantes se encuentran los siguientes:

2.3.1 Herramientas de corte y sistema de sujeción

Para realizar el maquinado se utilizan diferentes herramientas de corte de acuerdo al proceso a

desarrollar. Los tres tipos de herramientas comúnmente utilizadas en el maquinado son:

herramientas de corte planas, de puntas de bola y de filete, Figura 2.5. Aunque estas herramientas

se pueden utilizar en cualquier operación (desbaste y acabado), generalmente las herramientas de

corte planas y de filete son utilizadas para desbaste debido a su alta tasa de remoción de material,

mientras que las de punta de bola son utilizadas para operaciones de acabado.

Capítulo 2. Generación de trayectorias de herramienta

24

(a) (b) (c)

Figura 2.5. Herramientas de corte: a) plana, b) punta de bola, y c) de filete.

Para la generación de trayectorias eficientes y confiables se requiere que todos los parámetros

involucrados en el proceso real sean considerados, por esta razón el sistema de sujeción de la

herramienta (holder) también debe ser incluido en el análisis para evitar colisiones durante el

proceso. En la imagen de la Figura 2.6 se muestran distintos sistema de sujeción o

portaherramientas.

Figura 2.6. Sistemas de sujeción para herramientas de corte.

2.3.2 Profundidad e intervalos de corte

La profundidad de corte representa la distancia que bajará la herramienta en cada pasada de

desbaste en la dirección , Figura 2.7a, y el intervalo de corte se refiere a la distancia que habrá

entre trayectorias paralelas de la herramienta, Figura 2.7b. En el desbaste ambas se pueden

calcular en función del diámetro de la herramienta, sin embargo, en el acabado estos parámetros

son función de la superficie a maquinar y de la tolerancia especificada (sección 1.2.6 y 1.2.7).

Capítulo 2. Generación de trayectorias de herramienta

25

(a) (b)

Figura 2.7. Parámetros del maquinado: a) profundidad de corte, y b) intervalo de corte.

2.3.3 Tolerancias

La tolerancia indica el rango de la desviación dimensional aceptable del tamaño nominal de la

pieza final. En el maquinado esto se controla a través de dos parámetros: el error en la dirección

de maquinado generado por las facetas durante la aproximación y el error entre trayectorias

paralelas conocido como cresta. El análisis de estos errores se explica a detalle en las secciones

1.2.6 y 1.2.7. En la generación de trayectorias, las tolerancias tienen un papel fundamental, ya

que de ellas depende la calidad de la aproximación (número de posiciones de la herramienta) y

por consiguiente el tiempo de cálculo.

2.4 Generación de trayectorias de herramienta

A continuación se presentan los diferentes algoritmos propuestos para la generación de

trayectorias de maquinado para diferentes tipos de herramientas.

2.4.1 Offset del modelo CAD

Este es el primer método propuesto para la generación de trayectorias de herramienta, el cual se

desarrolla para una herramienta de punta de bola. De la revisión bibliográfica presentada en el

Capítulo 1 se observó que la generación de las trayectorias para este tipo de herramienta está

basada en la generación de una superficie desplazada una distancia igual al radio de la

herramienta de la superficie del modelo original. De esta manera cualquier punto sobre dicha

superficie representa la posición del centro de la herramienta y se garantiza que será tangente en

algún punto de la superficie original sin llegar a penetrar o interferir otra zona del modelo. Los

métodos propuestos en la literatura utilizan diferentes métodos para obtener la superficie

desplazada, pero la mayoría se basan en la discretización de la superficie ya sea por medio de

puntos, triángulos, cuadriláteros o diferentes áreas, lo que resulta muy costoso

computacionalmente hablando. El método propuesto consta de los siguientes pasos:

Generación de la superficie desplazada

Como una alternativa a la discretización durante la generación de la superficie desplazada, se

propone utilizar la función desplazamiento (offset) que se encuentra por default en cualquier

sistema CAD. Esta función desplaza cada una de las caras del modelo a la distancia especificada,

reparando aquellas regiones en donde es necesario extender o cortar dichas caras, para generar

una superficie continua. El resultado final es un modelo que envuelve al modelo original. La

Profundidad

de corte

Herramienta

de corte

Intervalo

de corte

Herramienta

de corte

Capítulo 2. Generación de trayectorias de herramienta

26

Figura 2.8 presenta un modelo 3D al cual se le aplicó la función desplazamiento obteniendo

como resultado el modelo de la Figura 2.8b.

(a) (b)

Figura 2.8. Superficie desplazada: a) modelo original, y b) modelo desplazado.

Obtención de las posiciones de la herramienta

El segundo paso es determinar las posiciones de la herramienta. Cualquier punto sobre la

superficie desplazada es tangente en algún punto a la superficie del modelo original, de tal

manera que estos puntos también pueden representar las posiciones del centro de la herramienta,

o bien, el centro de la esfera libre de interferencias.

Para obtener dichas posiciones, primero se debe seleccionar la estrategia de maquinado que se

utilizará. Para el cálculo de cada posición, se utilizan operaciones geométricas del tipo booleanas.

El método consiste en definir un punto sobre el plano en donde se desea obtener la posición,

dicho punto debe estar dentro del dominio del modelo en ese plano. Para cualquier modelo se

conoce su altura máxima, entonces al punto que se definió sobre el plano se le asigna una

coordenada en mayor a la altura máxima del modelo. A partir de este punto origen se lanza un

rayo en dirección y se obtiene la altura de choque entre el rayo y el modelo que

representa la altura de la herramienta en esa posición del plano , Figura 2.9. El procedimiento

se repite moviendo la posición hasta cubrir el modelo completamente. La Figura 2.9 muestra

un perfil tomado del modelo de la Figura 2.8. Las líneas interiores representan al modelo original

y las exteriores al modelo desplazado.

Capítulo 2. Generación de trayectorias de herramienta

27

Figura 2.9. Cálculo de posiciones de la herramienta.

La estrategia de maquinado que se utiliza es una estrategias de maquinado en zigzag bi-

direccional, por lo que las posiciones de la herramienta se generan a lo largo del eje , en el

plano y luego se mueve la coordenada para repetir el mismo procedimiento hasta llegar al

final del modelo. Finalmente cuando han sido generadas todas las posiciones sobre el modelo se

unen para generar una trayectoria continua en forma de zigzag, Figura 2.10. El método para la

unión de los puntos en trayectoria zigzag se explica en el Capítulo 3.

Figura 2.10. Trayectorias de herramienta.

Las ventajas y desventajas del método offset son:

Ventajas

La superficie offset se genera con solo una operación geométrica, evitándose así la

discretización de la superficie.

Modelo

original

Modelo

desplazado

Origen del

rayo

Rayo

Centro de la

herramienta

Capítulo 2. Generación de trayectorias de herramienta

28

Las posiciones que se obtienen son únicamente las accesibles para un sistema de tres ejes.

Las posiciones de la herramienta se generan libres de interferencias.

Desventajas

Debido a que la función desplazamiento hace un desplazamiento de la superficie original

constante, solo es posible el cálculo de las trayectorias para herramientas de punta de

bola, ya que en herramientas planas y de filete el desplazamiento de la superficie debe ser

variable de acuerdo a la posición de la herramienta.

La operación de desplazamiento de los sistemas CAD no funciona para todas las piezas,

de tal manera que el algoritmo está limitado a solo aquellos modelos en donde la función

pueda ser aplicada correctamente.

La operación desplazamiento tampoco funciona para cualquier valor de desplazamiento, y

esto depende totalmente de la geometría de la pieza.

Al generar cada posición en la superficie desplazada se utilizan operaciones booleanas lo

cual tiene un alto costo computacional (tiempo de procesamiento) cuando el número de

posiciones a calcular es grande.

El análisis de colisiones se vuelve complicado porque la única información que se tiene es

el modelo original y la superficie desplazada, y para la detección de colisiones se tendría

que recurrir a operaciones booleanas que son muy costosas en tiempo de cómputo.

Este método presenta muchas limitaciones, por los que no es una buena opción en el cálculo de

las trayectorias para cualquier modelo.

2.4.2 Posicionamiento por iteración

Este método está basado en la simulación de la herramienta completa para eliminar las posibles

interferencias en un solo paso, y que cada posición analizada se pueda escribir directamente

dentro del código de maquinado, evitándose así utilizar la función desplazamiento y

garantizándose su funcionamiento para el cálculo de trayectorias sobre cualquier modelo. Al

igual que el método anterior este también está formulado solo para el cálculo de trayectorias

utilizando herramientas de punta de bola. El método se resume en las siguientes etapas:

Obtención de un punto sobre la superficie del modelo

El primer paso para obtener una posición de la herramienta es calcular la altura de un punto

definido en el plano en una región dentro del dominio del modelo en ese plano. Esto se hace

definiendo el punto sobre el plano y asignándole una coordenada o altura en mayor a la

máxima altura del modelo. Desde este punto se lanza un rayo en dirección con la

característica de que el diámetro de dicho rayo es igual al de la herramienta (es decir, el rayo

simula el cuerpo de la herramienta). El punto de choque entre el rayo y la superficie del modelo

representa el punto mínimo hasta el que es posible llegar con la herramienta definida, Figura

2.11.

Capítulo 2. Generación de trayectorias de herramienta

29

Figura 2.11. Esquema del proceso de obtención de puntos sobre la superficie.

Obtención de las posiciones de la herramienta

Con base en la posición mínima que puede alcanzar la herramienta, , se calcula

la posición final de la misma desplazando dicha posición (punto de choque) una distancia igual al

radio de la herramienta en la dirección de positiva que representará la posición

temporal del centro de la herramienta , Figura 2.12. Posteriormente se calcula la

distancia mínima entre el centro de la herramienta y la superficie del modelo. Si la distancia es

igual al radio de la herramienta, entonces la posición es válida y se termina el posicionamiento de

la herramienta, convirtiéndose la posición temporal en la posición final. Sin embargo, si la

distancia es menor, se calcula la distancia “co” que representa el cateto opuesto del triangulo

formado por ca y la distancia, a la distancia mínima se le asigna una valor igual al radio de la

herramienta para recalcular la altura del triangulo (ca) que garantice que la distancia del centro de

la herramienta al punto más cercano a la pieza sea igual al radio, y nuevamente se calcula la

distancia mínima entre esta nueva posición de la herramienta y la superficie del modelo. Si la

distancia es igual al radio, termina el posicionamiento de la herramienta. Si no, se repite el

procedimiento hasta que se cumpla la condición. La Figura 2.13 muestra el diagrama de flujo del

procedimiento de posicionamiento de la herramienta.

Modelo

Diámetro de la

herramienta

Rayo

Punto origen

Dirección

Punto de choque

Capítulo 2. Generación de trayectorias de herramienta

30

Figura 2.12. Posicionamiento de la herramienta mediante iteración.

Generación de segmentos lineales y circulares

La mayoría de los métodos para la generación de trayectorias disponibles en la literatura utilizan

segmentos lineales para aproximar el modelo, método conocido como interpolación lineal. Este

método es el más sencillo pero también representa un código de maquinado más grande, además

de que el acabado y la precisión dimensional se ven claramente afectadas por este tipo de

interpolación.

En el método propuesto se hace una optimización para minimizar el tamaño del código. Para esto

se utilizan métodos de extrapolación que permitan disminuir el código y mejorar el acabado

superficial y la precisión dimensional mediante el uso de interpolación lineal y circular (no lineal)

de acuerdo a cada sección. El proceso consiste en generar tres posiciones de herramienta en el

mismo plano, , , y con el procedimiento de la

Figura 2.13. A partir de los tres puntos se calcula el parámetro , el cual determina si los puntos

(en un plano ) son colineales [55]:

si entonces los tres puntos son colineales y son parte de una recta, por lo que los siguientes

puntos se pueden predecir por medio de una extrapolación lineal, Figura 2.14, de la forma:

y el punto extrapolado tiene coordenadas .

Distancia mínima a la

superficie del modelo

Rayo

Centro de la

herramienta,

Punto de contacto entre la

herramienta y la superficie,

co

ca Superficie

Capítulo 2. Generación de trayectorias de herramienta

31

Figura 2.13. Diagrama de flujo del método para posicionamiento de la herramienta.

Figura 2.14. Extrapolación lineal.

No Si

Inicio

Lanzar rayo (origen ( , , ), radio = radio de la herramienta,

dirección (0,0,-1))

y obtener el punto de choque ( , , )

Desplazar el punto de choque en dirección contraria al

rayo un radio, , , = ( , , + )

(centro de la herramienta)

Calcular distancia mínima entre el centro de

la herramienta y la superficie del modelo

== ±

Centro de la

herramienta válido,

Calcular co

Distancia = radio de

herramienta

( , , + 2 2)

Calcular nueva posición del centro de la

herramienta

Fin

Segmento

Modelo

Capítulo 2. Generación de trayectorias de herramienta

32

Por otro lado, si entonces los tres puntos no son colineales y pueden ser parte de un arco

circular en el plano . Para utilizar una extrapolación circular se calculan los parámetros

como [55]:

Las coordenadas del centro y el radio del círculo que pasa por los tres puntos se calculan de

acuerdo a,

Utilizando las ecuaciones paramétricas de la circunferencia se puede predecir el siguiente punto

como (ver Figura 2.15),

donde

Capítulo 2. Generación de trayectorias de herramienta

33

Figura 2.15. Extrapolación circular.

Una vez que se predijo el siguiente punto, ya sea lineal o circular, se calcula la distancia mínima

desde ese punto a la superficie del modelo. Si la distancia es igual al radio de la herramienta

entonces el punto es válido y se incrementa el paso angular y se repite el procedimiento para

predecir el siguiente punto. Por otro lado, si la distancia es menor o mayor al radio, entonces el

punto es inválido y el segmento termina teniendo como extremos los puntos .

En la Figura 2.16 se muestra la imagen con las trayectorias calculadas con este método sobre un

modelo, en ella se puede observar que los arcos se generaron de forma continua, es decir, se

representa por un solo segmento en lugar de gran cantidad de segmentos lineales. La Figura 2.17

muestra el diagrama de flujo para la generación de segmentos lineales y circulares.

Figura 2.16. Trayectorias de herramienta con segmentos lineales y circulares.

Modelo

Segmento

Capítulo 2. Generación de trayectorias de herramienta

34

Figura 2.17. Diagrama de flujo para la generación de segmentos lineales y circulares.

Calcular , ,

Calcular , y

Calcular ángulo entre

3 y ( , , ),

= + _

= + = +

( , , )

= +

= 1

2 1

2 1 + 1

Calcular distancia mínima entre el centro de

la herramienta y la superficie del modelo

== ±

Punto válido

A, B

Punto inválido,

Segmento 1 1

Fin

Inicio

Calcular 3 posiciones de herramienta, 1, 2, 3

Calcular

== 0 Si No

A

B

No Si

Capítulo 2. Generación de trayectorias de herramienta

35

Las ventajas y desventajas del método por iteración son:

Ventajas

El método funciona para cualquier modelo 3D.

La simulación de la herramienta permite posicionar la herramienta libre de interferencias.

Las posiciones que se obtienen son únicamente las que puede ver un sistema de tres ejes,

evitado problemas de colisiones entre la herramienta y el modelo.

El método de extrapolación utilizado permite disminuir el número de puntos, tiempo de

cálculo, y generar superficies de mejor acabado superficial y calidad dimensional.

Desventajas

Debido a la formulación del método solo se puede utilizar para trayectorias con

herramienta de punta de bola.

Cuando el rayo toma el diámetro de la herramienta y se calcula el punto de choque entre

éste y el modelo, el rayo tiene un error de 0.1 mm en las colisiones con el cilindro y solo

se presenta este comportamiento cuando la superficies que penetra no es plana, es decir,

una curva. Esto limita el funcionamiento del método ya que en el maquinado

regularmente se buscan errores máximos de hasta 0.001mm lo cual no se garantiza con

este método.

Si se desea alta precisión, el número de puntos a generar sobre la superficie es grande y el

tiempo de cálculo se eleva considerablemente. Lo anterior debido a que el método está

basado en operaciones booleanas, además de ser un método iterativo.

El análisis de colisiones se vuelve algo complicado porque la única información que se

tiene es el modelo original, y para la detección de colisiones se tendría que recurrir a

operaciones booleanas que son muy costosas en tiempo de cómputo.

2.4.3 Discretización de la superficie

El tercer método propuesto utiliza la discretización de la superficie por medio de puntos, sobre

los cuales se calculan las posiciones de la herramienta. También se considera la generación de

trayectorias para tres tipos de herramientas: plana, punta de bola, y filete. La discretización de la

superficie comprende la aproximación de la superficie del modelo mediante puntos, satisfaciendo

los requerimientos de precisión establecidos. Para ello existen dos métodos. El primero es el

utilizado en la sección 2.4.1 para generar las posiciones de la herramienta sobre la superficie

desplazada, con la diferencia de que ahora las posiciones se calculan directamente sobre la

superficie original del modelo. Al estar basado en operaciones booleanas, el tiempo de cálculo es

muy elevado sobre todo cuando la precisión de discretización es alta. El tiempo de cálculo es la

principal desventaja que permite descartar el método.

El segundo método para la discretización de la superficie está basado en la discretización por

lados, el cual consiste en obtener perfiles de intersección en planos específicos para después

descomponerlos en los lados o aristas que lo forman. Aquellos lados o secciones de lados que no

son visibles desde una vista superior son eliminados. Los lados restantes se discretizan para

obtener una serie de puntos que representan la superficie en dicho plano. Finalmente, a partir de

los puntos obtenidos de la discretización se calculan las posiciones de la herramienta y se realiza

el análisis de interferencias y colisiones. El método completo consiste de los siguientes pasos:

Capítulo 2. Generación de trayectorias de herramienta

36

1. Perfiles de intersección

2. Análisis de visibilidad

3. Posicionamiento de la herramienta

4. Análisis de la tolerancia en la dirección de maquinado

5. Análisis de colisiones

2.4.3.1 Perfiles de intersección

Los perfiles de intersección son resultado de la intersección del modelo y los planos de corte.

Para definir la posición y orientación del plano de corte se selecciona un punto por el que pase el

plano y el vector normal a dicho plano. En el presente trabajo, todos los planos de corte que se

utilizarán serán paralelos y verticales. En la Figura 2.18 se muestra una representación del corte

de un modelo 3D mediante un plano que pasa por el punto central de la pieza en la dirección y

normal de acuerdo al sistema de coordenadas mostrado, (regla de la mano izquierda).

(a) (b) (c)

Figura 2.18. Generación de perfiles: a) modelo, b) plano de corte, y c) áreas de intersección.

El contorno del área o áreas de intersección representa el perfil, que a su vez está formado por

lados, Figura 2.19a. Generalmente un perfil consiste de varios lados, sin embargo, existen casos

especiales como el de la Figura 2.19b donde el perfil consta de un solo lado.

Capítulo 2. Generación de trayectorias de herramienta

37

(a) (b)

Figura 2.19. Clasificación de los perfiles: a) perfil con múltiples lados, y b) perfil con un solo

lado.

Si se analiza el perfil de la Figura 2.19a, se puede observar que no todos los lados del perfil son

visibles desde la vista superior, algo similar sucede con el perfil de la Figura 2.19b. En este caso

existen secciones del perfil que no tienen visibilidad y para evitar el procesamiento de estos lados

o secciones a continuación se presenta un método para su eliminación.

2.4.3.2 Análisis de visibilidad

El análisis de visibilidad se refiere al proceso de eliminación de aquellos lados o secciones de

lados que no son visibles desde una vista superior. El proceso se realiza en distintos niveles con

el fin de reducir el tiempo de cálculo evitando así la discretización de todos los lados. Para

explicar el proceso se considera el perfil de Figura 2.19a.

Nivel 1: Visibilidad de lados rectos

El sentido de los lados que forman los perfiles de intersección lo determina el vector normal al

plano de corte, de acuerdo a la regla de la mano izquierda. Por lo cual, para que el sentido de los

lados de los perfiles sea en el sentido horario, el vector normal de todos los planos de corte será

(0,1,0) de acuerdo al sistema de coordenadas mostrado en la Figura 2.18. Para determinar la

visibilidad de los lados rectos, cada lado del perfil es examinado para detectar aquellos que son

rectos, después se calcula el vector normal de cada lado recto a través del producto cruz entre el

vector normal al plano y el vector en dirección del lado recto , ecuación (2.12). Si el

vector normal al lado examinado tiene una componente en mayor o igual a cero, entonces el

lado no tiene visibilidad y debe ser eliminado. Por ejemplo, el vector normal al lado mostrado en

la Figura 2.20a tiene la componente en positiva por lo que es eliminado. En el caso de la Figura

2.20b se muestra el caso de un lado vertical y la componente en de su normal es cero, por lo

tanto cuando se presenten lados verticales deben ser eliminados.

Capítulo 2. Generación de trayectorias de herramienta

38

(a) (b)

Figura 2.20. Visibilidad de lados rectos basada en su normal: a) lado inclinado, y b) lado vertical.

Después de analizar las normales de los lados rectos del perfil de la Figura 2.19a, y eliminar

aquellos cuyo vector normal tenga la componente vertical menor o igual a cero, se obtiene el

resultado de la Figura 2.21.

Figura 2.21. Perfil después de la eliminación de lados rectos sin visibilidad.

Nivel 2: Visibilidad basada en rectángulos

Este nivel trata de eliminar todos aquellos lados que se encuentran debajo de uno o más lados, de

tal manera que su visibilidad desde una vista superior es completamente nula. El análisis se

realiza utilizando una aproximación rectangular del lado. Cada lado tiene asociados sus valores

máximos en cada dirección a partir de los cuales se puede construir su rectángulo de

aproximación. A continuación se analizan los tres casos posibles que pueden presentarse durante

el análisis.

Visibilidad nula. Cuando el rectángulo que contiene al lado que se está analizando no es visible

desde una vista superior debido a que otros rectángulos (lados) no se lo permiten, es decir, lo

obstruyen, se dice que su visibilidad es nula desde una vista superior. En la Figura 2.22a se

Capítulo 2. Generación de trayectorias de herramienta

39

muestran cuatro lados, A, B, C y D, que forman el perfil de una pieza. Si se analiza cada uno de

ellos para determinar si tiene o no visibilidad, se obtiene el siguiente resultado.

A- Su rectángulo solo tiene componente en , y no existe ningún otro rectángulo que este

sobre él. La visibilidad del lado es total.

B- Aunque el rectángulo de A tiene una altura mayor, está fuera del rango del rectángulo

de B en el eje por lo que no afecta la visibilidad de B, su visibilidad es total.

C- A y B tienen alturas mayores que C, sin embargo, están fuera del rango en la dirección

. Por lo tanto su visibilidad es total.

D- Observando la Figura 2.22a, A, B, y C tiene alturas superiores a D y se encuentra

dentro del rango en . C obstruye la sección izquierda de D, A obstruye la parte central

de D y B obstruye la parte derecha de D, por lo que su visibilidad queda totalmente

obstruida siendo esta nula y el lado debe ser eliminado, Figura 2.22b.

(a) (b)

Figura 2.22. Visibilidad nula: a) lados del perfil, y b) resultados del análisis de visibilidad.

Visibilidad parcial. Cuando solo alguna sección de un lado es visible desde la vista superior, se

dice que su visibilidad es parcial. La Figura 2.23 muestra un caso similar al de la Figura 2.22, con

la diferencia de que ahora el lado A no aparece, esto con el fin de explicar claramente la

visibilidad parcial. El resultado del análisis de la Figura 2.22 indica que los lados B y C son

totalmente visibles y se sigue manteniendo esta condición. Por lo que solo se analizará D.

D- La sección izquierda del rectángulo de D se encuentra obstruida por C, y la sección

derecha esta obstruida por B, sin embargo, la parte central se encuentra sin

obstrucciones, es decir, es visible desde la vista superior o bien tiene visibilidad

parcial. El resultado se muestra en la Figura 2.23b.

La visibilidad parcial no se analiza en este nivel, ya que es necesario cortar la curva y eliminar las

secciones que no son visibles lo cual requiere un análisis más detallado. Por lo tanto el lado D del

perfil mostrado pasa al siguiente nivel de manera completa.

A

C

B

D

Capítulo 2. Generación de trayectorias de herramienta

40

(a) (b)

Figura 2.23. Visibilidad parcial: a) lados del perfil, y b) resultados del análisis de visibilidad.

Visibilidad indefinida. En los dos casos presentados se identifica fácilmente cuando un lado

tiene visibilidad nula o parcial, sin embargo estos análisis se hacen basados en el rectángulo que

contiene al lado y no se analiza su forma. En este caso se tiene la particularidad de que algunos

de los rectángulos se interceptan, lo cual evita determinar si la visibilidad es nula, parcial, o total,

al no contar con mayor información que la posición y dimensiones del rectángulo. Cuando se

presenta esta condición se dice que la visibilidad del lado es indefinida. La Figura 2.24 muestra

un ejemplo donde el rectángulo C se intercepta con el de D, ocasionando que ambos lados pasen

al siguiente nivel sabiendo previamente que D no tiene visibilidad.

(a) (b)

Figura 2.24. Visibilidad indefinida: a) lados del perfil, y b) resultados del análisis de visibilidad.

El procedimiento generalizado para el análisis de visibilidad basado en rectángulos se puede

desarrollar a partir de los rectángulos de la Figura 2.25. El proceso inicia con el rectángulo a

analizar y un rectángulo a probar en el sistema de coordenadas mostrado. Primero se realiza un

análisis de intersección entre y basado en las coordenadas de sus vértices opuestos

diagonalmente. La intersección entre ambos rectángulos, existe sí:

es menor que y es menor que

es menor que y es menor que

C

B

D

A

C

B

D

Capítulo 2. Generación de trayectorias de herramienta

41

Si se cumple la condición, el lado pasa al siguiente nivel de visibilidad, ya que presenta

visibilidad indefinida. Si alguna de las cuatro condiciones no se cumple, la intersección no existe.

Sin embargo, el lado puede obstruir parcialmente la visibilidad de , sí:

es menor que y es menor que

es mayor que

Si se cumplen las tres condiciones, se guarda la sección que se encuentra obstruida, si cubre por

completo el rectángulo entonces su visibilidad es nula y se elimina. El procedimiento para

cantidad de rectángulos o lados se muestra en el diagrama de flujo de la Figura 2.26.

Ahora si el rectángulo inicia antes de que termine el rectángulo , y si el rectángulo inicia

antes de que termine el rectángulo , esto en la dirección y , entonces existe intersección entre

los rectángulos y el lado pasa al siguiente nivel de visibilidad. Si alguna de las cuatro

condiciones falla, entonces no existe intersección. Sin embargo, el lado puede obstruir

parcialmente la visibilidad de , sí el rectángulo inicia antes de que termine el rectángulo , y si

el rectángulo inicia antes de que termine el rectángulo en la dirección de y si el rectángulo inicia después de que termina el rectángulo en la dirección de , si este es el caso entonces se

guarda la sección que se encuentra obstruida, si se ha cubierto por completo el rectángulo , entonces su visibilidad es nula. El procedimiento para cantidad de rectángulos o lados se

muestra en el diagrama de flujo de la Figura 2.26.

Figura 2.25. Análisis de visibilidad de rectángulos.

El análisis de visibilidad se aplicó al perfil de la Figura 2.21 y se obtuvo el resultado mostrado en

la Figura 2.27.

1 , 1

2 , 2

1 , 1

2 , 2

Capítulo 2. Generación de trayectorias de herramienta

42

Figura 2.26. Diagrama de flujo para el análisis de visibilidad basada en rectángulos.

Figura 2.27. Perfil después del análisis de visibilidad por rectángulos.

Si

Siguiente

Eliminar lado

𝑆 1 < 2 2 > 1

𝑆 2 < 1

= + ó

𝑆 > 2 1

Inicio

𝑆 1 < 2 2 > 1

1 < 2 2 > 1

Si No

= 0 <

Entradas:

= ú _ =

= 0

_ 1 , 1 , 2 , 2

= 0 < ,

_ j 1 , 1 , 2 , 2

Si No

Si

Siguiente

No

No

Capítulo 2. Generación de trayectorias de herramienta

43

Nivel 3: Visibilidad de lados por discretización

En este nivel ya se eliminaron los lados rectos sin visibilidad, además de aquellos lados que

tienen visibilidad nula. Por tanto, solo quedan los que tienen visibilidad total, parcial o indefinida.

Aquí se realiza el análisis de mayor nivel además de ser el más costoso en tiempo de cómputo. El

método consiste en aproximar cada lado por medio de puntos de acuerdo a la precisión definida,

y después comparar las alturas en las secciones de intersección para eliminar aquellas con la

menor altura.

Antes de iniciar con la descripción del método es necesario analizar los lados que tienen

secciones no visibles, como el mostrado en la Figura 2.28a. En estos casos el lado se descompone

en varias secciones de acuerdo a los cambios en su dirección. Durante la generación de los puntos

en la discretización, cada lado es examinado para detectar dichas secciones mediante el cambio

de signo (es decir, dirección), si existe un cambio entonces se termina una sección e inicia la

siguiente. El procedimiento se repite hasta discretizar completamente el lado. El lado de la figura

Figura 2.28a se discretizó y se detectaron 4 cambios de dirección lo que corresponde a 5

secciones como se muestra en la Figura 2.28b. Para cada lado se calcula el rectángulo que lo

contiene calculando los puntos máximos y mínimos en y .

(a)

(b)

Figura 2.28. Descomposición de un lado en secciones: a) lado original, y b) lados generados.

B

E

C A

D

Capítulo 2. Generación de trayectorias de herramienta

44

Las secciones generadas se pueden tratar como un lado independiente, es decir, el lado de la

Figura 2.28 se transformó en 5 lados distintos, A, B, C, D y E. Esta descomposición permite

formular un método general para el análisis de visibilidad en este nivel. Para eliminar los lados o

secciones sin visibilidad, primero se obtiene el rango de intersección en del rectángulo del lado

a analizar y los restantes, si existe, y después se comparan los puntos de ambos lados dentro del

rango. Los puntos de mayor altura se quedan y los de menor altura son eliminados. En la Figura

2.29a se muestra un ejemplo del método. El lado a examinar es el A, y el siguiente lado es el B,

primero se calcula si existe intersección en de sus respectivos rectángulos, si existe se calcula

el rango de intersección en . Los puntos de A dentro del rango de la intersección se comparan

uno a uno con los de B que también estén dentro del rango. De este análisis se obtiene que los

puntos de mayor altura son los de A, por tanto los de B son eliminados. Ahora se comparan las

intersecciones de A y C, y se aplica el mismo procedimiento, esto para todos los lados. El

resultado final del análisis de visibilidad de la Figura 2.28a se muestra en la Figura 2.29c.

(a) (b)

(c)

Figura 2.29. Comparación de secciones: a) lado A y B, b) resultado de AB y C, y c) perfil final.

B A

Rango de

intersección en

C A

Rango de

intersección en

Capítulo 2. Generación de trayectorias de herramienta

45

El resultado final del análisis de visibilidad para el perfil de la Figura 2.19a se muestra en la

Figura 2.30. En ella se puede observar que todos los puntos generados u obtenidos son aquellos

cuya visibilidad no es nula. Como se puede observar, los puntos con visibilidad son menos de la

mitad de los que contiene el perfil original. Esto resulta en una generación de trayectorias más

rápida y eficiente.

Figura 2.30. Resultado final después del análisis de visibilidad por discretización.

El procedimiento para la discretización de la superficie se aplica a perfiles o planos. Para generar

la discretización de la superficie completa se calcula para los planos deseados de acuerdo a la

precisión de aproximación requerida. En la Figura 2.31 se muestra la discretización de tres

modelos. Los puntos en la figura se encuentran unidos por líneas para una mejor visualización. A

cada modelo se le añade una base para que los puntos sean continuos.

(a)

Capítulo 2. Generación de trayectorias de herramienta

46

(b)

(c)

(d)

Capítulo 2. Generación de trayectorias de herramienta

47

(e)

(f)

Figura 2.31. Discretización de superficies de 3 diferentes modelos: a) modelo de una turbina, b)

discretización de la turbina, c) modelo de un camión, d) discretización del camión, e) modelo de

un molde, y f) discretización del molde.

2.4.3.3 Posicionamiento de la herramienta

El posicionamiento de la herramienta se refiere a encontrar la posición de la herramienta definida

en el punto de referencia respectivo a cada una de ellas, este procedimiento se realiza

directamente sobre la matriz de puntos obtenida en la etapa de discretización. En este método se

analiza el caso de tres tipos de herramientas de corte: plana, punta de bola y filete, Figura 2.32.

(a) (b) (c)

Figura 2.32. Herramientas de corte y su punto de referencia: a) plana, b) punta de bola, y c)

filete.

Punto de

referencia

Capítulo 2. Generación de trayectorias de herramienta

48

El método para el posicionamiento de la herramienta consiste en los siguientes pasos,

Ubicar el eje de la herramienta en la posición deseada. En este paso se selecciona el eje de

la herramienta en la posición que se desea evaluar y obtener la posición.

Obtener la posición de la herramienta. Definido el eje de la herramienta, se evalúan las

alturas de todos los puntos alrededor de ese eje a una distancia igual o menor al radio de la

herramienta; en otras palabras todos los puntos que estén dentro del área proyectada de la

herramienta, Figura 2.33. La forma en que las alturas son evaluadas dependerá del tipo de

herramienta a utilizar.

Figura 2.33. Área proyectada de la herramienta.

a) Posicionamiento de una herramienta de corte plana

Se evalúa la altura de todos los puntos contenidos dentro del área proyectada de la

herramienta, y se selecciona el punto con la máxima altura. Este punto representa la altura del

punto de referencia en la herramienta de corte plana, es decir, la posición de la herramienta

libre de interferencias.

b) Posicionamiento de una herramienta de filete

La herramienta de filete se puede descomponer en dos secciones, una plana circular y otra de

un cuarto de círculo, Figura 2.34. Para el posicionamiento de este tipo de herramienta se

analizan los puntos en cada sección contenidos en el área proyectada. Si los puntos se

encuentran a una distancia menor a ( 𝑆 ) del eje, se calcula el punto más bajo de la

herramienta como,

donde es la altura de la herramienta en el punto de referencia. En esta sección la

herramienta es plana, si la altura del punto de prueba es mayor que , entonces se

recalcula como,

Si la altura del punto de prueba es menor que entonces .

Herramienta

Área proyectada

Eje de la

herramienta

Capítulo 2. Generación de trayectorias de herramienta

49

Figura 2.34. Esquema de una herramienta de filete.

Para el análisis del filete de la herramienta se analizan todos los puntos que estén a una

distancia menor al radio de la herramienta y mayor que ( 𝑆 ). Después se calcula la

altura que tiene la herramienta correspondiente a la distancia del punto de prueba con

respecto al eje de la herramienta en el plano ,

𝑆

Sí la altura del punto de prueba (z) es mayor que h, entonces se recalcula utilizando la

siguiente ecuación,

𝑆

Sí es menor o igual a , entonces .

c) Posicionamiento de una herramienta de punta de bola

Para una herramienta de punta de bola se analizan todos los puntos que estén a una distancia

menor al radio de la herramienta, es decir, dentro del área proyectada de la misma, después se

calcula la distancia del punto a probar al eje de la herramienta en el plano , de acuerdo a esta

distancia se calcula la altura ( ) que tiene la herramienta en ese punto, recordando que la

altura varía de acuerdo a la ecuación de la circunferencia con centro en ,

𝑆

Sí la altura del punto de prueba ( ) es mayor que h, entonces se recalcula como,

𝑆

Sí es menor o igual a , entonces . El posicionamiento de este tipo de

herramienta se realiza como una herramienta de filete con el radio del filete igual al radio del

cuerpo de la herramienta.

El procedimiento general para el posicionamiento de herramienta se muestra en la Figura

2.35.

Capítulo 2. Generación de trayectorias de herramienta

50

2.4.3.4 Análisis de la tolerancia en la dirección de maquinado

Un parámetro fundamental en la generación de trayectorias de la herramienta es la tolerancia en

la dirección del maquinado. La tolerancia se refiere a la máxima cantidad de material que puede

ser removido debido a las aproximaciones de la superficie de diseño. Para realizar este análisis y

corrección del error, primero se calculan tres posiciones de la herramienta con un paso constante,

Figura 2.36, a partir de la primera ( ) y la tercera posición ( ) se obtiene un segmento de recta

que representa el centro de la herramienta cuando se mueve entre esas dos posiciones, el segundo

punto ( ) representa un punto en medio del segmento de recta. A partir del centro de la

herramienta de este punto central se calcula la distancia ( ) perpendicular a la recta. Si la

distancia ( ) del punto a la recta es menor al error, significa que los extremos son válidos ya que

la interferencia con la pieza de trabajo es menor a la tolerancia definida. Sin embargo, si la

distancia es mayor, entonces la interferencia es mayor a la tolerancia por lo que es necesario

calcular posiciones adicionales para evitar ese problema. El proceso es repetitivo porque ahora se

calcula un nuevo punto entre y y se genera un segmento de recta entre ellos. A partir del

nuevo punto se calcula la distancia perpendicular a dicho segmento, si es menor que la tolerancia

entonces el segmento es válido. Se hace los mismo con el segmento que forman y , hasta

que la distancia del punto al segmento este dentro de la tolerancia establecida.

Figura 2.35. Procedimiento general para posicionamiento de herramientas.

Inicio

Definir punto en el plano XY, punto a

posicionar, ( , , 0)

Punto de prueba, ( , , )

= ( )2 + ( )2

Calcular distancia 2D en plano XY entre punto

a posicionar y punto de prueba

( 𝑆 _ )

Si No

Si

Si

Fin

𝑆 >

≥ ( 𝑆 _ )

= (( _ ^2 (

𝑆 + _ )2)1

2

>

= + (( _ ^2 (

𝑆 + _ )2)1

2

No

No

Si

= _

>

= + _

No

Capítulo 2. Generación de trayectorias de herramienta

51

Figura 2.36. Análisis del error en la dirección de maquinado.

2.4.3.5 Análisis de colisiones

Para analizar que las posiciones de la herramienta estén libres de colisiones es necesario modelar

la herramienta así como el sistema de sujeción o portaherramientas [38][40]. Debido a que

existen diferentes tipos y tamaños de portaherramientas y que las herramientas tienen diferentes

longitudes, lo más adecuado es hacer una representación del sistema en forma paramétrica. El

modelo se muestra en la Figura 2.37, y los parámetros de entrada del perfil son

𝑆 .

Figura 2.37. Modelo geométrico del sistema de sujeción y herramienta.

Para la detección de colisiones, simplemente se evalúa la distancia alrededor del punto de

posicionamiento de acuerdo con las siguientes restricciones:

Capítulo 2. Generación de trayectorias de herramienta

52

- Si la distancia del punto de prueba y el punto posicionado en el plano es mayor a

𝑆 y menor o igual a entonces se evalúa la altura del sistema de sujeción a esa

distancia como,

𝑆

y se compara con la altura del punto de prueba ( ), si > , entonces significa que hay

colisión y,

𝑆

Por el contrario si < entonces no hay colisión.

- Sí la distancia del punto de prueba y el punto de posicionado en el plano es mayor a

y menor o igual a , entonces se evalúa la altura del sistema de sujeción a esa

distancia como,

𝑆

y se compara con la altura del punto de prueba ( ), si > entonces significa que hay

colisión y,

𝑆

Por el contrario si < entonces no hay colisión.

De esta manera se realiza el análisis de colisiones corrigiendo la posición mediante el recálculo

de la altura del punto de referencia para cada posición de la herramienta. El diagrama de

flujo para este análisis se presenta en la Figura 2.38. Cabe mencionar que este análisis se realiza

solamente para posiciones de la herramienta en las cuales el portaherramientas tiene una altura

menor al bounding box del modelo. En caso contrario este análisis no se realiza, ya que de

antemano se sabe que está fuera del modelo.

La Figura 2.39 muestra las trayectorias generadas sobre un modelo que tiene una altura 2.5 veces

mayor que la longitud de la herramienta. Existen zonas en donde la herramienta no puede llegar

debido a que el portaherramientas colisionaría con la pieza de trabajo. Las posiciones que no son

accesibles para el portaherramientas se recalculan hasta donde se evite la colisión, obteniendo el

resultado mostrado.

Capítulo 2. Generación de trayectorias de herramienta

53

Figura 2.38. Diagrama de flujo para análisis de colisiones.

Figura 2.39. Recálculo de posiciones debido a colisiones.

= + 𝑆

>

= 𝑆

Inicio

Inicio

, , , , 𝑆, , _ , , , 𝑏 ( , , )

Parámetros de entrada

= /2, = /2, 𝑆 = 𝑆/2,

𝑆 = _

= ( )2 + ( )2

Calcular distancia 2D en plano XY entre punto

a posicionar y punto de prueba

𝑆 <

<

= + 𝑆 + / tan γ

>

= 𝑆 / tan γ

No

No

No

No

Si

Si

Si

Si

Posiciones recalculadas debido a colisiones del

portaherramientas

Capítulo 2. Generación de trayectorias de herramienta

54

2.4.3.6 Ventajas y desventajas

Las ventajas y desventajas del método por discretización se resumen a continuación:

Ventajas

Funciona para la generación de trayectorias utilizando tres tipos de herramientas: plana,

punta de bola y filete.

En los modelos probados, la discretización de la superficie no ha presentado fallas.

Debido a que el modelo se encuentra en una matriz de puntos, puede ser utilizada tanto

para la generación de trayectorias como el análisis de colisiones.

Al no estar basado en operaciones booleanas, el tiempo de cálculo no es tan elevando

como en los dos métodos anteriores.

Desventajas

La cantidad de datos que se generan en la discretización puede ser muy elevada, haciendo

lento el proceso, sobre todo cuando los modelos son de tamaño grande.

En superficies de forma libre el proceso es más lento que en modelos de formas regulares.

Tanto la intersección mediante los planos de corte como la discretización de los lados

presentan tiempos mayores que en modelos del mismo tamaño pero de formas regulares.

Debido a que en cada posición de la herramienta se leen todos los puntos del área

proyectada de la herramienta y al tener un paso pequeño se re-leen muchas veces los

mismos puntos ya que influyen en más de una posición, lo cual es un proceso ineficiente.

Debido a las ventajas que presenta el método basado en la discretización de la superficie sobre

los dos primeros métodos, la discretización de superficies se utilizará para la generación de

trayectorias de herramienta para desbaste y acabado.

2.5 Generación de trayectorias de herramienta para desbaste

El objetivo de las trayectorias de desbaste es conducir la herramienta para eliminar el material

innecesario de la materia prima dejando solo una capa delgada para el proceso de acabado. El

método más comúnmente utilizado es el desbaste “capa por capa”, el cual consiste en remover el

material innecesario de la materia prima en forma de planos de corte o capas. El resultado del

maquinado en capas es una forma final en forma escalonada (efecto escalera), Figura 2.40, [56]-

[58].

Figura 2.40. Desbaste capa por capa.

Profundidad

de corte de

las capas

Superficie

final

Efecto

escalera

Capítulo 2. Generación de trayectorias de herramienta

55

En el método propuesto para las trayectorias de desbaste, primero se generan las trayectorias

sobre el modelo final y la materia prima. A partir de ambas se calculan las trayectorias finales.

2.5.1 Parámetros en el desbaste

En el desbaste se tienen dos parámetros fundamentales: profundidad de corte y el intervalo entre

trayectorias paralelas. La profundidad indica la distancia que habrá entre trayectorias en la

dirección de , o bien, la distancia o avance entre pasada y pasada. Particularmente en el desbaste

la profundidad de corte se puede calcular en función del diámetro de la herramienta como:

donde

Por otra parte, el intervalo entre trayectorias es la distancia entre trayectorias paralelas y también

se puede calcular en función del diámetro de la herramienta como:

ó

donde

En la ecuación (2.24) comúnmente los valores de son de , aunque la ecuación (2.25) es más

conservadora por lo que es la opción utilizada en el presente trabajo. Sin embargo, los valores

tanto de la profundidad de corte como del intervalo entre trayectorias pueden ser seleccionados

de acuerdo a la experiencia del programador.

La capa para acabado es una pequeña capa de material que se deja para darle el acabado

superficial y la precisión dimensional a la pieza. Para que esta capa no se remueva durante el

maquinado de desbaste, las herramientas utilizadas son modificadas de acuerdo a la capa de

material deseada, es decir, si la capa es mm, a la herramienta se le aplica un desplazamiento en

todas las superficies de un valor . De tal manera que cuando se realice el maquinado real con la

herramienta definida quedara una capa para acabado.

2.5.2 Cálculo de las pasadas

El método para el cálculo de las pasadas o de las trayectorias de la herramienta debe ser capaz de

generarlas ya sea a partir de una materia prima rectangular o de forma aproximada. La principal

diferencia entre ambas, en cuestión de trayectorias es que en las formas rectangulares las

trayectorias finales se calculan numéricamente a partir de la posición y dimensiones especificadas

para la materia prima. En la Figura 2.41 se muestra la sección de una forma rectangular, las

Capítulo 2. Generación de trayectorias de herramienta

56

trayectorias de la herramienta se calculan simplemente desplazando tres lados. Los laterales se

desplazan una distancia igual al radio de la herramienta y el superior se desplaza el radio del

filete de la herramienta. Finalmente se unen y se obtiene la trayectoria de la herramienta para esta

forma de la materia prima. El ejemplo mostrado está calculado para una herramienta de punta de

bola. Para formas aproximadas las trayectorias se calculan al igual que en un modelo final.

Figura 2.41. Generación de trayectorias en materia prima rectangular.

Considerando que ya se tienen las trayectorias tanto del modelo final como de la materia prima,

el siguiente paso es el cálculo de las pasadas. El método se basa en la intersección de líneas rectas

que representan el punto de referencia de la herramienta utilizada, recordando que las trayectorias

generadas sobre la superficie del modelo final y de la materia prima son generadas utilizando

interpolación lineal, es decir, segmentos de recta. Si se define una línea horizontal que representa

el punto de referencias de la herramienta para cada pasada y se buscan todas las intersecciones

con las líneas que forman la trayectoria de la herramienta sobre el modelo, se pueden encontrar

las trayectorias para remover todo el material del modelo o de la materia prima. Los puntos de

intersección encontrados se ordenan y si existen más de dos puntos de intersección, entonces la

pasada estará compuesta por más de un segmento. El primer punto siempre inicia un segmento de

acuerdo al método y el siguiente termina dicho segmento, y así sucesivamente hasta unir todas las

intersecciones. El número de segmentos dependerá de la cantidad de intersecciones, por ejemplo,

en la Figura 2.42 se tienen cuatro puntos de intersección los cuales corresponden a dos

segmentos.

Figura 2.42. Método para el cálculo de las trayectorias por pasada.

Trayectoria

de pasada

Segmentos

Trayectoria de

herramienta

Intersección

Materia prima

rectangular

Radio del

filete de la

herramienta

Radio de la

herramienta

Capítulo 2. Generación de trayectorias de herramienta

57

Aplicando este método a los modelos completos se obtiene el resultado mostrado en la Figura

2.43. En principio las pasadas se calculan como si se quisiera remover todo el material del

modelo. Sin embargo, es evidente que si las trayectorias se quedan como se generaron se

removería todo el material. Para que las trayectorias de la materia prima no remuevan el material

correspondiente al modelo final, a las trayectorias de la materia prima se le sustraen las

trayectorias del modelo final, Figura 2.44. Cabe mencionar que las trayectorias en ambos

modelos tienen las mismas alturas para que coincidan.

(a) (b)

(c) (d)

Figura 2.43. Generación de trayectorias por pasada: a) trayectorias sobre modelo final, b) pasadas

para modelo final, c) trayectorias sobre materia prima, y d) pasadas para materia prima.

(a) (b)

Figura 2.44. Sustracción de modelos: a) sustracción de modelos, y b) sustracción de trayectorias.

Capítulo 2. Generación de trayectorias de herramienta

58

Ahora ya se tienen las trayectorias sin interferir en el material del modelo final, sin embargo, el

objetivo final es obtener trayectorias continuas para cada pasada de la herramienta. Para esto, en

la Figura 2.45 en lugar de calcular los segmentos que pasan en el interior del modelo se calculan

los segmentos que evitan el interior del modelo. Cuando se generan las trayectorias por pasada, se

lee cada segmento de la trayectoria final, de esta manera cuando se encuentra la primera

intersección también se puede evaluar cual es el segmento con la mayor altura hasta la próxima

intersección. El máximo punto encontrado es la altura hasta la cual debe elevarse la herramienta

para evitar el material del modelo, Figura 2.45.

Figura 2.45. Generación de trayectorias para evitar interferir en el modelo final.

Las trayectorias se calculan para cada pasada, y así en lugar de sustraer las trayectorias del

modelo final a las de la materia prima, se añade la trayectoria calculada y se genera una

trayectoria continua. En la Figura 2.46 se muestran las trayectorias finales para desbaste. Con este

método la superficie al final del desbaste queda en forma escalonada como en la Figura 2.40.

Para eliminar este efecto la última pasada de desbaste es la trayectoria final calculada sobre el

modelo original y a partir de la cual se calculan las intersecciones para generar las pasadas. La

Figura 2.47 muestra la generación de trayectorias de desbaste a partir de una materia prima

rectangular, en las trayectorias se puede observar las trayectorias de las pasadas así como de la

pasada final que recorre la superficie del modelo.

Figura 2.46. Trayectorias finales para desbaste.

Trayectoria

de pasada

Trayectorias

Trayectoria de

herramienta

Intersección

Capítulo 2. Generación de trayectorias de herramienta

59

(a)

(b)

(c)

Figura 2.47. Trayectorias de desbaste: a) materia prima, b) trayectorias de desbaste sobre modelo,

y c) trayectorias de desbaste.

Capítulo 2. Generación de trayectorias de herramienta

60

2.6 Generación de trayectorias de herramienta para acabado

Durante la generación de las trayectorias de desbaste se deja una capa de material para la etapa de

acabado, aunque como resultado del desbaste por capas y un intervalo entre trayectorias

relativamente grande comparado con el intervalo en el acabado, en algunas zonas también existen

una mayor concentración de material. Todo este material excedente es removido en esta etapa de

acabado en una sola pasada. Aquí ya no se considera la materia prima, porque las trayectorias se

generan sobre el modelo final.

Existen dos parámetros principales en el acabado de los cuales dependerá la calidad de la

superficie final: el paso en la dirección de maquinado y el paso entre trayectorias paralelas.

2.6.1 Paso en la dirección de maquinado

El paso en la dirección de maquinado está determinado por la tolerancia que se defina. El paso se

adapta para lograr que la superficie final cumpla las especificaciones de tolerancia, como se

explicó en la sección 2.4.3.4.

2.6.2 Paso entre trayectorias paralelas

El paso entre trayectorias paralelas se refiere a la distancia que habrá entre trayectoria y

trayectoria de la herramienta. Dado el paso entre dichas trayectorias, el diámetro de la

herramienta y el ángulo de la superficie a maquinar, se puede calcular cual será el error

aproximado (ecuación (1.14)) y seleccionar el paso que más se adecue a la tolerancia requerida.

Las trayectorias para acabado se generan con los algoritmos para la generación de trayectorias

presentados en la sección 2.4 con una tolerancia y paso entre trayectorias adecuado. La Figura

2.48 muestra una modelo y sus trayectorias para maquinado de acabado.

(a)

Capítulo 2. Generación de trayectorias de herramienta

61

(b)

Figura 2.48. Trayectorias de acabado: a) modelo y sus trayectorias, y b) trayectorias.

Capítulo 3. Generación de código o instrucciones de maquinado

62

Capítulo 3. Generación de código o instrucciones de maquinado

Generación de código o instrucciones de

maquinado

En este Capítulo se presenta el desarrollo de los algoritmos para la generación de código a partir

de las trayectorias de herramienta presentadas en el Capítulo 2.

3.1 Control Numérico (NC) o Control numérico computarizado (CNC)

La diferencia entre las abreviaciones NC y CNC, radica en que la primera representa las viejas y

originales tecnologías de Control Numérico y la segunda representa las nuevas tecnologías de

Control Numérico Computarizado. Sin embargo, la abreviación CNC es preferida en la práctica.

El Control Numérico se puede definir como la operación de máquinas-herramienta por medio de

instrucciones codificada específicamente para el sistema de control de la máquina [7][59]. Esas

instrucciones son una combinación de letras del alfabeto, dígitos y símbolos seleccionados, por

ejemplo, el punto decimal, el signo de porcentaje y los paréntesis. La sucesión de instrucciones

que representan ordenes y procesos correlativos relacionados con el maquinado de una pieza

escritos en un orden lógico, forman un programa NC o programa CNC. Dichas instrucciones

pueden estar en subrutinas o dentro del cuerpo del programa.

Al igual que cualquier lenguaje de programación, el campo del CNC también tiene su propia

sintaxis y términos especiales. Hay cuatro términos básicos utilizados en la programación CNC.

Esas palabras son la clave para entender la terminología general [59]-[60].

𝑏

Cada término es muy común e importante en la programación CNC y merece su propia

explicación a detalle.

3.1.1 Carácter

El carácter es la unidad más pequeña de un programa CNC. Puede tener una de las siguientes

tres formas:

Dígitos. Hay diez dígitos, del 0 a 9, disponibles para el uso en un programa y crear

números. Los dígitos son utilizados en dos modos, uno para números enteros (números

sin punto decimal), y el otro para números reales (números con punto decimal). Los

números pueden tener valores negativos o positivos. En algunos controles, los números

reales pueden o no utilizar punto decimal. Los números aplicados en cualquier modo

pueden ser solo introducidos dentro del rango que es permitido por el sistema de control.

Letras. En teoría las 26 letras del alfabeto inglés están disponibles para la programación.

Sin embargo, muchos de los sistemas de control aceptarán solo ciertas letras y rechazarán

Capítulo 3. Generación de código o instrucciones de maquinado

63

otras. Por ejemplo, el control de un torno CNC rechazará la letra Y, como el eje Y, ya que

es único en las operaciones de fresado (máquinas fresadoras y centros de maquinado). Las

letras mayúsculas son una designación normal en la programación CNC, pero algunos

controles aceptan letras minúsculas con el mismo significado que su equivalente en

mayúscula.

Símbolos. Varios símbolos son utilizados para la programación, adicionalmente a las

letras y dígitos. Los símbolos más comunes son el punto decimal, signo menos (-), signo

de porcentaje (%), paréntesis (()) y otros, dependiendo de las opciones del control.

Los caracteres se combinan en palabras significativas. Esta combinación de dígitos, letras y

símbolos es llamado programa alfa-numérico.

3.1.2 Palabra

Una palabra en un programa es una combinación de caracteres alfa-numéricos, creando una sola

instrucción para el sistema de control. Normalmente cada palabra inicia con una letra mayúscula

que es seguida por un número representando un código de programa o el valor actual. Las

palabras típicas indican las posiciones de los ejes, avances, velocidades, comandos preparatorios,

funciones auxiliares y muchas otras definiciones.

3.1.3 Bloque Así como la palabra es utilizada como una sola instrucción para el sistema CNC, el bloque es

utilizado como una instrucción múltiple. Un programa introducido dentro del sistema de control

consiste de líneas individuales de instrucciones, secuenciadas en un orden lógico. Cada línea,

llamada secuencia bloque o simplemente bloque, está compuesta por una o varias palabras y cada

palabra está compuesta de dos o más caracteres.

En el sistema de control, cada bloque debe ser separado de todos los demás. Cuando se prepara el

programa en una computadora, la tecla “enter” del teclado terminará el bloque. Cuando se escribe

un programa primero en papel, cada bloque del programa debe ocupar solo una línea en el papel.

Cada bloque de programa contiene una serie de instrucciones que son ejecutadas juntas.

3.1.4 Programa La estructura de un programa varía de acuerdo al control utilizado, pero el enfoque lógico no

cambia de un control a otro. Un programa CNC usualmente inicia con el número de programa o

una identificación similar, seguido por un bloque de instrucciones en un orden lógico. El

programa termina con el código de paro o un símbolo de terminación de programa, tal como el

signo de porcentaje (%). La documentación interna y los mensajes del operador pueden ser

ubicados en lugares estratégicos dentro del programa.

3.2 Estructura de los bloques de programa Una estructura típica de un bloque de programación, depende del sistema de control y del tipo de

máquina CNC. Un bloque puede contener las siguientes funciones (Figura 3.1), en el orden

sugerido, no siendo necesaria la programación de todas ellas.

Capítulo 3. Generación de código o instrucciones de maquinado

64

Figura 3.1. Estructura de un bloque en programación CNC.

3.2.1 Número de bloque (N) El número de bloque, también llamado código N, es el número de identificación del bloque

(línea) en un programa CNC. La palabra de código común utilizada comienza con N. N es el

primer código en un bloque y normalmente tiene un rango N1 hasta N9999. Muchos sistemas

CNC no requieren el uso de códigos N lo cual ayuda a liberar memoria. Sus principales

beneficios son el que permiten la búsqueda fácil en programas largos y la capacidad de volver a

hacer partir un programa en casi cualquier número de línea. Usualmente el programador saltará N

números entre bloques para dejar espacio para insertar posteriormente bloques olvidados o

adicionales. En la Tabla 3.1 se muestran algunos ejemplos de la numeración de los bloques y sus

incrementos.

Incremento Programa

2 N2, N4, N6, N8, …

5 N5, N10, N15, N20, …

10 N10, N20, N30, N40, …

100 N100, N200, N300, N400, …

Tabla 3.1. Ejemplos de números de bloque.

N G X Y Z F S T M (-)

Comentarios

Funciones auxiliares, M…

Número de herramienta (Tool)

Velocidad del husillo (Speed)

Velocidad de avance (Feed)

Coordenada eje Z

Coordenada eje Y

Coordenada eje X

Funciones preparatorias, G…

Número de bloque

Capítulo 3. Generación de código o instrucciones de maquinado

65

3.2.2 Funciones preparatorias (G)

Las funciones preparatorias son los códigos G. Los códigos G son indicados por la letra G y un

número de 2 dígitos. Estos códigos son las funciones más importantes en programación CNC

debido a que dirigen el sistema CNC para el procesamiento de los datos de coordenadas en una

manera particular. Algunos ejemplos son: transversal rápido, interpolación circular e

interpolación lineal. Los códigos son algo casi estandarizado en la industria. A continuación se

presentan la descripción de los códigos más importantes. La lista completa de las funciones

preparatorias se encuentra en el apéndice A. El término “Modal” o “Función modal” significa que

una vez que una función ha sido programada, permanece activa hasta que se programe una

función incompatible, se presente una emergencia o un reset, o se apague o encienda el CNC.

G00 Avance rápido

Formato N… G00 X… Y… Z…

Este comando desplaza los carros a la velocidad máxima hasta el punto final programado

(posición de cambio de herramienta, punto inicial para el siguiente arranque de viruta). Esta es

una de las funciones más peligrosas en el mundo de la programación CNC, debido a que el

movimiento de los carros se efectúa a la máxima velocidad programada por el fabricante de la

máquina. Además hay que tener en cuenta cual de los tres ejes es el primero que llega a la

coordenada definida. Siempre que se pueda es aconsejable realizar este movimiento en dos fases.

La primera es alejar la herramienta de la zona comprometida, por ejemplo, si en Z se puede salir

de manera vertical sin tropiezo alguno con ningún obstáculo o con la misma pieza, se lleva la

herramienta a un altura Z lejos de la pieza y luego se mueve en X y Y.

Notas

Mientras se ejecuta G00 se suprime el avance de carro programado.

La velocidad de avance rápido la define el fabricante de la máquina.

G01 Interpolación lineal

Formato N… G01… X… Y… Z… F…

Pueden ser movimientos con variación simultánea en los 3 ejes. Esto significa que pueden ser

trayectorias espaciales no paralelas a ninguno de los ejes. El CNC calculará las velocidades

relativas según cada uno de los ejes, de manera que el resultado de la combinación sea una

trayectoria rectilínea. El movimiento recto se realiza con velocidad de avance programada.

Normalmente el avance (F) es modal. G01 no puede ser incluida en un mismo bloque con G00,

G02, G03 y G33 ya que es modal.

G02 Interpolación circular a derechas y G03 Interpolación circular a izquierdas

Formato N… G02/G03 X… Y… Z… I… J… K… F…

ó

N… G02/G03 X… Y… Z… R… F…

X, Y, Z……Punto final de arco (absoluto o incremental)

I, J, K……..Parámetros incrementales de arco (distancia desde el punto inicial al centro de arco,

I está en relación al eje X, J en relación con el eje Y, K con el eje Z).

R………….Radio del arco (arco menor que un semicírculo en +R, mayor que un semicírculo en

-R). Puede introducirse en lugar de los parámetros I, J, K.

Capítulo 3. Generación de código o instrucciones de maquinado

66

Los códigos G02 y G03 son trayectorias según arcos de circunferencia. Sólo pueden ejecutarse en

un plano determinado: XY, XZ o YZ. La Figura 3.2 muestra los giros según el plano de trabajo

seleccionado. En este caso el CNC no solo deberá calcular las velocidades relativas de cada eje

sino también la aceleración y desaceleración de los movimientos para tener una trayectoria

circular. Las herramientas se desplazarán al punto final a lo largo del arco definido con el avance

programado con F.

Notas

La interpolación circular solo puede realizarse en el plano activo.

Si I, J ó K tiene valor 0, el parámetro en cuestión no debe introducirse.

Hay que contemplar el eje de giro de G02, G03 siempre perpendicularmente al plano

activo.

Figura 3.2. Direcciones de giro de G02 y G03.

G17-G19 Selección de plano

Formato N… G17/G18/G19

Con G17 – G19 se determina el plano en el que puede realizarse la interpolación circular y la

interpolación de coordenadas polares; en dicho plano se calculará la compensación del radio de

herramienta. En el plano perpendicular al plano activo se realizará la compensación de la longitud

de la herramienta. La Figura 3.3 muestra el plano de trabajo que le corresponde a los códigos

G17, G18 y G19.

(a) (b)

Capítulo 3. Generación de código o instrucciones de maquinado

67

(c)

Figura 3.3. Selección de planos del área de trabajo: a) plano XY, b) plano XZ, y c) plano YZ.

G20 Medidas en pulgadas

Formato N… G20

Programando G20 se cambian las siguientes indicaciones al sistema de medición en pulgadas:

Avance F [mm/min, pulgadas/min, mm/rev, pulgadas/rev]

Valores de decalaje (decalaje de origen, geometría y desgaste) [mm, pulg.]

Desplazamientos [mm, pulg.]

Visualización de la posición actual [mm, pulg.]

Velocidad de corte [m/min, pies/min]

Notas

Para mayor claridad, G20 debe definirse en el primer bloque del programa.

El último sistema de medición programado permanecerá activo incluso tras la

desconexión/conexión del interruptor principal.

G21 Medidas en milímetros

Formato N… G21

Comentario y notas: como para G20 pero en milímetros.

G28 Aproximación al punto de referencia

Formato N… G28 X… Y… Z…

X, Y, Z: coordenadas de posición intermedia

El comando G28 se utiliza para la aproximación a un punto de referencia a través de una posición

intermedia (X, Y, Z). Primero se produce la retirada a X, Y o Z, después la aproximación al punto

de referencia. Ambos movimientos se realizan con G00.

G40-G42 Compensación del radio de la herramienta

Formato N… G40/G41/G42

La compensación es un pequeño desplazamiento de la herramienta sobre la línea de corte, es

decir, se puede cortar justo por el centro de la línea (G40), o bien, a un lado derecho (G42) o

izquierdo (G41), Figura 3.4.

Capítulo 3. Generación de código o instrucciones de maquinado

68

Figura 3.4. Compensación del radio de la herramienta.

A estos tres comandos no les acompaña ningún valor que le indique de cuanto será la

compensación. Sin embargo, la máquina debe tener la capacidad suficiente para reconocer el

diámetro de la herramienta con el que está trabajando en el momento de aplicarla y así calcular,

de cuanto será la compensación.

G43 Compensación de la longitud de la herramienta

Formato N… G43 H…

Activa la compensación de la longitud de la herramienta. Esto permite al usuario utilizar las

herramientas con diferentes longitudes. El sistema recupera automáticamente el desplazamiento

de valor de la longitud de la herramienta actual y agrega unos valores adicionales al

desplazamiento. Cuando se utilizarán diferentes herramientas para un maquinado, se deben

definir y asociar los valores de la longitud para cada herramienta y de esta manera el sistema

automáticamente compensará la longitud de la herramienta seleccionada.

G90-G91 Coordenadas absolutas e incrementales

Formato N… G90/G91

El código G90 es una instrucción modal, que por defecto asume el control numérico cuando se

inicia. Cuando se programa G90 en un bloque, lo que se está indicando al control es que todas las

cotas que salgan en el programa son cotas en absoluto, es decir, todas las medidas están tomadas

desde un mismo punto de referencia ubicado en la pieza (cero pieza), es decir, el origen del

sistema de coordenadas ubicado en la pieza, Figura 3.5.

Figura 3.5. Cotas absolutas.

G91 también es una función modal, que indica que la programación se va a realizar en cotas

relativas. La referencia es siempre el último punto programado, es decir, en una línea recta se

precisa tener la referencia del último punto para poder indicar el siguiente. En la Figura 3.6 se

Capítulo 3. Generación de código o instrucciones de maquinado

69

tiene un punto inicial, se desea desplazarse hacia el punto final. Para realizar este proceso en

forma incremental, se tiene que utilizar el punto inicial como si se tratará del origen. El punto

utilizado de referencia es igual que el punto (0,0) en coordenadas absolutas. Una vez que se llegó

al punto final, la siguiente trayectoria se realiza en referencia a ese punto final.

Figura 3.6. Cotas incrementales.

3.2.3 Avance de los ejes (F) El avance se representa mediante la letra “F” seguida del valor de avance deseado. Esta función

es modal por lo que permanece hasta que su valor sea cambiado o se utilice un código G00. Por

ejemplo para indicarle al control que realice un movimiento lineal con avance programado de 300

de un punto a otro se puede utilizar la siguiente estructura.

N… G… X… Y… Z… F300

3.2.4 Velocidad del cabezal (S) Esta función determina la velocidad del cabezal. El nombre del cabezal estará definido por uno o

dos caracteres. El primer carácter es la letra S y el segundo carácter, que es opcional, será un

sufijo numérico entre 1 y 9. De esta forma el nombre de los ejes podrá ser cualquiera del rango S

a S9. En la línea de abajo se muestra la programación de un giro del cabezal o husillo de 1300

rpm.

N… S1300

3.2.5 Número de herramienta (T)

Esta función selecciona la herramienta con la que se va a ejecutar el maquinado programado. La

herramienta se representa mediante la letra “T” seguida del número de herramienta, por ejemplo,

para definir la herramienta número 2 se utilizan las siguientes palabras:

N… T2

3.2.6 Funciones auxiliares (M) Las funciones auxiliares son las encargadas de controlar todos los aspectos auxiliares al

maquinado, tales como la puesta en marcha de la herramienta, elección del sentido de giro, puesta

Capítulo 3. Generación de código o instrucciones de maquinado

70

en marcha de los sistemas de refrigeración, etc. Son junto a las funciones preparatorias, las más

importantes de la programación.

El formato es dos caracteres que corresponden con el número de función escogida. Si la función

tiene colocado un cero como carácter izquierdo se puede escribir utilizando los dígitos u

obviando el cero de la izquierda. En ambos casos el control actuará de la misma manera. Por

ejemplo:

M03=M3 M05=M5

En una frase de programación se puede escribir más de una función auxiliar, pero estarán siempre

una tras otra y no deberán ser contradictorias entre sí. Por ejemplo si escribe una función de giro

de husillo y a continuación se escribe uno de paro de husillo, el control solo hará caso de la

última que lea. Las funciones auxiliares son modales. Por tanto no es obligado escribir en todos

los bloques las funciones auxiliares, sino en solo aquellas que tengas que actuar. A continuación

se presenta la descripción de los principales códigos M. Algunas funciones adicionales se pueden

encontrar en el apéndice B.

M00 Parada programada

Formato N… M00

Este comando produce una parada en la ejecución de un programa de piezas. El cabezal de

fresado, los avances y el refrigerante se desconectan. Las puertas de protección contra virutas

pueden abrirse sin que se active la alarma.

M02 Fin del programa principal

Formato N… M02

Para el programa y desconecta todos los motores. Para iniciarlo nuevamente, será necesario

colocarse manualmente al principio del mismo y después actuar el arranque del programa.

M03-M04 Giro de husillo de fresado

Formato N… M03/M04

El husillo se activa siempre que se hayan programado ciertas revoluciones a una velocidad de

corte. El código M03 deberá ser utilizado para todas las herramienta de corte a la derecha, es

decir, el husillo girará a la derecha. Por el contario, para herramienta de corte a izquierda se debe

utilizar un comando M04.

M08–M09 Puesta en marcha del refrigerante

Formato N… M08/M09

Son unas funciones auxiliares muy simples, actúan como un interruptor, al activar M08 se pone

en marcha la salida del refrigerante y al activar el M09 se para el mismo.

M30 Fin de programa

Formato N… M30

Se para el programa y se detiene todos los programas. Cuando se ejecuta esta función se vuelve al

inicio del programa.

Capítulo 3. Generación de código o instrucciones de maquinado

71

3.2.7 Comentario de bloques

No tiene ninguna capacidad de cara al programa, y es puramente informativa. Su utilidad se

reserva a apuntar datos en el programa que recuerden al operario datos fundamentales, tales como

tipo y número de herramientas, inicios de programa, etc. Toda la información deberá ir siempre

entre paréntesis. Por ejemplo, en el siguiente bloque se define un avance de 300 mm/min en la

última palabra (F300) seguida de un comentario que dice que “El avance programado es de 300

mm/min” y que cuando el control llegue a esta parte lo ignorará, ya que solo es información

complementaria.

N… G01 X… Y… Z… F300 (El avance programado es de 300 mm/min)

3.3 Estructura del programa El cuerpo del programa presenta la siguiente estructura:

Encabezado del programa. Un programa CNC puede ser identificado por su número y, en

algunos controles, también por su nombre. La identificación del programa por su número es

necesaria con el fin de guardar más de un programa en la memoria del CNC. La cabecera del

programa es un bloque que se compone del número del programa, si es requerido por el sistema

de control desde el programa. Dos direcciones para el número de programa están disponibles, la

letra estándar O para el formato EIA y dos puntos (:) para el formato ASCII (ISO). En la

memoria, el sistema de control siempre muestra el número de programa con la letra O.

Si el programa utiliza el número de programa, tiene que estar dentro del rango permitido por el

control. Los programas en los controles Fanuc típicos deben estar dentro del rango de 0-9999. El

programa O0 ó O0000 no están permitidos. En el caso de algunos controles Fagor admite 14

caracteres y puede estar formado por letras mayúsculas, minúsculas y por números (no admite

espacios en blanco), además de estar precedido con el símbolo de porcentaje %.

Fanuc O1005, O1007, O12345

Fagor %0123, %PROGRAM, %PART923R

El nombre definido en la cabecera no tiene ninguna relación con el nombre con el que se guarda

el archivo. Ambos nombres pueden ser distintos.

Cuerpo del programa. El cuerpo del programa lo componen los bloques encargados de ejecutar

las operaciones, movimientos.

Fin del programa. El final del cuerpo del programa se define mediante las funciones M02 o

M30, siendo ambas funciones equivalentes, pero cada una tiene distintos propósitos. La función

M02 parará el programa y para iniciarlo nuevamente, será necesario colocarse manualmente en el

primer bloque del programa y después actuar el arranque del mismo. En cambio con M30, se

regresa automáticamente al primer bloque del programa, pudiéndose actuar directamente el

arranque de programa, sin necesidad de realizar ningún movimiento más. Cuando el programa lee

el código M02 o M30 cancelará todos los movimientos de los ejes, giro del husillo, refrigerante y

usualmente preestablece los valores por default del sistema. La función preferida para terminar el

programa es M30. Es aconsejable colocar la función en un bloque por separado.

Capítulo 3. Generación de código o instrucciones de maquinado

72

N65

N66 G91 G28 X0 Y0

N67 M30

%

El signo de porcentaje (%) después de M30 es un código especial de paro. Este símbolo termina

la carga de un programa desde un dispositivo externo.

3.4 Generación de código CNC para maquinado La generación de código CNC consiste en escribir las trayectorias de la herramienta dentro de un

archivo en el formato adecuado para el sistema de control de las máquinas CNC. Para la escritura

del código se seguirá la estructura presentada en la sección 3.3 y se implementará en un archivo

de texto .TXT. El formato de programa CNC desarrollado en este trabajo, está basado en

controles Fanuc, sin embargo, para otros tipos de controles solo es necesario cambiar algunos

códigos, siendo en esencia la misma estructura.

3.4.1 Encabezado del programa En el código desarrollado en este trabajo el encabezado consiste del nombre del programa y de

información general del proceso de escritura. La estructura del encabezado es igual para todos los

códigos generados en el sistema, se inicia por escribir un símbolo porcentual (%) en el primer

renglón y en el segundo el nombre del programa CNC, formado por una letra O inicial y después

el número 1234, Figura 3.7. La segunda parte del encabezado es opcional, y solamente es una

información general. Como se muestra en la Figura 3.7, cada renglón de esta sección del

programa se encuentra encerrada entre paréntesis para que cuando el control llegue a esta

sección, simplemente identifique las líneas como comentarios y sean omitidas. Esta sección

incluye la información del programa donde fue generado el código, el nombre del modelo, la

ubicación del archivo que contiene el modelo, la ubicación donde se guarda el código generado,

así como la fecha y el tiempo en que fue creado.

Figura 3.7. Encabezado del programa.

3.4.2 Cuerpo del programa

Las trayectorias generadas con los algoritmos presentados en el Capítulo 2 son guardadas en una

matriz tridimensional, donde las filas representan los planos en que fue generada cada trayectoria,

las columnas contienen la información de las posiciones de la herramienta que forman la

trayectoria para cada plano y las pasada se encuentran distribuidas en los diferentes niveles de la

Capítulo 3. Generación de código o instrucciones de maquinado

73

matriz, Figura 3.8. Para la matriz de acabado solo se tienen dos niveles. En el primero se

encuentra solo el dato de la coordenada en que se encuentran las trayectorias y el número de

niveles de la matriz. Y en el segundo se encuentran todas las posiciones de las trayectorias para

acabado. La matriz para desbaste tiene tantos niveles como número de pasadas de la herramienta

sean. En ambas matrices el elemento de la primera columna de cada fila, excepto el primer nivel,

contiene el dato del número de posiciones para esa fila, es decir, el número de posiciones que

forman la trayectoria. De esta manera, toda la información de las trayectorias se encuentra

contenida dentro de la matriz.

Figura 3.8. Organización de las matrices de desbaste y acabado.

En dichas matrices las trayectorias se encuentran por planos individuales, es decir, el número de

trayectorias es igual al número de filas de la matriz multiplicada por el número de niveles menos

uno. Sin embargo, para tener un movimiento continuo en los movimientos de la herramienta es

necesario unir todas las trayectorias individuales en una sola, de tal manera que la herramienta

maquine la pieza la mayor parte del tiempo, es decir, evitar el maquinado en aire. La manera en

que se guardan las trayectorias durante su generación esta formulado para que la escritura sea lo

más simple posible.

Dentro del cuerpo del programa se encuentran todas las instrucciones relacionadas con el

maquinado de la pieza. En la primera parte del cuerpo del programa se encuentra toda la

información para la puesta a punto de la máquina y en la segunda se incluyen todos los

movimientos de la herramienta.

Primera parte

La primera parte del programa se muestra en la Figura 3.9 y la descripción de cada uno de los

bloques se describe a continuación:

Posiciones de la herramienta

Pasadas

Planos de la trayectoria

Capítulo 3. Generación de código o instrucciones de maquinado

74

Figura 3.9. Encabezado y primera parte del cuerpo del programa.

Bloque 100. La primera palabra del cuerpo del programa es el número de bloque, el cual

puede iniciar con un número entero arbitrario, por ejemplo, el número cien con

incrementos de dos. Este bloque consta del código G21 para indicarle al control que se

trabajará en milímetros y de esta manera todos los movimientos definidos a partir de aquí

se realizarán en dichas unidades.

Bloque 102. En este bloque se le indica al control que prepare un movimiento rápido

(G00) además de que se trabajará en el plano XY (G17). Cuando la máquina se enciende o

ha sido utilizada previamente, algunos comandos se mantienen activos, es decir, si se

inicia un nuevo maquinado estos valores se mantendrán en la nueva pieza a menos de que

sean cancelados. Por esta razón ciertas funciones deben ser canceladas antes de iniciar el

maquinado de una nueva pieza, algunos de los comandos utilizados con este fin son: G40

que cancela la compensación del radio de la herramienta, G49 que cancela el offset

definido para las herramientas previamente utilizadas y el G80 que cancela los ciclos

fijos. Estos comandos son implementados dentro del código que se está escribiendo. En el

mismo bloque también se incluye el código G94 para indicarle al control que el avance

será definido por minuto, mm/min.

Bloque 104. El siguiente paso es enviar el sistema a la posición de referencia de la

máquina, para lo cual se incluye el código G91 para que a partir de la posición actual de la

máquina, se aproxime a la posición de referencia definida por el código G28, utilizado

como punto intermedio con la posición actual en el plano XY y coordenada en Z igual a

cero (Z0.0), recordando que el código G00 es modal y se encuentra activo.

Bloque 106. En este bloque se incluye la información del origen de la pieza, o cero pieza.

El comando G58 le indica al control que dentro de sus registros de las coordenadas de

trabajo, previamente configuradas, utilice las ubicadas en la posición 5. Este comando

puede ser sustituido por G55-G59, de acuerdo a las coordenadas de trabajo deseadas.

Durante la generación del código en este trabajo se utilizará la posición 5 (G58) por

Capítulo 3. Generación de código o instrucciones de maquinado

75

default. En el mismo bloque ahora se cambia el tipo de entradas de los movimientos a

absolutos (G90), es decir, que las movimiento definidos se realicen relativos al sistema de

coordenadas de la pieza definidas por el código G58 y se manda la herramienta a la

posición origen en el plano XY a través de las cotas X0.0 y Y0.0 respectivamente,

recordando que G00 aún está activo. También se define que la velocidad del husillo será

de 1300 RPM (S1300). La velocidad del husillo es tomada de los valores de entrada de la

herramienta, por lo que varía de acuerdo a la herramienta de corte seleccionada.

Finalmente, una vez definida la velocidad de giro del husillo se pone en movimiento

(M03).

Bloque 108. La posición actual del cabezal se encuentra en el origen del sistema de

coordenadas de trabajo definidas por G58 y con una altura (Z) en el origen del sistema de

referencia de la máquina. Antes de aproximar el cabezal al origen del sistema de

coordenadas de la pieza en Z, es necesario compensar la longitud de la herramienta a

través del código G43 precedido del número de herramienta que se utilizará, ya en base a

ella se calculará la compensación de la longitud. Una vez realizado este paso, ahora si se

aproxima la herramienta al cero pieza llegando hasta Z1.0 y se enciende la bomba del

refrigerante con M08.

A este punto la herramienta se encuentra en la posición (0,0,1) relativo al sistema de

coordenadas de la pieza y esta lista para iniciar la secuencia del maquinado.

Segunda parte

A partir de este punto se inicia con la escritura del programa que incluye los movimientos para

realizar el maquinado. Para esto considere cuatro trayectorias o segmentos de líneas rectas,

Figura 3.10, de una pieza cualquiera que se desean unir en forma de zigzag para tener una

trayectoria continua y no cuatro individuales. En la Figura 3.11 se representa la forma en que

están guardadas las trayectorias en la matriz y el detalle del contenido de cada uno de sus

elementos.

Figura 3.10. Cuatro trayectorias de herramientas.

5

6

8

1

7

2

3

4

1

2

3

4

Capítulo 3. Generación de código o instrucciones de maquinado

76

Posición Valor Descripción

Plano de la trayectoria para y

Plano de la trayectoria para y

3 Niveles de la matriz

3 Niveles de la matriz

2 Número de posiciones para

2 Número de posiciones para

2 Número de posiciones para

2 Número de posiciones para

Posición de

Posición de

Posición de

Posición de

Posición de

Posición de

Posición de

Posición de

Figura 3.11. Matriz de trayectorias de desbaste.

A partir de la matriz que contiene la información de las trayectorias, Figura 3.11, se realiza el

procedimiento para generar trayectorias continuas con una estrategia de maquinado en zigzag,

Figura 3.12. El diagrama de flujo de la Figura 3.13 muestra el procedimiento para generar las

trayectorias en zigzag, el cual tiene como entrada la matriz , que en el caso particular de la

Figura 3.10 es la matriz de la Figura 3.11, en donde la variable “n_planes” representa el número

de planos, 2 en el caso de análisis. A partir de ella se lee la posición

para conocer el número de niveles de la matriz. Las trayectorias deben iniciar con las

trayectorias con la mayor altura, es decir, de arriba hacia abajo, por lo cual se inicia un ciclo que

inicia en el valor de menos uno, es decir, que corresponde al nivel y

termina hasta que el nivel sea mayor o igual a , es decir, . El procedimiento esta formulado

para que la primera trayectoria en ser escrita tengo el menor valor de , de acuerdo al sistema de

coordenadas mostrado. Para esto se introduce un condicional que si es cero, las

trayectorias se leen y escriben de a y si tiene un valor de uno se leen y escriben de a .

Para leer todas las trayectorias en el nivel se utiliza un ciclo que lee plano por plano, sin

embargo, para generar una trayectoria en zigzag, se introduce otro condicional ( ) para

determinar si las trayectorias se escribe de a , o bien, de a . Si el valor de es cero, se

escriben de a y si es uno de a . El valor de y inicial es cero, por lo que las

trayectorias del nivel son escritas de a y de a , es decir, las primeras posiciones

escritas son y . Escrita la primera trayectoria ahora tiene un valor uno, por lo que la

siguiente trayectorias se escribe de a , es decir las posiciones y y cambia de uno a

cero. Al final de que se leyeron todas las trayectorias del nivel , el valor de cambia de cero

a uno. Entonces, ahora el nivel debe iniciar a escribirse de a . El valor de tiene el

valor con el que termino de escribirse , es decir, cero, lo cual significa que la trayectoria se

escribe de a , es decir, y . El procedimiento se repite hasta terminar de leer la matriz

completa. Para el caso del ejemplo analizado se tiene el resultado mostrado en la Figura 3.12.

,

ú

ú

0 1

0

1

2

0

1

2

Capítulo 3. Generación de código o instrucciones de maquinado

77

Figura 3.12. Trayectorias finales de desbaste.

Para la escritura de las trayectorias además de solo escribir las coordenadas de las posiciones de

la herramienta, se debe incluir el código adecuado para que el control interprete adecuadamente

lo que se desea hacer. La estructura del bloque se forma con el número de bloque (N). La

secuencia debe iniciar con el número 100 y no debe ser mayor a 9999. Por esta razón dentro del

procedimiento de escritura de trayectorias de herramienta de la Figura 3.13 se incluye la

condición de que si el número de bloque es mayor a 9997, entonces se reinicie en 100. Los

incrementos son de dos en dos. El tipo de interpolación utilizada para las trayectorias es

solamente lineal, por lo que después de cada número de bloque le sigue un código G01 y las

coordenadas de posición del punto. El formato de cada bloque es:

N… G… X… Y… Z…

Además de esto, siempre se gurda la posición anterior escrita que junto con la actual, determinan

la longitud del segmento entre estas dos posiciones. Esta longitud se va sumando para al finalizar

determinar la longitud de la trayectoria total. También se incluye un contador para el número de

segmento. Esta información es complementaria y se presenta al usuario dentro de un reporte al

finalizar el proceso, la descripción de estas opciones se presenta en el Capítulo 4.

5

6

8

1

7

2

3

4

Capítulo 3. Generación de código o instrucciones de maquinado

78

Figura 3.13. Diagrama de flujo para la escritura de la trayectorias de herramienta.

= = ú = 0

= 0

2 = 1 0

Entradas:

Inicio

= 1 0 0 1 ≥ 1

𝑆 == 0

= _ _

𝑆 == 0

= _ _

_ = 0 _ <

_ = 1 _ ≥ 0

_ = 1 _ < [ 0][ ][ ]

_ = 0 1 _ ≥ 1

1 = 𝐸 𝑏 (" "𝑏 "𝐺01" " " 1. " " 1. " " 1. ) = + ( 1 2 ) 2 = 1 𝑏 = 𝑏 + 2 = + 1 : 0 1

𝑆 𝑏 > 9997

𝑏 = 100

: (0 1)

Fin

Capítulo 3. Generación de código o instrucciones de maquinado

79

Ahora ya se tiene escrito el encabezado del programa y el cuerpo del programa. Por ejemplo, el

código que hasta ahora se tendría para una pieza cualquiera sería el mostrado en la Figura 3.14.

Figura 3.14. Programa CNC.

3.4.3 Fin del programa

Finalmente una vez que se escribieron las trayectorias para las herramientas, es necesario

terminar el código de una forma adecuada y no dejar el sistema en la última posición de las

trayectorias. Para esto se le añaden tres bloques más al final de la escritura de las trayectorias

para finalizar el programa.

Antepenúltimo bloque. En este bloque se cambia de la modalidad de coordenadas absolutas a

incrementales (G91) para enviar el cabezal al sistema de referencia de la máquina (G28). Es

decir, a partir del último punto definido en el cuerpo del programa se define un punto intermedio

con la misma posición en el plano XY y una altura de Z0 relativa al sistema de referencia de la

máquina (no de la pieza), para llevar el cabezal a una posición segura. Este movimiento lo realiza

con un movimiento rápido G00 que cancela el movimiento lineal con velocidad programada G01.

Una vez estando en esta posición apaga el motor de la bomba de refrigérate con M09.

Capítulo 3. Generación de código o instrucciones de maquinado

80

Penúltimo bloque. El cabezal del sistema se encuentra con la altura del origen de sistema de

coordenadas, sin embargo, en el plano XY se encuentra en la última posición ejecutada. Para

enviarlo al origen del sistema de referencia en los dos ejes restantes, se programa un G28 con

cotas X0.0 y Y0.0.

Último bloque. Para finalizar se utiliza el código M30, que regresa al inicia del programa y

apaga los motores.

Al final de todos los bloques se cierra con el símbolo de porcentaje (%). Finalmente con este fin

de programa se tiene el programa CNC completo. En la Figura 3.15 se muestra como queda el

programa CNC final y listo para ser enviado al sistema de control de una máquina CNC con

control Fanuc.

Figura 3.15. Programa CNC final.

Capítulo 3. Generación de código o instrucciones de maquinado

81

3.5 Generación de código de maquinado para robot y/o propósito general

El código CNC, como su nombre lo indica solo puede ser leído por sistemas que utilizan este

lenguaje. Sin embargo, el sistema también genera un código que incluye solo las coordenadas de

las posiciones de la herramienta y un número adicional para indicar si el movimiento se debe

realizar con la velocidad de avance programada o bien un movimiento rápido, Figura 3.16.

El algoritmo utilizado para la escritura de este archivo es el mismo que el utilizado para generar

un código CNC, con la diferencia de que cuando se escriben las coordenadas en el archivo, los

prefijos (códigos G) se omiten. A través de este código se puede controlar un robot para que siga

las trayectorias definidas. Aunque un robot generalmente tiene más de tres ejes, en este caso se

considera que la herramienta permanece siempre vertical. Además el código también puede

utilizarse para sistemas cartesianos de tres ejes, que no necesariamente son controlados por

códigos G y M.

Figura 3.16. Código de maquinado para robot y/o propósito general.

Capítulo 4. Implementación

82

Capítulo 4. Implementación

Implementación

La implementación de los algoritmos para la generación de trayectorias de herramienta y

generación de código o instrucciones de maquinado se presenta y describe en este Capítulo.

4.1 HWTestBedApp HWTestBedApp es una plataforma para el desarrollo y prueba de algoritmos con fines de

investigación desarrollada por investigadores de Heriot-Watt University en Edimburgo. Está

programada en Visual C++ y utiliza ACIS® geometric modeling kernel [61] para desarrollar las

operaciones geométricas requeridas. El programa solo acepta archivos nativos de ACIS, es decir,

archivos con extensión *.SAT que pueden ser creados con ACIS o cualquier otro software CAD

que soporte archivos de ACIS. La Figura 4.1 muestra la interfaz gráfica del programa, que como

se puede observar es muy similar a un sistema CAD comercial. En la parte superior se muestra la

barra de menús principal, y una barra de herramientas para la manipulación de modelos sólidos

3D. En la parte izquierda se encuentra una sección de navegación y en la parte central se

encuentra el área gráfica. Las funciones requeridas para el sistema están distribuidas en forma de

menús desplegables, barras de herramientas y diálogos. Una descripción más detallada de las

funciones del sistema se puede encontrar en [2].

Figura 4.1. Interfaz gráfica de la plataforma HWTestBedApp.

Área gráfica

gráfica

Sección

de

Navegación

Barra de menús

Barra de

herramienta

s

Capítulo 4. Implementación

83

Para la implementación de los algoritmos y funciones necesarios para la generación de las

trayectorias de la herramienta se añadió un nuevo menú dentro de la barra de menús. El menú

tiene la etiqueta “Machining” (maquinado) como se muestra en la Figura 4.2. Las funciones se

muestran en forma desplegable al hacer clic sobre dicho menú. Las funciones se encuentran

ordenadas de acuerdo al procedimiento de maquinado (Figura 2.2), esto con el fin de que el

procedimiento sea sistemático y más simple. La descripción detallada de cada una de las opciones

del menú se presenta en las siguientes secciones.

Figura 4.2. Opciones del menú de maquinado “Machining”.

4.2 Configuración de la pieza (Part Setup)

La función Part Setup es la opción que permite configurar la orientación de la parte a maquinar.

Cuando el modelo se genera en cualquier sistema CAD y se importa a este sistema, la posición y

orientación del sistema donde se creó permanece. Sin embargo, la configuración del archivo

original no siempre es el apropiado para la generación de la trayectorias, así cuando se abre un

archivo CAD en el sistema, antes de que se visualice en pantalla se calcula su posición respecto

del sistema de coordenadas y es modificada para que el vértice inferior izquierdo del bounding

box del modelo coincida con el origen del sistema.

Al hacer clic sobre la pestaña “Part Setup” del menú “Machining” aparece un mensaje, Figura

4.3, el cual notifica que la dirección de maquinado solo está disponible en la dirección del eje ,

además de que la superficie a maquinar debe estar hacia arriba (eje Z). Cuando se hace clic en

“Aceptar” aparece un cuadro de diálogo, Figura 4.4, mediante el cual se puede orientar el modelo

respecto a los tres ejes del sistema cartesiano. Al seleccionar una de las opciones de la izquierda

(radio botones) en el cuadro de la Figura 4.4, se está seleccionando el eje de rotación y el cuadro

de texto a su derecha se activa para permitir introducir el valor del ángulo de rotación en grados.

Cuando se hace clic en “Apply” u “OK” el modelo en pantalla es asignado a una variable y

después se ejecuta una función que calcula el punto medio del bounding box de dicho modelo a

Capítulo 4. Implementación

84

partir del cual se le aplica una rotación en el eje y con el ángulo especificado en el cuadro de

diálogo, para después actualizar su nueva orientación en pantalla.

Figura 4.3. Diálogo de notificación.

Figura 4.4. Orientación del modelo.

Si se observa la Figura 4.2, la única opción de la pestaña “Machining” que está activa es “Part

Setup” esto debido a que necesariamente se debe configurar la parte antes de realizar cualquier

operación sobre ella. Una vez que se cierra el diálogo de “Part Setup” se activan las opciones

“Raw Material” y “Finish Setting”. La opción “Rough Setting” no se activa porque es necesario

definir la materia prima para poder configurar el maquinado de desbaste.

4.3 Materia prima (Raw Material)

Para definir la materia prima se implementó la opción “Raw Material”. Esta opción está

formulada para definir los dos tipos de materia prima, materias primas de forma rectangular y de

forma aproximada. La Figura 4.5 muestra el cuadro de diálogo de esta opción. En la parte

superior del diálogo se observa un grupo de opciones con el título “Raw material”, en él se

pueden observar las opciones mencionadas “Rectangular shape” y “File”. La primera opción se

refiere a la definición de materias primas con forma rectangular y la segunda incluye cualquier

forma de materia prima y se define a partir de un archivo CAD.

4.3.1 Forma rectangular (Rectangular Shape) La opción materia prima rectangular aparece activa por default. Cuando esta opción está

seleccionada los cuadros de texto de los grupos de opciones “Dimension” y “Reference point” del

lado izquierdo del cuadro de diálogo se encuentran activos. La forma rectangular se define

mediante las dimensiones del rectángulo en las direcciones , , y la posición de su punto de

referencia en el sistema global de coordenadas. Del lado derecho del cuadro de diálogo se

observan las figuras de dos formas rectangulares. El rectángulo de la parte inferior representa el

bounding box del modelo en pantalla (modelo original), y el superior representa el bounding box

definido para la materia prima. Por default el tamaño del modelo y de la materia prima, asi como

sus puntos de referencia son iguales. Estos valores propuestos garantizan el mínimo valor posible

Capítulo 4. Implementación

85

de la materia prima si es ubicada en la misma posición del modelo original. Sin embargo, el

usuario puede modificar los valores de la materia prima a través de los cuadros de texto del lado

izquierdo.

Cuando la opción “Rectangular shape” se encuentra seleccionada, los botones “Load…”

“Orientation…” y “Part zero…” se muestran inactivos. Los dos primeros únicamente se activan

si se selecciona la opción “File” y el tercero se activa al definir la materia prima rectangular. La

Figura 4.6 muestra el cuadro de diálogo para definir el cero pieza (Part zero…) u origen del

sistema de coordenadas, a través de la distancia en las direcciones , y relativas al punto de

referencia en la materia prima. La Figura 4.7 muestra el modelo original y una materia prima de

forma rectangular configurada a través de las opciones presentadas.

Figura 4.5. Definición de la materia prima (forma rectangular).

Figura 4.6. Origen del sistema de coordenadas.

Capítulo 4. Implementación

86

Figura 4.7. Materia prima de forma rectangular.

4.3.2 Archivo (File)

La opción “File” sirve para definir una materia prima desde un archivo CAD. La apariencia del

cuadro de diálogo ahora se encuentra como lo muestra la imagen de la Figura 4.8. Cuando se

selecciona esta opción se activa el botón “Load…” el cual abre un cuadro de diálogo que permite

seleccionar el archivo a partir del cual se definirá la materia prima, Figura 4.9. Después de

seleccionar el archivo y hacer clic en el botón “Abrir”, y antes de que se visualice en pantalla el

modelo seleccionado, se calcula el bounding box de dicho modelo así como su punto de

referencia a partir del cual se le aplica una traslación a la posición del punto de referencia del

modelo original para finalmente mostrarlo en pantalla. Ahora las dimensiones del bounding box

del modelo de la materia prima y la posición de su punto de referencia se actualizan en pantalla

en sus respectivos cuadros de texto. El usuario es el encargado de definir la posición y

orientación final de la materia prima.

Capítulo 4. Implementación

87

Figura 4.8. Materia prima de forma aproximada.

Figura 4.9. Materia prima desde archivo.

Cuando la materia prima se muestra en pantalla, los botones “Orientation…”, “Part Zero” y el

grupo “Reference point” se activan ya que dependen del modelo de dicha materia. El botón

“Orientation…” tiene como objetivo orientar la materia prima, esto a través del mismo cuadro de

diálogo de “Part Setup”, sección 4.2. También el grupo “Reference point” cambia de inactivo a

activo, esto para permitir posicionar correctamente el modelo de la materia prima en el espacio

cartesiano. Un ejemplo de una materia prima aproximada definida mediante las opciones

descritas se muestra en la Figura 4.10.

Capítulo 4. Implementación

88

Figura 4.10. Materia prima desde un archivo (forma aproximada).

4.4 Configuración del desbaste y acabado (Rough Setting, Finish Setting) Al definir la materia prima se activa la opción “Rough Setting” mientras que la opción “Finish

Setting” esta activada desde que se configura el modelo en “Part Setup”. En ambas opciones se

configuran los parámetros del maquinado. La Figura 4.11 muestra el cuadro de diálogo para la

configuración del maquinado. En la parte superior del cuadro se tienen dos pestañas “Tooling

System” y “Machining Parameters”.

Figura 4.11. Configuración del maquinado.

Capítulo 4. Implementación

89

4.4.1 Sistema de herramientas (Tooling System)

En esta opción se configuran las herramientas y su sistema de sujeción o portaherramientas. Del

lado izquierdo del cuadro mostrado en la Figura 4.11 se observa una lista de datos que representa

los datos de las diferentes herramientas disponibles por default clasificadas en varios parámetros.

Cuando una de ellas puede ser seleccionada y los valores se actualizan en la figura de lado

derecho del cuadro de diálogo para poder visualizar los parámetros seleccionados. En la parte

inferior de la figura de la herramienta se observa un grupo de opciones con el título “Speed and

feed” que también se actualizan al seleccionar una de las herramientas. Los datos de este grupo

son “Spindle speed” que es la velocidad de giro del husillo o de la herramienta y “Feed rate” que

es el avance de la herramienta. La tercera opción es un combo box donde se selecciona la

dirección de giro del husillo, cuenta con dos opciones “CW” giro en sentido horario o “CCW”

giro en sentido anti-horario.

Aunque se tienen diferentes herramienta definidas, puede ser que algunos de los parámetros no

sean los que desea el usuario o bien la herramienta completa no es la adecuada. Para ello se tiene

el botón “New tool” para definir una nueva herramienta. Cuando se hace clic en el botón “New

tool” aparece un cuadro de diálogo como el mostrado en la Figura 4.12. El cuadro está dividido

en tres grupos de opciones, el primero es para definir la herramienta, el segundo para el

portaherramientas y el tercero para los parámetros de la herramienta como velocidades y avances.

Figura 4.12. Definición de nueva herramienta.

Tool (Herramienta)

En este grupo de datos se define todo lo relacionado con la herramienta:

Name: nombre de la herramienta.

Category: categoría a la que pertenece la herramienta. Las tres opciones disponibles son:

o Endmill_Bull: herramientas de filete

o Endmill_Flat: herramientas planas

o Endmill_Sphere: herramientas de punta de bola

Diameter: diámetro de la herramienta.

Corner radius: radio de la herramienta en la sección de corte. Para herramientas de filete

este radio es mayor a cero y menor al radio de la herramienta. En herramientas planas el

Capítulo 4. Implementación

90

radio es cero y para herramientas de punta de bola el radio es igual al radio de la

herramienta.

Length: longitud de la herramienta.

Shoulder: longitud de los filos de corte.

# Flutes: número de filos de la herramienta.

Item #: número de identificación de la herramienta.

Holder (Portaherramientas)

El holder es el sistema de sujeción de la herramienta, y aunque existen diferentes formas aquí se

considera solo una, Figura 4.11, con la cual se pretende pueda adaptarse a las diferentes formas

existentes. Los datos para el portaherramientas se explican a continuación:

Diameter: diámetro superior del portaherramientas.

Length: longitud del portaherramientas.

Angle: ángulo del portaherramienta .

Speed and feed (Velocidad y avance)

A partir de los datos definidos para la herramienta y de algunos otros parámetros se puede

calcular la velocidad de giro del husillo y la velocidad de avance. Para ello se utiliza el botón

llamado “Calculate speed and feed”. La ecuación que se utiliza para el cálculo de la velocidad del

husillo es la ecuación (1.1) donde es una constante, es decir, la ecuación solamente depende del

diámetro de la herramienta ( ) y de la velocidad de corte ( ) que depende del material que se va

a maquinar. El valor para la velocidad de corte para el aluminio utilizando herramientas de

carburo es de [62].

El avance de la herramienta se calcula a partir de la ecuación (1.3) y depende de la velocidad del

husillo ( ), del número de filos de la herramienta ( ) y el avance por diente de la

herramienta en ese material de acuerdo al diámetro de la herramienta y el material de la misma.

La Tabla 4.1 muestra los valores de avance por diente utilizando herramienta de carburo en

aluminio.

1 2 3 3.175 4 4.76 5 6 6.35 8

0.013 0.032 0.039 0.040 0.045 0.046 0.046 0.055 0.056 0.063

9.525 10 12 12.7 15.875 16 19.05 20 25

0.069 0.071 0.077 0.079 0.089 0.089 0.097 0.1 0.11

Tabla 4.1. Avances de herramienta para aluminio, utilizando herramientas de carburo.

Los valores tanto de velocidad de giro del husillo como del avance en el grupo “Speed ad feed”

se pueden definir manualmente por parte del usuario. Al crear una nueva herramienta ésta es

añadida a la lista del cuadro de diálogo principal para que pueda ser seleccionada y se actualicen

los valores en la figura. Además de esto, al hacer clic en “Compute” el sistema preguntará si se

desea guardar la herramienta creada para futuros usos a través del cuadro de dialogo mostrado en

la Figura 4.13, siempre y cuando se haya definido una nueva herramienta. De esta manera el

usuario puede tener disponibles las herramientas personalizadas sin necesidad de crearlas cada

vez que realiza una nueva operación.

Capítulo 4. Implementación

91

Figura 4.13. Opción para nuevas herramientas creadas.

4.4.2 Parámetros de maquinado (Machining Parameters)

La segunda pestaña “Machinig Parameters” está diseñada para configurar el maquinado que se va

a realizar. En esta pestaña se pueden observar dos grupos de opciones: “Roughing parameters” y

“Tolerances”, Figura 4.14. El primero de ellos es para definir los parámetros del desbaste y en el

segundo se definen parámetros de ambos procesos (desbaste y acabado).

Dos parámetros fundamentales en el desbaste son la profundidad de corte (Depth of cut) y la capa

para el acabado (layer to finish). La profundidad de corte particularmente en el desbaste se puede

calcular en función del diámetro de la herramienta (sección 2.6.1). La capa de material que se

deja para el acabado generalmente es pequeña entre 0.1 y 1 mm aunque no existe un valor

establecido. Un tercer parámetro importante es la distancia que habrá entre trayectorias de la

herramienta (Stepover). Al igual que la profundidad de corte este parámetro también se puede

calcular en función del diámetro de la herramienta (sección 2.6.1).

Cuando se ha seleccionado una herramienta de la lista en la primera pestaña y se hace clic sobre

la segunda, los valores de “Depth of cut” y “Stepover” se muestran calculados en función del

diámetro de la herramienta seleccionada (ecuaciones (2.12) y (2.14)). La opción de “Layer to

finish” también tiene un valor que es constante de 0.7 y que se encuentra del rango 0.1 y 1.0, sin

embargo, el usuario puede cambiar el valor de las casillas de acuerdo a su criterio. Tanto la

profundidad de corte (“Depth of cut”) como la capa para acabado (“Layer to finish”) solo están

activas cuando el cuadro de diálogo se llama desde la opción “Rough Setting”.

La opción “Maximum feed forward error” es el máximo valor que se puede desviar la superficie

maquinada de la superficie de diseño. Este parámetro es esencial para determinar el paso en la

dirección de maquinado y que es adaptivo (sección 2.5.4). El segundo tipo de error es en la

dirección ortogonal y se refiere a la cresta que se va quedar entre dos trayectorias paralelas. En

este tipo de error el usuario define la distancia entre trayectorias paralelas “Stepover” y el ángulo

de la superficie de mayor valor que debe estar entre 0º y 60º para que la ecuación utilizada sea

válida. Con estos dos valores se puede aproximar el error que habrá en una superficie con el

ángulo definido a través del botón “Aproximate scallop height”. La ecuación (1.14) se utiliza

para el cálculo del paso, de la cual se despeja para ponerla en función del paso entre

trayectorias ( ), el diámetro de la herramienta ( ) y el ángulo de la superficie ( ), quedando

como:

Capítulo 4. Implementación

92

A partir de la aproximación del error, el paso se puede modificar para tener el error dentro de la

tolerancia establecida. Para aproximar la altura de la cresta dado un paso, únicamente se puede

realizar cuando se utiliza una herramienta de punta de bola o bien cuando el cuadro de diálogo es

llamado desde la opción “Finish Setting”.

Figura 4.14. Parámetros del maquinado.

Finalmente cuando se han definido y seleccionado todos los parámetros necesarios, se hace clic

en el botón “Compute” (calcular), el cual muestra una cuadro de diálogo más donde se resumen

los datos con los que se generarán las trayectorias, Figura 4.15. Los datos resumidos son, las

características de la herramienta seleccionada, la velocidad del husillo y avance de la herramienta

así como los parámetros de maquinado como: tolerancia, paso entre trayectorias, profundidad de

corte y capa para acabado. En la parte final del diálogo se muestra un apartado en donde se puede

seleccionar el algoritmo con el que se calcularán las trayectorias. Los tres algoritmos que se

pueden seleccionar son los presentados en las secciones 2.4.1, 2.4.2 y 2.4.3. En el caso del

acabado los tres algoritmos están disponibles, sin embargo, para el desbaste solo se puede utilizar

el método que se basa en la discretización de la superficie presentado en la sección 2.4.3.

Capítulo 4. Implementación

93

Figura 4.15. Información de la generación de trayectorias: a) acabado, y b) desbaste.

Al hacer clic en el botón “OK” se inicia la generación de trayectorias de herramienta, lo que

incluye es la generación de las trayectorias de herramienta ya sea para desbaste o acabado, libres

de interferencias y de colisiones, así como la escritura del código de maquinado en un archivo

.TXT. Durante cada uno de los procesos mencionados se calcula el tiempo que tarda en su

ejecución, para finalmente crear un reporte con los tiempos de cálculo, además del número de

segmentos generados, la longitud total de la trayectoria y un tiempo de maquinado aproximado

calculado considerando una velocidad de avance constante, a partir de la división de la longitud

total de la trayectoria entre la velocidad de avance. La Figura 4.16 muestra un ejemplo del

diálogo a través del cual se presenta el resumen de resultados de la generación de trayectorias.

Figura 4.16. Reporte de la generación de trayectorias de herramienta.

Capítulo 4. Implementación

94

4.5 Simulación (Simulation)

Para verificar la validez de las trayectorias de herramienta generadas, se añadió la opción de

“Simulation”, mediante la cual es posible la visualización en pantalla de la trayectoria generada.

La simulación no solo incluye las trayectorias sino que además incluye la simulación de la

herramienta y el sistema de sujeción o portaherramientas. La Figura 4.17 muestra las opciones de

la pestaña “Simulation” la cual cuenta con la opción de simular las trayectorias para desbaste

(Roughing) o acabado (Finishing), las cuales se activan cuando se han generado las trayectorias y

el código. La Figura 4.17b muestra la simulación para acabado (Finishing) activa, debido a que

las trayectorias para acabado ya fueron generadas.

(a) (b)

Figura 4.17. Opción “Simulation”.

El modelo del portaherramientas utilizado en la simulación se muestra en la Figura 4.18, el cual

corresponde al mostrado en la Figura 2.37 para una herramienta de punta de bola. Para realizar la

simulación del portaherramientas los valores se toman directamente de los definidos en el cuadro

de diálogo de la Figura 4.11 para tener una representación proporcional a la real.

Figura 4.18. Modelo geométrico del portaherramientas.

La simulación completa incluye el portaherramientas moviéndose de posición a posición,

representando las trayectorias mediante líneas para poder visualizar detalladamente la ruta y

detectar posibles fallas, Figura 4.19.

Capítulo 4. Implementación

95

Figura 4.19. Simulación gráfica de las trayectorias de maquinado.

4.6 Código (Code)

El código de maquinado para sistemas CNC y sistemas robóticos se analiza y desarrolla en el

Capítulo 3. En él se unen las trayectorias para generar una trayectoria continua en forma de

zigzag, y se escriben dentro de un archivo de texto de acuerdo al formato del sistema utilizado.

La implementación para esta opción en la interfaz gráfica simplemente consta de las opciones

necesarias para visualizar el código, Figura 4.20. La opción principal es “Code” y de despliega

para poder seleccionar una de las opciones disponibles “CNC” o “Robot” que a su vez cada una

de ellas despliega dos opciones para seleccionar el código para maquinado de desbaste

“Roughing” o código para maquinado de acabado “Finishing”. Para una misma pieza el código

de desbaste y acabado cambia solo en algunas opciones del encabezado y las trayectorias, siendo

la misma estructura. La Figura 4.21 muestra un ejemplo de un código de desbaste generado para

un sistema CNC.

(a) (b)

Figura 4.20. Opción “Code->CNC”: a) ningún código generado (opciones inhabilitadas), y b)

código generado para acabado (opción “Finishing” habilitada).

Capítulo 4. Implementación

96

Figura 4.21. Código de maquinado para desbaste.

Capítulo 5. Análisis y evaluación del sistema

97

Capítulo 5. Análisis y evaluación del sistema

Análisis y evaluación del sistema

Para verificar el funcionamiento del sistema propuesto, en este Capítulo se muestran los

resultados obtenidos de la generación de trayectorias de maquinado de seis piezas de forma y

complejidad variable, una de las cuales se fabricó utilizando un sistema CNC de tres ejes.

5.1 Resultados del sistema

Para evaluar la capacidad y el desempeño del sistema, se seleccionaron seis piezas con forma y

complejidad variable. Las pruebas se realizaron basadas en el procedimiento general mostrado en

la Figura 2.2 utilizando la plataforma HWTestBedApp en una PC con procesador Pentium®

Dual-Core, CPU a 2.30 GHz y 3 GB de RAM.

Para cada pieza se realizó la planeación del maquinado para desbaste y acabado, y se midió el

tiempo que tarda cada una de ellas. Además, también se reporta un estimado del tiempo que

tardará el maquinado real sí las trayectorias se ejecutan a una velocidad de avance constante. Esta

aproximación se calcula dividiendo la longitud total de la trayectoria entre la velocidad de avance

de la herramienta. En todos los modelos se utilizó para la generación de trayectorias tanto de

desbaste como de acabado el algoritmo de discretización mediante puntos (Capítulo 2). La

distancia entre planos de corte utilizada para la discretización de la superficie es constante con un

valor de 0.1 mm. La discretización de cada uno de los lados no rectos fue con una tolerancia de

0.0001 mm, y la distancia entre punto y punto no excede 0.01 mm incluyendo a los lados rectos.

5.1.1 Modelo 1: Gehaeuse

El primer modelo probado en el sistema fue el modelo Gehause mostrado en la Figura 5.1. La

dimensión del bounding box para este modelo es 122 x 45 x 35 mm, y fue seleccionado por la

gran variedad de formas que presenta. Tales formas permiten evaluar la habilidad del sistema

para generar trayectorias en modelos con altura variable, agujeros, filetes, formas cilíndricas,

además de modelos que presentan zonas donde no existe material.

Figura 5.1. Modelo 1: Gehaeuse.

Capítulo 5. Análisis y evaluación del sistema

98

Desbaste

La materia prima para el modelo Gehaeuse consiste de una forma aproximada, (Figura 5.2), que

es el resultado típico de una proceso de forja, inyección de plásticos o bien algún proceso de

Prototipado Rápido. La dimensión del bounding box del modelo de la materia prima es de 130 x

54 x 44 mm. Los parámetros utilizados para la generación de trayectorias de la herramienta se

muestran en la Tabla 5.1a. La trayectoria de herramienta generada por el sistema contiene 1 348

segmentos con una longitud de 20 844 mm, y el tiempo de maquinado aproximado es de 1hr

44min 13s. El tiempo total de ejecución fue de 276.172 s, distribuido de acuerdo a la Tabla 5.1b.

(a)

(b)

Figura 5.2. Materia prima para el modelo Gehaeuse: a) forma aproximada, y b) materia prima y

modelo.

Capítulo 5. Análisis y evaluación del sistema

99

Herramienta Tiempos de cálculo

Categoría Plana Trayectorias 266.594 s

Diámetro 10.0 mm Colisiones 0 s

Radio de esquina 0 mm Pasadas de desbaste 0.016 s

Longitud 75.0 mm Generación de código 9.562 s

Velocidad y avance Tiempo total 276.172 s

Velocidad husillo 1300 rpm

Avance 200 mm/min

Información del maquinado

Parámetros del maquinado Número de segmentos 1 348

Error en dirección

de maquinado -

Longitud de la trayectoria 20 844 mm

Tiempo aproximado de

maquinado 1hr 44min 13s

Paso lateral 6.6 mm

Profundidad de corte 3.3 mm

Capa para acabado 0.7 mm

Algoritmo

Discretización -

(a) (b)

Tabla 5.1. Información para modelo Gehaeuse: a) parámetros del desbaste, y b) resultados de la

generación de trayectorias.

La trayectoria para desbaste se presenta en la Figura 5.3. Esta trayectoria está compuesta por dos

tipos de movimientos: el primero es para corte de material y se ejecuta a la velocidad de avance

programada (F), y el segundo tiene como objetivo conducir la herramienta para unir los

movimientos con corte en una sola trayectoria. El segundo tipo de movimiento se realiza a la

velocidad máxima programada del sistema. La Figura 5.4 muestra la descomposición de la

trayectoria de desbaste para el modelo Gehaeuse; en la primera imagen se muestra la trayectoria

para el arranque de material, y la segunda imagen representa la trayectoria para conectar las

trayectorias de corte y formar un zigzag continuo. Al unirse ambas en una sola, se obtiene el

resultado mostrado en la tercera imagen. En general todas las trayectorias de desbaste presentadas

en este trabajo están compuestas de esta manera.

Capítulo 5. Análisis y evaluación del sistema

100

Figura 5.3. Trayectorias para desbaste de modelo Gehaeuse.

Figura 5.4. Descomposición de la trayectoria de desbaste para el modelo Gehaeuse.

Movimiento con corte Movimiento rápido

Trayectoria final

Capítulo 5. Análisis y evaluación del sistema

101

Acabado

Las trayectorias de acabado se generan directamente sobre el modelo final de acuerdo a los

parámetros presentados en la Tabla 5.2a. El resultado muestra que el número de segmentos

generados fue de 8 218 con una longitud total de la trayectoria de 26 306 mm. El tiempo

estimado de maquinado fue de 2hr 11min 32s. El tiempo que tardó el sistema en la ejecución del

proceso completo fue de 805.453 s distribuidos de acuerdo a la Tabla 5.2b. El tiempo de cálculo

de las colisiones es cero porque la herramienta tiene una longitud mayor al bounding box del

modelo en la dirección de Z y por tanto no existe posibilidad de colisión. En el caso del cálculo

de las pasadas el tiempo de cálculo también es cero debido a que solo aplica para desbaste.

Finalmente la trayectoria para acabado se muestra en la Figura 5.5.

Herramienta Tiempos de cálculo

Categoría Esférica Trayectorias 802.656 s

Diámetro 6.35 mm Colisiones 0 s

Radio de esquina 3.175 mm Pasadas de desbaste 0 s

Longitud 75.0 mm Generación de código 2.797 s

Velocidad y avance Tiempo total 805.453 s

Velocidad husillo 1 300 rpm

Avance 200 mm/min

Información del maquinado

Parámetros del maquinado Número de segmentos 8 218

Error en dirección

de maquinado 0.05 mm

Longitud de la trayectoria 26 306 mm

Tiempo aproximado de

maquinado 2hr 11min

32s Paso lateral 0.5 mm

Profundidad de corte -

Capa para acabado -

Algoritmo

Discretización -

(a) (b)

Tabla 5.2. Información de modelo Gehaeuse: a) parámetros del acabado, b) resultados de la

generación de trayectorias.

Capítulo 5. Análisis y evaluación del sistema

102

Figura 5.5. Trayectoria de acabado para el modelo Gehaeuse.

5.1.2 Modelo 2: Molde

El segundo modelo de prueba corresponde al molde que se muestra en la Figura 5.6. Este modelo

fue seleccionado por las características geométricas de paredes delgadas formadas por curvas

irregulares. La dimensión del bounding box para este modelo es de 114 x 106 x 27 mm.

Figura 5.6. Modelo 2: Molde.

Desbaste

La materia prima para el Molde es una forma aproximada compuesta por cubos (modelo octree)

mostrada en la Figura 5.7, la cual tiene un bounding box de 154 x 146 x 47 mm. Los parámetros

de entrada utilizados para la generación de trayectorias de la herramienta se muestran en la Tabla

5.3a. El resultado de la trayectoria de acabado generada muestra que está compuesta de 3 165

segmentos con una longitud total de 55 473 mm, el tiempo de maquinado aproximado es de 4h

37min 21s. El tiempo total de ejecución fue de 640.078 s distribuidos de acuerdo a la Tabla 5.3b.

Capítulo 5. Análisis y evaluación del sistema

103

La trayectoria final para el desbaste se muestra en la Figura 5.8, la cual consta tanto de

movimientos con corte a velocidad programada como de movimientos rápidos.

(a) (b)

Figura 5.7. Materia prima para el Molde: a) modelo octree, y b) materia prima y modelo.

Herramienta Tiempos de cálculo

Categoría Plana Trayectorias 634.796 s

Diámetro 10.0 mm Colisiones 0 s

Radio de esquina 0 mm Pasadas de desbaste 0.047 s

Longitud 75.0 mm Generación de código 5.235 s

Velocidad y avance Tiempo total 640.078 s

Velocidad husillo 1300 rpm

Avance 200 mm/min

Información del maquinado

Parámetros del maquinado Número de segmentos 3165

Error en dirección

de maquinado -

Longitud de la trayectoria 55 473 mm

Tiempo aproximado de

maquinado 4hr 37min

21s Paso lateral 6.6 mm

Profundidad de corte 3.3 mm

Capa para acabado 0.7 mm

Algoritmo

Discretización -

(a) (b)

Tabla 5.3. Información para el modelo del Molde: a) parámetros del desbaste, b) resultados de la

generación de trayectorias.

Capítulo 5. Análisis y evaluación del sistema

104

Figura 5.8. Trayectorias de desbaste para el Molde.

Acabado

Para las trayectorias de acabado se utilizaron los parámetros presentados en la Tabla 5.4a. El

número de segmentos en la trayectoria fue de 27 276 con una longitud total de 42 492 mm, el

tiempo de maquinado aproximado para fabricar la pieza fue de 3hr 32min 27s. El tiempo total

que tardó el sistema en el cálculo de las trayectorias fue de de 590.859 s distribuidos de acuerdo a

la Tabla 5.4b. El resultado de las trayectorias se muestra en la Figura 5.9.

Herramienta Tiempos de cálculo

Categoría Esférica Trayectorias 567.5 s

Diámetro 3.175 mm Colisiones 0 s

Radio de esquina 1.5875 mm Pasadas de desbaste 0 s

Longitud 75.0 mm Generación de código 23.359 s

Velocidad y avance Tiempo total 590.859 s

Velocidad husillo 1300 rpm

Avance 200 mm/min

Información del maquinado

Parámetros del maquinado Número de segmentos 27 276

Error en dirección

de maquinado 0.05 mm

Longitud de la trayectoria 42 492 mm

Tiempo aproximado de

maquinado 3hr 32min

27s Paso lateral 0.25 mm

Profundidad de corte -

Capa para acabado -

Algoritmo

Discretización -

(a) (b)

Tabla 5.4. Información para el modelo del Molde: a) parámetros del acabado, y b) resultados de

la generación de trayectorias.

Capítulo 5. Análisis y evaluación del sistema

105

Figura 5.9. Trayectorias de acabado para el Molde.

5.1.3 Modelo 3: Camión El tercer modelo probado fue un camión, Figura 5.10, con un bounding box de 123 x 62 x 62

mm. Este modelo es más complejo que los anteriores ya que contiene una gran variedad de

características geométricas tales como formas salientes (cantilever), cavidades, paredes delgadas

y detalles pequeños.

Figura 5.10. Modelo 3: Camión.

Desbaste

La materia prima corresponde a una forma aproximada por cubos (modelo octree), Figura 5.11,

con un bounding box de 156 x 92 x 73 mm. Se utilizaron los parámetros de maquinado mostrados

en la Tabla 5.5a para generar las trayectorias de desbaste. Los resultados muestran que la

trayectoria está compuesta de 2 919 segmentos con una longitud total de 56 670 mm, y que se

Capítulo 5. Análisis y evaluación del sistema

106

requiere un tiempo aproximado de 4hr 43min 20s para recorrerla a la velocidad de avance

programada. El tiempo total de ejecución fue de 421.515 s distribuido de acuerdo a la Tabla 5.5b.

Finalmente, la trayectoria de desbaste se muestra en la Figura 5.12.

Figura 5.11. Materia prima para el Camión.

Herramienta Tiempos de cálculo

Categoría Plana Trayectorias 410.375 s

Diámetro 10.0 mm Colisiones 0 s

Radio de esquina 0 mm Pasadas de desbaste 0.047 s

Longitud 75.0 mm Generación de código 11.093 s

Velocidad y avance Tiempo total 421.515 s

Velocidad husillo 1300 rpm

Avance 200 mm/min

Información del maquinado

Parámetros del maquinado Número de segmentos 2 919

Error en dirección

de maquinado -

Longitud de la trayectoria 56 670 mm

Tiempo aproximado de

maquinado 4hr 43min

20s Paso lateral 6.6 mm

Profundidad de corte 3.3 mm

Capa para acabado 0.7 mm

Algoritmo

Discretización -

(a) (b)

Tabla 5.5. Información para el modelo del Camión: a) parámetros de las trayectorias de

maquinado, b) resultados de la generación de las trayectorias para desbaste.

Capítulo 5. Análisis y evaluación del sistema

107

Figura 5.12. Trayectorias de desbaste para el modelo del Camión.

Acabado

Para el acabado se utilizaron los parámetros mostrados en la Tabla 5.6a. El número de segmentos

de la trayectoria fue de 22 770 con una longitud total de 30 341 mm, y un tiempo aproximado de

maquinado de 2hr 31min 42s. Para generar las trayectorias el sistema se tardó un tiempo total de

1 167.453 s distribuidos de acuerdo a la Tabla 5.6b. La trayectoria para acabado se presenta en la

Figura 5.13.

Herramienta Tiempos de cálculo

Categoría Esférica Trayectorias 1 150.593 s

Diámetro 6.35 mm Colisiones 0 s

Radio de esquina 3.175 mm Pasadas de desbaste 0 s

Longitud 75.0 mm Generación de código 16.86 s

Velocidad y avance Tiempo total 1 167.453 s

Velocidad husillo 1300 rpm

Avance 200 mm/min

Información del maquinado

Parámetros del maquinado Número de segmentos 22 770

Error en dirección

de maquinado 0.05 mm

Longitud de la trayectoria 30 341 mm

Tiempo aproximado de

maquinado 2hr 31min

42s Paso lateral 0.5 mm

Profundidad de corte -

Capa para acabado -

Algoritmo

Discretización -

(a) (b)

Tabla 5.6. Información para el modelo del Camión: a) parámetros del acabado, y b) resultados de

la generación de trayectorias.

Capítulo 5. Análisis y evaluación del sistema

108

Figura 5.13. Trayectorias de acabado para el modelo del Camión.

5.1.4 Modelo 4: Sello El cuarto modelo probado fue un sello el cual tiene un bounding box de 110 x 130 x 95 mm,

Figura 5.14. El objetivo de utilizar este modelo es demostrar la capacidad del sistema para

generar trayectorias libres de colisiones entre el portaherramientas y la pieza de trabajo. El

modelo se eligió por tener una altura mayor a la longitud típica de una herramienta, lo cual obliga

a re-calcular las posiciones que presenten colisiones.

Figura 5.14. Modelo 4: Sello.

Capítulo 5. Análisis y evaluación del sistema

109

Desbaste

La materia prima para el modelo consiste de un bloque rectangular, Figura 5.15, con un

bounding box de 134 x 114 x 95 mm. Los parámetros utilizados para la generación de

trayectorias se muestran en la Tabla 5.7a. Las trayectorias de herramienta generadas contiene 3

345 segmentos con una longitud 119 032 mm y el tiempo de maquinado aproximado es de 9hr

55min 9s. El tiempo total de ejecución fue de 603.907 s, distribuido como de acuerdo a la Tabla

5.7b. Las trayectorias generadas se muestran en la Figura 5.16.

Figura 5.15. Materia prima para el modelo del Sello.

Herramienta Tiempos de cálculo

Categoría Plana Trayectorias 338.72 s

Diámetro 10.0 mm Colisiones 250.734 s

Radio de esquina 0 mm Pasadas de desbaste 0.046 s

Longitud 50.0 mm Generación de código 14.407 s

Velocidad y avance Tiempo total 603.907 s

Velocidad husillo 1300 rpm

Avance 200 mm/min

Información del maquinado

Parámetros del maquinado Número de segmentos 3 345

Error en dirección de maquinado

- Longitud de la trayectoria 119 032 mm

Tiempo aproximado de maquinado

9hr 55min 9s Paso lateral 6.6 mm

Profundidad de corte 3.3 mm

Capa para acabado 0.7 mm

Algoritmo

Discretización -

(a) (b)

Tabla 5.7. Información para el modelo del Sello: a) parámetros del desbaste, b) resultados de la

generación de trayectorias.

Capítulo 5. Análisis y evaluación del sistema

110

Figura 5.16. Trayectorias de desbaste para el modelo del Sello.

Acabado

Para la generación de las trayectorias de acabado se utilizaron los parámetros presentados en la

Tabla 5.8a. El número de segmentos fue de 6 478 con una longitud total de 27 265 mm. El

tiempo de maquinado aproximado fue de 2hr 16min 19s. El tiempo total de ejecución fue de 1

735.6 s distribuidos de acuerdo a la Tabla 5.8b. Las trayectorias de acabado se muestran en la

Figura 5.17, en donde se puede observar claramente como el algoritmo de colisiones re-calcula

las posiciones que presentan colisión, elevando dicha posición hasta que estén libres. En la Figura

5.17a se muestra la vista isométrica del modelo y las trayectorias, y en la Figura 5.17b se muestra

la vista lateral, donde se observa que las posiciones re-calculadas se encuentran lejos del modelo.

Herramienta Tiempos de cálculo

Categoría Esférica Trayectorias 295.891 s

Diámetro 3.175 mm Colisiones 1 426.015 s

Radio de esquina 1.5875 mm Pasadas de desbaste 0 s

Longitud 50.0 mm Generación de código 13.656 s

Velocidad y avance Tiempo total 1 735.562 s

Velocidad husillo 1300 rpm

Avance 200 mm/min

Información del maquinado

Parámetros del maquinado Número de segmentos 6 478

Error en dirección

de maquinado 0.05 mm

Longitud de la trayectoria 27 265 mm

Tiempo aproximado de

maquinado 2hr 16min

19s Paso lateral 1 mm

Profundidad de corte -

Capa para acabado -

Algoritmo

Discretización -

(a) (b)

Tabla 5.8. Información para el modelo del Sello: a) parámetros del maquinado, b) resultados de la

generación de trayectorias.

Capítulo 5. Análisis y evaluación del sistema

111

(a)

(b)

Figura 5.17. Trayectorias de acabado para el Sello: a) vista isométrica, y b) vista lateral.

5.1.5 Modelo 5: Superficie de forma libre El quinto modelo, Figura 5.18, contiene superficies de forma libre, es decir, superficies que no

pueden ser representadas por medio de una ecuación. También se les conoce como superficies

esculpidas por la forma tan similar en cómo se generan. La dimensión del bounding box es 93 x

Capítulo 5. Análisis y evaluación del sistema

112

80 x 42 mm y el objetivo de utilizar este modelo fue probar la habilidad del sistema para generar

las trayectorias en componentes con superficies de forma libre.

Figura 5.18. Modelo 5: Superficie de forma libre.

Desbaste

La materia prima consiste de un bloque de forma rectangular, Figura 5.19, con un bounding box

de 95 x 81 x 43 mm. Los parámetros para el desbaste se presentan en la Tabla 5.9a. El resultado

muestra que el desbaste está compuesto por 3 473 segmentos con una longitud total de 30 308

mm, además el tiempo de maquinado aproximado es de 2hr 31m 32s. La ejecución del proceso

completo fue de 198.92 s, distribuido de acuerdo a la Tabla 5.9b. La trayectoria final para el

desbaste se muestra en la Figura 5.20.

Figura 5.19. Materia prima para el modelo de superficie de forma libre.

Capítulo 5. Análisis y evaluación del sistema

113

Herramienta Tiempos de cálculo

Categoría Plana Trayectorias 195.175 s

Diámetro 10.0 mm Colisiones 0 s

Radio de esquina 0 mm Pasadas de desbaste 0.32 s

Longitud 75.0 mm Generación de código 3.125 s

Velocidad y avance Tiempo total 198.922 s

Velocidad husillo 1300 rpm

Avance 200 mm/min

Información del maquinado

Parámetros del maquinado Número de segmentos 3 473

Error en dirección

de maquinado -

Longitud de la trayectoria 30 308 mm

Tiempo aproximado de

maquinado 2hr 31m

32s Paso lateral 6.6 mm

Profundidad de corte 3.3 mm

Capa para acabado 0.7 mm

Algoritmo

Discretización -

(a) (b)

Tabla 5.9. Información para el modelo de superficie de forma libre: a) parámetros del desbaste, y

b) resultados de la generación de trayectorias.

Figura 5.20. Trayectorias de desbaste para el modelo de superficie de forma libre.

Acabado

Para la generación de las trayectorias de acabado se utilizaron los parámetros presentados en la

Tabla 5.10a. El número de segmentos fue de 33 882 y una longitud total de 24 625 mm. El

maquinado real tardaría 2hr 3min 7s. Finalmente el tiempo total de ejecución fue de 1089.61 s

distribuidos de acuerdo a la Tabla 5.10b.

Capítulo 5. Análisis y evaluación del sistema

114

Herramienta Tiempos de cálculo

Categoría Esférica Trayectorias 1 086.57 s

Diámetro 6.35 mm Colisiones 0 s

Radio de esquina 3.175 mm Pasadas de desbaste 0 s

Longitud 75.0 mm Generación de código 3.453 s

Velocidad y avance Tiempo total 1 089.61 s

Velocidad husillo 1300 rpm

Avance 200 mm/min

Información del maquinado

Parámetros del maquinado Número de segmentos 33 882

Error en dirección

de maquinado 0.05 mm

Longitud de la trayectoria 24 625 mm

Tiempo aproximado de

maquinado 2hr 3min 7s

Paso lateral 0.5 mm

Profundidad de corte -

Capa para acabado -

Algoritmo

Discretización -

(a) (b)

Tabla 5.10. Información para el modelo de superficie de forma libre: a) parámetros del acabado,

y b) resultados de la generación de trayectorias.

Figura 5.21. Trayectorias de acabado para el modelo de superficie de forma libre.

5.1.6 Modelo 6: Trial

El último modelo utilizado fue el Trial, Figura 5.22, el cual tiene una dimensión del bounding

box de 120 x 40 x 30 mm. Este modelo fue seleccionado porque permite evaluar el sistema en

superficies curvas (esfera), superficies cilíndricas, paredes verticales y planos inclinados.

Capítulo 5. Análisis y evaluación del sistema

115

Figura 5.22. Modelo 6: Trial.

El modelo Trial también se maquinó para validar las trayectorias generadas por el sistema. Para

realizar el maquinado se utilizó una máquina CNC de la marca LEADWELL modelo MCV-550S

con un sistema de control Fanuc. El sistema utilizado es aproximadamente de los años 80, como

se puede observar en la Figura 5.23.

Figura 5.23. Sistema de fresado CNC utilizado para el maquinado del modelo Trial.

Desbaste

Para el modelo Trial se utilizó una materia prima de forma rectangular con un bounding box de

140 x 50 x 30 mm. En la Figura 5.24 se muestra la materia prima virtual y real utilizada para el

maquinado. El material utilizado para el maquinado real fue una resina comercial debido a que se

puede maquinar a altas velocidades sin que el equipo o herramienta sufran algún daño.

Capítulo 5. Análisis y evaluación del sistema

116

(a)

(b)

Figura 5.24. Materia prima para el modelo Trial: a) materia prima virtual, y b) materia prima real.

Los parámetros para el desbaste son los mostrados en la Tabla 5.11a. La herramienta real

utilizada para esta operación se muestra en la Figura 5.25.

Herramienta Tiempos de cálculo

Categoría Plana Trayectorias 133.868 s

Diámetro 10.0 mm Colisiones 0 s

Radio de esquina 0 mm Pasadas de desbaste 0.1 s

Longitud 75.0 mm Generación de código 1.032 s

Velocidad y avance Tiempo total 135 s

Velocidad husillo 1300 rpm

Avance 200 mm/min

Información del maquinado

Parámetros del maquinado Número de segmentos 1 579

Error en dirección de maquinado

- Longitud de la trayectoria 17 797 mm

Tiempo aproximado de maquinado

1hr 25min 54s Paso lateral 6.6 mm

Profundidad de corte 3.3 mm

Capa para acabado 0.7 mm

Algoritmo

Discretización -

(a) (b)

Tabla 5.11. Información para el modelo Trial: a) parámetros del desbaste, b) resultados de la

generación de trayectorias.

Capítulo 5. Análisis y evaluación del sistema

117

Figura 5.25. Herramientas de corte plana para desbaste, 10mm.

Las trayectoria generada para el desbaste se muestra en la Figura 5.26, la cual está compuesta por

1 579 segmentos con una longitud total de 17 797 mm y un tiempo de maquinado aproximado de

1hr 25min 54s. El tiempo total de ejecución fue de 135 s, distribuidos de acuerdo a la Tabla

5.11b.

Figura 5.26. Trayectorias de desbaste para el modelo Trial.

Con la trayectoria generada en el sistema mostrada en la Figura 5.26 se realizó el maquinado real

de la pieza utilizando el código CNC generado. En la Figura 5.27 se muestran algunas fotografías

en secuencia tomadas durante el maquinado de desbaste. Cabe mencionar que por razones de

seguridad, el maquinado se realizó utilizando solo movimiento a velocidad programada (G1) con

el fin de actuar rápidamente en caso de algún error. Este ajuste no afecta para nada las

Capítulo 5. Análisis y evaluación del sistema

118

trayectorias, solamente que donde se ejecuta un movimiento rápido se sustituye por un

movimiento a velocidad programada.

(a) (b)

(c) (d)

(e) (f)

Figura 5.27. Maquinado de desbaste: a) materia prima, b) después de 3 capas de maquinado, c)

después de 4 capas de maquinado, d) después de penúltima capa de acabado, e) y f) después de la

remoción del efecto escalera, última capa de maquinado.

Acabado

Para el acabado se utilizaron los parámetros mostrados en la Tabla 5.12a. El número de

segmentos fue de 14 779 con una longitud total de 24 457 mm. De acuerdo al sistema, el tiempo

Capítulo 5. Análisis y evaluación del sistema

119

aproximado que tardará en maquinarse la pieza será de 2hr 2min 17s. El tiempo total de ejecución

fue de 950.05 s distribuidos de acuerdo a la Tabla 5.12b. La herramienta utilizada para el

maquinado real de acabado se muestra en la Figura 5.28.

Herramienta Tiempos de cálculo

Categoría Esférica Trayectorias 948.922 s

Diámetro 6.35 mm Colisiones 0 s

Radio de esquina 3.175 mm Pasadas de desbaste 0 s

Longitud 75.0 mm Generación de código 1.125 s

Velocidad y avance Tiempo total 950.047 s

Velocidad husillo 1300 rpm

Avance 200 mm/min

Información del maquinado

Parámetros del maquinado Número de segmentos 14 779

Error en dirección

de maquinado 0.05 mm

Longitud de la trayectoria 24 457 mm

Tiempo aproximado de

maquinado 2hr 2min

17s Paso lateral 0.4 mm

Profundidad de corte -

Capa para acabado -

Algoritmo

Discretización -

(a) (b)

Tabla 5.12. Información para el modelo Trial: a) parámetros del acabado, y b) resultados de la

generación de trayectorias.

Figura 5.28. Herramienta de punta de bola para acabado, 6.35mm.

Las trayectorias de acabado se muestran en la Figura 5.29. El código generado a partir de esta

trayectoria fue utilizado para el maquinado real de acabado. Cabe mencionar que el código que se

genera es para ser utilizado directamente en máquinas con control Fanuc, por lo que no se generó

ningún error al correr el maquinado en el sistema CNC. La secuencia del maquinado de acabado

se muestra a través de las fotografías mostradas en la Figura 5.30.

Capítulo 5. Análisis y evaluación del sistema

120

Figura 5.29. Trayectorias de acabado para el modelo Trial.

(a) (b)

(c) (d)

Capítulo 5. Análisis y evaluación del sistema

121

(e) (f)

(g) (h)

Figura 5.30. Etapas durante el maquinado de acabado: a) y b) después de un cuarto de modelo

maquinado, c) y d) después de la mitad del modelo maquinado, e) y f) después de tres cuarto de

modelo maquinado, g) y h) modelo completamente maquinado.

Medición

Finalmente para validar el maquinado y las tolerancias establecidas durante la generación de las

trayectorias, se realizó la medición geométrica de la pieza maquinada. La Figura 5.31 muestra la

máquina de medición por coordenadas (MMC) de la marca ZEISS modelo Vista 1620-14 DCC

utilizada para realizar dichas mediciones.

Figura 5.31. Máquina de medición por coordenadas.

Capítulo 5. Análisis y evaluación del sistema

122

Para comparar las dimensiones finales de la pieza maquinada con las del modelo CAD original,

se realizó la Tabla 5.13, donde la primera columna representa la característica a medir (Figura

5.32), la segunda la dimensión teórica obtenida directamente del modelo virtual, la tercera

contiene las dimensiones obtenidas de la medición, y la última muestra el error entre lo teórico y

lo real. Recordando que la tolerancia especificada fue de 0.05mm, se puede observar que la altura

del cilindro es el menor error debido a que en el maquinado de planos horizontales se puede

controlar mejor el error. En el caso del diámetro interior, diámetro exterior y diámetro de la

esfera, el error es un poco mayor al doble de la tolerancia especificada error, lo cual se puede

explicar teniendo en cuenta que la tolerancia fue de 0.05 mm para la superficie; sin embargo, en

las características mencionadas son dos lados maquinados los que se midieron, es decir, la

tolerancia de 0.05 mm por cada lado, lo cual lleva a que el error máximo esperado sería del doble

de este valor (0.1 mm). Finalmente el error en la distancia entre el centro de la esfera y el cilindro

es muy bajo debido a que la superficie está cubierta por un error casi constante, por lo tanto los

centros se mantienen muy cerca de las posiciones del modelo virtual.

Característica Dimensión teórica Dimensión real Error

Altura cilindro (h) 15.000 mm 15.0652 mm 0.0652 mm

Diámetro interior cilindro ( 20.000 mm 20.1348 mm 0.1348 mm

Diámetro exterior cilindro ( ) 30.000 mm 29.8736 mm 0.1264 mm

Diámetro esfera ( 30.000 mm 29.8790 mm 0.1210 mm

Ángulo entre planos ( ) 159.4439º 159.5207º 0.0768º

Distancia cilindro-esfera ( ) 40.000 mm 40.0220 mm 0.0220 mm

Tabla 5.13. Análisis de dimensiones medidas y reales.

Figura 5.32. Características medidas en el modelo Trial.

En resumen el máximo error medido en el modelo fue de 0.1348 mm, considerando dos

superficies maquinadas. Si el error se divide entre dos se obtiene un error de 0.0674 mm para

cada una de las superficies maquinadas. La tolerancia especificada fue de 0.05 mm para el

modelo, por lo cual el error de maquinado final se obtiene de la diferencia del máximo error

obtenido para la superficie (0.0674 mm) y la tolerancia especificada (0.05 mm), dando como

resultado un error final de 0.0174 mm. Este error se puede explicar considerando la suma del

error generado durante el cálculo de las trayectorias de herramienta, el error debido a la

antigüedad de la máquina CNC (cuya precisión no está garantizada debido a factores como el

Capítulo 5. Análisis y evaluación del sistema

123

desgaste de los elementos mecánicos) y del error generado durante la medición debido a la

cantidad de datos sensados, capacidad de la maquina MMC y la habilidad del operador. En la

Figura 5.32 se pueden observar diferentes posiciones para la toma de datos a partir de los cuales

se obtuvieron las medidas de interés.

Figura 5.33. Registro de datos en la máquina de medición por coordenadas (MMC).

5.2 Discusión

La generación de trayectorias de herramienta para el maquinado de modelos 3D a partir de

formas aproximadas y rectangulares fue posible. La habilidad y desempeño del sistema se probó

mediante la generación de trayectorias de herramienta para seis modelos de geometría y

complejidad variable. Los resultados obtenidos se resumen en la Tabla 5.14 y se discuten en las

siguientes secciones.

5.2.1 Trayectorias de herramienta

Los resultados de las trayectorias de herramienta muestran que la discretización se realizó de

manera adecuada de acuerdo a la calidad de la aproximación de la superficie especificada. La

distancia entre planos de discretización fue de 0.1 mm para todos los modelos, lo que significa

que para modelos con cambios de dirección suaves como el modelo de superficie de forma libre

(Spline), las trayectorias se generan con el error dentro de la tolerancia programada debido a que

la mayor pendiente es menor a 60 grados y la herramienta remueve material con la parte esférica,

Figura 5.34a. Sin embargo, para modelos con superficies verticales como el Gehaeuse, Trial y

Truck, el máximo error con el que se generan las trayectorias es el valor del paso entre planos,

como se muestra en la Figura 5.34b, donde se observa que esta zona es maquinada por el cuerpo

de la herramienta y no por la parte esférica de corte, teniendo una máxima penetración igual al

valor de la distancia entre planos de discretización.

Capítulo 5. Análisis y evaluación del sistema

124

Proceso Operación

Modelo

Gehaeuse Molde Camión Sello

Superficie

forma

libre

Trial

Bounding box

(mm) - 122x45x35 114x106x27 123x62x62 110x130x95 93x80x42 120x40x30

No. Planos de

discretización 450 1 060 620 1 300 800 400

Paso lateral

(mm)

Desbaste 6.6 6.6 6.6 6.6 6.6 6.6

Acabado 0.5 0.5 0.5 1 0.5 0.4

No. Planos de

cálculo de

trayectorias

Desbaste 7 17 10 20 13 7

Acabado 90 212 124 130 160 100

Diámetro

herramienta

(mm)

Desbaste 10 10 10 10 10 10

Acabado 6.35 3.175 6.35 3.175 6.35 6.35

Trayectorias (s) Desbaste 266.594 634.796 410.375 338.72 195.125 133.868

Acabado 802.656 567.5 1 150.5 295.891 1 086.57 948.622

Colisiones (s) Desbaste 0 0 0 250.734 0 0

Acabado 0 0 0 1 426.01 0 0

Pasadas (s) Desbaste 0.016 0.047 0.047 0.046 0.32 0.1

Acabado 0 0 0 0 0 0

Generación de

código (s)

Desbaste 9.562 5.235 11.093 14.407 3.125 1.032

Acabado 2.797 23.359 16.86 13.656 3.453 1.125

Tiempo total (s) Desbaste 276.172 640.078 421.515 603.907 198.922 135

Acabado 805.453 590.859 1 167.45 1 735.56 1 089.61 950.047

No. Segmentos Desbaste 1 348 3 165 2 919 3 345 3 473 1579

Acabado 8 218 27 276 22 770 6 478 33 882 14 779

Longitud de

trayectoria (mm)

Desbaste 20 844 55 473 56 670 119 032 30 308 17 797

Acabado 26 396 42 492 30 341 27 265 24 625 24 457

Tiempo

promedio por

plano de

trayectoria (s)

Desbaste 38.08 37.34 41.035 16.936 15.01 19.124

Acabado 8.9184 2.677 9.278 2.276 6.80 9.48

Tabla 5.14. Resumen de resultados obtenidos de las pruebas.

Capítulo 5. Análisis y evaluación del sistema

125

(a)

(b)

Figura 5.34. Máximo error de discretización.

La última fila de la Tabla 5.14 muestra el tiempo promedio del cálculo de una trayectoria de

herramienta. Este tiempo se calcula dividiendo el tiempo que tarda la generación de las

trayectorias (fila 6) entre el número de planos de trayectoria (fila 4). De la Tabla 5.14 se puede

observar que el tiempo promedio para desbaste de los modelos Gehaeuse, Molde y Camión es

muy similar, sin embargo, para los modelos Sello, superficie de forma libre y Trial el tiempo es

muy similar entre ellos pero casi la mitad del tiempo promedio de los tres primeros, aun cuando

la dimensión del bounding box en la dirección es muy similar en todos los modelos. Esta

diferencia en los tiempos se debe a que para los primeros tres modelos se calculan la trayectorias

sobre la materia prima de forma aproximada y sobre el modelo final, es decir el tiempo total es la

suma de los dos cálculos. En cambio para los tres modelos finales se utiliza una materia prima de

forma rectangular para la cual las trayectorias se calculan numéricamente a partir de la dimensión

de su bounding box y su posición en el sistema global de coordenadas, lo cual es un proceso muy

rápido.

Por otra parte, en el acabado sucede algo diferente que en el desbaste. En este caso los tiempos

por planos para los modelos Gehaeuse, Camión, Superficies de forma libre y Trial son muy

Distancia entre planos, 0.1 mm

Herramienta

Error de discretización

Modelo

Distancia entre planos, 0.1 mm o

error de discretización

Herramienta

Capítulo 5. Análisis y evaluación del sistema

126

similares, pero en los modelos del Sello y el Molde el tiempo es significativamente inferior que

los otros cuatro modelos. Lo anterior se debe a que los modelos del Sello y el Molde utilizan una

herramienta menor que los otros, y cuando se generan las trayectorias se leen todos los planos

que están dentro del área proyectada de la herramienta, por lo tanto entre más pequeña sea la

herramienta menos planos se tienen que leer y el tiempo es menor.

Durante la generación de las trayectorias se define el paso entre trayectorias de herramienta

basado en el error calculado para la cresta, sin embargo, solo se puede calcular para superficies

con pendientes menores a 60º. En el caso de superficies con pendientes mayores el utilizar un

paso constante genera una distribución no uniforme del error debido a la cresta, como se puede

observar en la Figura 5.35. Al igual que durante la discretización este error es máximo cuando el

modelo presenta superficies verticales. En ambos casos esto se resuelve utilizando un paso más

pequeño entre planos, sin embargo esto incrementa el tiempo de cálculo además de que no es

necesario en todo el modelo sino solo donde se requiere. La solución es utilizar un paso adaptivo

entre planos paralelos, tanto para la discretización como para las trayectorias.

Figura 5.35. Distribución no uniforme de la cresta en el maquinado de acabado.

5.2.2 Análisis de colisiones

El análisis de colisiones se realizó para todos los modelos, verificándose su correcto

funcionamiento con el modelo del Sello, el cual tiene una altura mayor que la longitud de la

herramienta y por lo tanto las posiciones de la herramienta que presentan colisiones son

recalculadas para evitar la colisión, Figura 5.17. El tiempo de recalculo de las posiciones es

elevado (mayor al cálculo de las posiciones) ya que para reposicionar se utiliza la misma técnica

que para la generación de trayectorias pero con área proyectada correspondiente al

portaherramientas, la cual es mayor que la correspondiente al diámetro de la herramienta.

Distancia no uniforme entre

trayectorias

Capítulo 5. Análisis y evaluación del sistema

127

5.2.3 Generación de pasadas de herramienta (desbaste)

Las pasadas de desbaste calculadas para la herramienta funcionaron de manera correcta en todos

los modelos; en ninguno caso se presentaron trayectorias que interfirieran con el material de la

pieza final. Además de esto, se logró eliminar el efecto escalera que se obtiene como resultado

del maquinado en capas, incluyendo como pasada de desbaste final la trayectoria que se calcula

inicialmente para el desbaste y a partir de la cual se calculan las pasadas. Aunque se define una

capa de acabado de un valor definido, dicha capa no es constante debido a factores como las

distancia entre trayectorias paralelas y paso en la dirección de maquinado, dejando una especie de

marcas en surcos; sin embargo se mantiene la condición de no remover material que forma parte

de la pieza final.

Por otro lado, se puede observar en los resultados de la Tabla 5.14 que el tiempo de cálculo de las

pasadas de desbaste es muy bajo comparado con las demás funciones. Esto se debe a que el

algoritmo es completamente numérico y está basado en la intersección de líneas. El tiempo

máximo para la generación de las pasadas correspondió al modelo con superficie de forma libre

debido a que contiene el mayor número de segmentos.

5.2.4 Código de maquinado

El código de maquinado generado utiliza solo interpolación lineal con movimientos a velocidad

programada (G01) y movimientos con velocidad máxima (G00). En los modelos utilizados el

código de maquinado se generó de manera correcta, verificándose mediante el maquinado real

del modelo Trial. El código generado está escrito para controles Fanuc. Para el modelo Trial

solamente se utilizaron movimientos con velocidad programada (G01), esto con el fin de actuar

rápidamente en caso de algún error del programa o código CNC durante la ejecución.

El código de maquinado generado en el sistema es genérico para máquinas CNC con control

Fanuc, por lo que es necesario realizar algunos ajustes al código según la máquina utilizada. Uno

de estos ajustes fue el cambio de la posición de la herramienta, ya que por default está

programado para utilizar la herramienta ubicada en la posición 1, H1, y en el caso particular de la

máquina utilizada la herramienta se colocó en la posición número 6 (H6), y previamente se le

asociaron los valores de compensación del radio y longitud de la herramienta a dicha posición.

Otro ajuste fue la configuración del cero pieza o coordenadas de trabajo para que coincidiera con

el utilizado en el programa propuesto, dichas coordenadas de trabajo se ubicaron en la posición

G57. Originalmente el código utiliza la posición de coordenadas de trabajo por el código G58,

por lo que se cambio por el G57 que es donde se guardaron las coordenadas de trabajo. Tanto la

velocidad de avance como el giro del husillo también se modificaron de acuerdo a la experiencia

de las personas que auxiliaron en el proceso de maquinado.

El tiempo estimado por el sistema para el maquinado de desbaste fue de 1hr 25min 54s y el

tiempo real de maquinado fue 47 min, prácticamente la mitad del tiempo estimado. Una de las

principales razones de esta diferencia es porque el tiempo estimado se calcula en base a una

velocidad de avance constante, sin embargo durante el maquinado la velocidad de avance se fue

modificando por medio del control manual del avance de acuerdo a experiencia de las personas

que auxiliaron en el maquinado. Por otro lado, el tiempo estimado de maquinado para el acabado

fue de 2hr 2min 17s, y el tiempo real de este maquinado fue 3hr 7min. A diferencia del desbaste,

en el acabado el tiempo real fue mayor al calculado. En esta operación la velocidad de avance no

se modificó manualmente, es decir, se utilizó la programada. En el caso particular del acabado la

Capítulo 5. Análisis y evaluación del sistema

128

esfera y las aristas del cilindro del modelo maquinado (Trial) están aproximadas por una gran

cantidad de segmentos lineales, por lo que el control de la máquina CNC tiene que calcular la

velocidad de los motores en cada dirección para que el movimiento resultante se ejecute a la

velocidad programada. Además, la máquina CNC se acelera y desacelera en cada segmento,

tardando más tiempo del calculado.

Finalmente la pieza maquinada se midió en una máquina de medición por coordenadas y se

obtuvo que el máximo error obtenido en el modelo fue de 0.0174 mm considerando la tolerancia

especificada. Las principales causas de este error pueden ser: el error de cálculo en la generación

de las trayectorias de la herramienta; la antigüedad de la máquina CNC y por consecuencia el

desgaste de los elementos mecánicos; el error generado durante la medición debido a la cantidad

de datos sensados, la capacidad de la máquina MMC y la habilidad del operador de la máquina.

Conclusiones

129

Conclusiones

Con el presente trabajo de tesis se logró desarrollar un sistema para la generación automática de

trayectorias de herramienta para el maquinado de piezas o componentes a partir de materia prima

con forma regular o con forma aproximada a la final (near net shape). Varios algoritmos para la

generación de trayectorias, tanto para maquinado de desbaste como maquinado de acabado,

fueron propuestos y evaluados, identificándose ventajas y desventajas de cada uno de ellos.

También se desarrolló el algoritmo para la generación del código CNC correspondiente a las

trayectorias de herramienta. La implementación de todos los algoritmos se realizó en la

plataforma HWTesBedApp, la cual está hecha en el lenguaje Visual C++ y utiliza ACIS® como

modelador geométrico. Para probar el sistema y evaluar su desempeño se seleccionaron seis

modelos de forma y complejidad variable, uno de los cuales se llevó hasta el maquinado real en

un sistema CNC. Los resultados demostraron que el sistema desarrollado es efectivo y por lo

tanto puede ser utilizado para la manufactura CNC de componentes a partir de formas regulares o

aproximadas de materia prima. Es importante mencionar que aun cuando el sistema desarrollado

considera la generación del código CNC, las trayectorias de maquinado pueden ser exportadas

para su uso en cualquier otra aplicación tal como prototipado rápido o sistemas robóticos.

Algunas de las conclusiones más relevantes de este trabajo se resumen a continuación:

a) Generación de trayectorias de herramienta

Se presentaron y desarrollaron tres métodos para el cálculo de las trayectorias de herramienta, los

cuales fueron:

1. Offset del modelo CAD

2. Posicionamiento por iteración

3. Discretización de la superficie

De la implementación y análisis de los tres métodos, se obtuvo que los dos primeros solo

funcionan para piezas sencillas, además de presentar la desventaja de tener un tiempo de

procesamiento muy elevado cuando el número de posiciones es grande. Esto se debe

principalmente a que ambos métodos están basados en operaciones booleanas. De la misma

manera, también presentan el inconveniente de solo poder ser utilizados con herramienta de punta

de bola. Ambos métodos resultaron ser opciones poco eficientes para el cálculo de las

trayectorias.

El tercer método está basado en la discretización de la superficie del modelo por medio de

puntos, a partir de los cuales se realiza el cálculo de las posiciones de la herramienta así como el

análisis de colisiones. Con este método el tiempo de cálculo para gran cantidad de posiciones es

bajo comparado con los dos primeros métodos. Además se logró la flexibilidad de utilizar tres

tipos de herramientas, punta de bola, plana y filete, con solamente cambiar un parámetro. La

funcionalidad del algoritmo se demostró mediante el cálculo de trayectorias tanto de desbaste

como de acabado de seis modelos diferentes. Los resultados se validaron mediante el maquinado

real de un componente utilizando las trayectorias calculadas con este método.

Conclusiones

130

b) Generación de pasadas de desbaste

La generación de pasadas de desbaste se basa en la intersección de segmentos de líneas rectas que

forma la trayectoria generada sobre el modelo y líneas horizontales que representan las pasadas.

El tiempo de procesamiento resultó muy bajo debido a que el proceso es completamente

numérico. Además de esto, se logró eliminar el efecto escalera que se obtiene como resultado del

maquinado en capas, incluyendo como pasada de desbaste final la trayectoria que se calcula

inicialmente para el desbaste y a partir de la cual se calculan las pasadas.

c) Análisis de colisiones

El algoritmo propuesto para el análisis de colisiones del portaherramientas se basa en

consideraciones geométricas simples, y no requiere operaciones booleanas las cuales tienen un

alto costo computacional. Al algoritmo se probó utilizando un modelo con una altura mayor a la

longitud de la herramienta. Los resultados mostraron que aquellas posiciones que presentan

colisión son recalculadas hasta obtener posiciones libres de colisiones. Sin embargo, el proceso

resulto más lento que la generación de posiciones de herramienta debido a que para cada posición

analizada se leen todos los puntos que estén dentro del área proyectada del diámetro del

portaherramientas.

d) Generación de código

A partir de las trayectorias de herramienta, desbaste y acabado, se logró la generación del código

CNC para el maquinado de las piezas. Para la validación de las trayectorias de herramienta y

código CNC, se realizo el maquinado real de un modelo a partir de una materia prima rectangular

y utilizando el programa CNC generado por el sistema desarrollado. De acuerdo a la máquina

CNC utilizada, se realizaron algunos ajustes al código generado: número de herramienta

utilizada, la selección adecuada del sistema de coordenadas, así como el cambio de formato

*.TXT y al formato *.NC. Con esto se demostró que el código CNC generado puede fácilmente

ser configurado para diferentes tipos de máquinas y controladores CNC.

e) Evaluación del sistema

El maquinado real de un modelo se realizó en un sistema CNC de tres ejes. Los resultados

obtenidos mostraron que las trayectorias se generan de manera correcta. Para verificar la calidad

de las trayectorias de herramienta generadas, se realizó la medición de la pieza utilizando una

Máquina de Medición por Coordenadas (MMC). Los resultados de dichas mediciones arrojaron

que el máximo error entre lo programado y lo real fue de 0.0174 mm. Se observó que en las

superficies que tienen una pendiente mayor a 60º el error se encuentra fuera de la tolerancia

especificada debido a la distribución no-uniforme de la cresta. Una posible solución a este

problema es seleccionar un paso entre trayectorias más pequeño para disminuir el error en dichas

superficies, sin embargo, en superficies con pendientes menores a 60º se incrementaría el

maquinado redundante volviéndose una solución ineficiente. Otra solución es utilizar un paso

adaptivo de acuerdo a la superficie donde se está generando la trayectoria. Finalmente es

importante mencionar que el error evaluado es el resultado de la suma de los errores a lo largo de

todos los procesos, que incluye la generación de trayectorias, el maquinado y los errores en la

medición.

Conclusiones

131

Trabajo futuro

Con el objetivo de mejorar la capacidad y desempeño en la generación de trayectorias de

herramienta, se identifican los siguientes puntos a desarrollar como trabajo futuro:

1) Optimización de los algoritmos para la generación de trayectorias. El algoritmo actual

tiene la desventaja de re-leer muchas veces los puntos para generar posiciones contiguas,

sobre todo cuando se utiliza un paso pequeño. Esto se traduce directamente en tiempo de

cómputo. El trabajo futuro considera la optimización de este algoritmo, a través de la

predicción de posiciones tomando en cuenta la forma de la superficie.

2) Adaptabilidad de la discretización y de las trayectorias en planos paralelos. Cuando se

presentan superficies con pendientes grandes, entre 60 y 90 grados, el error se maximiza

tanto para la discretización como para las trayectorias en la dirección perpendicular a la

del maquinado. Este problema puede disminuirse considerablemente o eliminarse

utilizando un algoritmo adaptivo en base al error generado en ambos casos.

3) Estrategias de maquinado en contornos. La estrategia de maquinado utilizada en este

trabajo fue zigzag bidireccional por ser la más sencilla de implementar; sin embargo, una

de las estrategias más utilizadas es la de contornos por tener un mejor desempeño. Por

tanto se considera su implementación como trabajo futuro.

4) Interpolación circular. Para disminuir el código de maquinado así como aumentar la

calidad de la superficie se pretende generar códigos de maquinado que utilicen además de

la interpolación lineal la interpolación circular.

5) En este trabajo solo se consideraron aspectos geométricos y cinemáticos del maquinado,

sin embargo, como trabajo futuro se considera el análisis de otros factores dinámicos y

mecánicos que afectan el acabado superficial y la precisión dimensional. Algunos de estos

factores son: desgaste de la herramienta y su compensación mediante la calibración

durante el proceso, vibraciones causadas durante el maquinado debido las fuerzas de corte

y longitud de la herramienta, dureza tanto del material de trabajo como de la herramienta

de corte, así como otros efectos dinámicos.

Referencias

132

Referencias

[1] D.T. Pham, R.S. Gault, “A Comparison of Rapid Prototyping Technologies”, International

Journal of Machine, Tools and Manufacture 38 (1997), pp. 1257-1287.

[2] H. Medellín, “Assembly-Based Rapid Production of Near Net Shape Components through

Octree Decomposition of 3D Models”, Doctoral’s thesis, Heriot-Watt University,

Edinburgh, UK, December 2005.

[3] Mikell P. Groover, “Fundamentals of Modern Manufacturing”, John Wiley and Sons, Inc,

1997.

[4] H. Medellín, J. Corney, J.B.C. Davis, T. Lim, J.M.Ritchie, “Rapid Prototyping Through

Octree Decomposition of 3D Geometric Models”, ASME 2004 Design Engineering

Technical Conferences and Computers and Information in Engineering Conference,

September 28 – October 4, 2004, Salt Lake City, Utah, USA.

[5] Kalpakjian, Schmid, “Manufactura, ingeniería y tecnología”, Prentice Hall, 2002.

[6] John A. Shey, “Procesos de manufactura”, McGraw-Hill, 2002.

[7] Peter Smid, “CNC Programming Handbook ; A Comprehensive Guide to Practical CNC

Programming”, Industrial Press Inc., Second Edition, 2003.

[8] Rotating tools: Milling, SandVik Coromant, 2012.

[9] Zixian Zhang, Maria Savchenko, Ichiro Hagiwara, Bingyin Ren, “3-Axis NC Tool Path

Generation and Machining Simulation for Subdivision Surface of Complex Models”,

International Journal of CAD/CAM 10(2010), pp. 1-9.

[10] Heo, E.Y., D.W. Kim, B.H. Kim, D.K. Jang, F.F. Chen, “Efficient rough-cut plan for

machining an impeller with a 5-axis NC machine.” International Journal of Computer

Integrated Manufacturing, 21(2008), pp. 971-983.

[11] Chuang, L.C., H.T. Young. “Integrated rough machining methodology for centrifugal

impeller manufacturing.” International Journal of Advanced Manufacturing Technology,

34 (2007), pp. 1062-1071.

[12] Dong-Soo Kim, Cha-Soo Jun, Sehyung Park, “Tool path generation for clean-up

machining by a curve-based approach”, Computer-Aided Design 37 (2005), pp. 967–973

[13] Yongfu Ren, Hong Tzong Yau, Yuan-Shin Lee, “Clean-up tool path generation by

contraction tool method for machining complex polyhedral models”, Computers in

Industry 54(2004), pp. 17-33.

[14] Choi Y. K., “Tool path generation and 3D tolerance analysis for free-form surfaces,

Doctoral’s thesis, Texas A&M University, may 2004.

[15] Loney GC, Ozsoy TM. “NC machining of free form surfaces”, Computer-Aided Desing,

19(1987), pp. 85-90.

[16] Daniel C.H. Yang, J.J. Chuang, Z. Han, S. Ding.,”Boundary-conformed toolpath

generation for trimmed free-form surfaces via Coons reparametrization”, Journal of

Materials Processing Technology, 138(2003), pp. 138-144.

[17] Choi JH, Kim JW, Kim K., “CNC tool path planning for multi-patch sculptured surfaces”,

International Journal of Prodcution Research 38(2000), pp.1677-1687.

[18] Elber G. Cohen E., “ Toolpath generation for freeform surface models”, Computer-Aided

Design 26(1994), pp. 490-496.

Referencias

133

[19] Lee SG., Kim HC, Yng MY., “Mesh-based tool path generation for constant scallop-

height machining”, International Journal of Advanced Manufacturing Technology,

37(2008), pp.15-22.

[20] Bobrow JE. “NC machine tool path generation from CSG part representations”,

Computer-Aided Design 17(1985), pp. 69-76.

[21] Huang Y. Oliver JH. “Non-constant parameter NC tool path generation on sculptured

surfaces” International Journal of Advanced Manufacturing Technology 9(1994), pp.281-

290.

[22] Faux I., Pratt MJ. “Computational geometry for design and manufacture” Chichester, UK:

Ellis Horwood, 1980.

[23] Choi BK, “Compound surface modelling and machining”, Computer-Aided Design

20(1988), pp. 127-136.

[24] Hwang JS. “Interference-free toolpath generation in the NC machining of parametric

compound surfaces”, Computer-Aided Design 24(1992), pp. 667-676.

[25] Dong Z. Li H. Vickers GW., “Optimal rough machining of sculptured parts on a CNC

milling machine”, Transaction of the ASME, Journal of Engineering for Industry

115(1993), pp. 424-431.

[26] Lee YS., Choi BK, Chang TC., “Cut distribution and cutter selection for sculptured

surface cavity machining”, international Journal of Production Research 30(1992),

pp.1447-1470.

[27] Li H, Dong Z, Vickers GW., “Optimal toolpath pattern identification for single island,

sculptured part rough machining using fuzzy pattern analysis”, Computer-Aided Design

26(1994), pp.787-795.

[28] Han ZL., Yang DCH., “Iso-phote based tool path generation for machining free-form

surfaces”, Journal of Manufacturing Science and Engineering, ASME Transaction1

121(1999), pp. 656-664.

[29] Suresh, K. Yang, D.C.H., “Constant scallop-height machining on free-form surface”,

ASME journal of Engineering for Industry, 116(1994), pp. 253-259.

[30] Lin, R.S., Koren, Y., “Efficient tool-path planning for machining free-form surfaces,

Transaction of the ASME- Journal of Engineering for industry, 118(1996), pp. 20-28.

[31] Feng, H.Y., Li, H., “Constant scallop-height tool path generation for three-axis sculptured

surface machining”, Computer-Aided Design, 34(2002), pp. 647-654.

[32] Yoon, J.H., “Fast tool path generation by scallop-height method for ball-end milling of

sculptured surfaces”, International Journal of Production Research, 43(2005), pp. 4989-

4998.

[33] Choi B., Jerrard R., “Sculptured Surface Machining: Theory and Applications”, Kluwer

Academic Publishers, 1998.

[34] Tao Chen, Zhiliang Shi, “A tool path generation strategy for three-axis ball-end milling of

free-form surfaces”, Journal of Materials Processing Technology, 208(2008), pp. 259-263.

[35] Vivek Pal Singh, “Tool Path Planning for 3-axis NC-milling Lathe and 3-axis NC-vertical

Milling for Sculptured Surfaces Machining Using Triangular Mesh Offset”, Master’s

thesis, Mechanical Engineering Department, Thapar University Patiala, 2009.

[36] Kondo, T., Kishinami, T., Saito, K. “Machining system based on Inverse Offset Method",

Journal of Japan Society of Precision Engineering 54(1988), pp. 971-976.

[37] F. Eugenio López G., Rafael Colás O., Francisco Ramírez C., Klaus Rall, “Generación de

código de maquinado en 3D para modelos basados en mallas”, Ingenierías 4(2001), pp.

13-20.

Referencias

134

[38] Maqsood Ahmed Khan, “Piecewise Arc-Length parameterized NURBS Tool Paths

Generation for 3-Axis CNC Machining of Accurate, Smooth Sculptured Surfaces”,

Doctoral’s thesis, Concordia University Montreal Quebec, Canada, 2010.

[39] D.C.H. Yang, Z. Han, “Interference detection and optimal tool selection in 3-axis NC

machining of free-form surfaces” Computer-Aided Design 31 (1999), pp. 303-315.

[40] Wright P. K., Dornfeld D., Sundararajan V., Mishra D., “Tool Path Generation for Finish

Machining of Freeform Surfaces in the Cybercut Process Planning Pipeline”, Transactions

of the North American Mfg. Research Institution of SME 2004, 32 (2004), pp. 159-166.

[41] Kim B. H., Choi B. K., “Machining efficiency comparison direction-parallel tool path

with countour-parallel tool path”, Computer-Aided Design 34 (2002), pp. 89-95.

[42] Lasemi A., Xue D., Gu P., “Recent development in CNC machining of freeform surfaces:

A state-of-the-art review” Computer-Aided Design, 42 (2010), pp. 641-654.

[43] B. K. Choi, C. S. Jun, “Ball-end cutter interference avoidance in NC machining of

sculptured surface”, Computer-Aided Design, 21 (1989), pp. 371-378.

[44] Y. S. Suh and K. Lee, “NC milling tool path generation for arbitrary pockets defined by

sculptured surfaces”, Computer-Aided Design, 22 (1990), pp. 273-284.

[45] S. Ding, M. A. Mannan, A. N. Poo, D.C.H. Yang, Z. Han, “Adaptive iso-planar tool path

generation for machining of free-form surfaces”, Computer-Aided design 35 (2003), pp.

141-153.

[46] Lai J. Y., Wang D. J., “A strategy for finish cutting path generation of compund surfaces”,

Computers in Industry, 25 (1994), pp. 189-209.

[47] Frank, M., Joshi, S. B., Wysk, R. A., “CNC-RP: A Technique for Using CNC Machining

as a Rapid Prototyping Tool in Product/Process Development”, Proceedings of the 11th

Annual Industrial Engineering Research Conference, Orlando, Florida, May 2002, pp.19-

22.

[48] Dragan M., Milos G., Nikola S.,Zoran D., Sasa Z., Branko K., Ljubodrag T.,

“Reconfigurable Robotic Machining Sytem Controlled and Programmed in a Machine

Tool Manner”, Springer-Verlag London Limited 2010. September 2010..

[49] Choi Y. K., “Tool path generation and 3D tolerance analysis for free-form surfaces,

Doctoral’s thesis, Texas A&M University, may 2004.

[50] Kai Tang, Shuo-Yan Chou and Lin-Lin Chen, “An algorithm for reducing tool retraction

in zigzag pocket machining”, Computer-Aided Design 30 (1998), pp. 123-129.

[51] Misra, D., Sundararajan, V., Wright, P. K., “Zig-Zag Tool Path Generation for Sculptured

Surface Finishing”, Dimacs Series in Discrete Mathematics and Theoretical Computer

Science 67 (2005), pp. 265-280.

[52] Ren, Lan, Ajay Panackal Padathu, Ruan, Jianzhong, Sparks, Todd and Liou, Frank W.,

“Three dimensional die repair using a hybrid manufacturing system,” Proceedings of the

Seventeenth Annual Solid Freeform Fabrication Symposium, Austin, TX, August 14-16,

2006.

[53] F. Eugenio López G., Rafael Colás O., Francisco Ramírez C., Klaus Rall, “Generación de

código de maquinado en 3D para modelos basados en mallas”, Ingenierías 4 (2001), pp.

13-20.

[54] W.C. Tse, Y.H. Chen, “A robotic system for rapid prototyping”, proceedings 1997 IEEE

International Conference on Robotics and Automation, Albuquerque, New Mexico, April

1997.

[55] Circle through three points. Año de consulta 2012. http://shuisman.com/?p=361.

Referencias

135

[56] D'Souza RM, Sequin C, Wright PK, “Automated tool sequence selection for 3-axis

machining of free-form pockets” Computer-Aided Design 36 (2004), pp. 595-605.

[57] Lee YS, Choi BK, Chang TC, “Cut distribution and cutter selection for sculptured surface

cavity machining”, International Journal of Production Research 30 (1992), pp. 1447

1470.

[58] Wang Y, Ma HJ, Gao CH, Xu HG, Zhou XH, “A computer aided tool selection system for

3D die/mould-cavity NC machining using both a heuristic and analytical approach”,

International Journal of Computer Integrated Manufacturing 18 (2005), pp. 686-701.

[59] Peter Smid, “Fanuc CNC Custom Macros: Programming Resourses for Fanuc Custom

Macros B Users”, Industrial Press, Inc. 2005.

[60] Francisco Cruz Teruel, “Control Numérico y Programación”, Alfaomega, 2007.

[61] Spatial Technology Inc., Three-Space, Ltd., and Applied Geometry Corp., 2425 5th Street

Building A, Boulder, CO 80301-5740. ACIS® Geometric Modeler, version7.0.

[62] SANDVIK, Coromant, Cutting tools from Sandvik Coromant, 2012.

Apéndices

136

Apéndices

A. Códigos G

Códigos G Función

G00

G01 G02

G03

G04

G09 G10

G11

G17 G18

G19

G20 G21

G27

G28 G29

G30

G31 G33

G39

G40

G41 G42

G43

G44 G49

G50 G51

G54

G55

G56 G57

G58

G59 G60

G61

G62

G63

G64

G65

Avance rápido

Interpolación lineal (avance de maquinado) Interpolación circular horaria

Interpolación circular anti-horaria

Espera para la puerta de la fresadora

Parada exacta Colocar el cero del programa

Cancelar modo cero del programa

Seleccionar plano XY Seleccionar plano ZX

Seleccionar plano YZ

Entrada de datos en pulgadas Entrada de datos en milímetros

Chequear el cero de máquina o la posición de

referencia (home)

Ir a la posición de referencia de la máquina (home) Regresar al punto de referencia

Regresar al segundo punto de referencia

Saltar una función Corte para rosca

Interpolación circular en esquinas

Cancelar compensación en el corte

Compensación en el corte a la izquierda Compensación en el corte a la derecha

Compensación en la longitud de la herramienta

Compensación en la longitud de la herramienta Cancelar compensación en la longitud de la

herramienta

Cancelar la escala Escala

Selección del sistema 1 de coordenadas de trabajo

Selección del sistema 2 de coordenadas de trabajo

Selección del sistema 3 de coordenadas de trabajo Selección del sistema 4 de coordenadas de trabajo

Selección del sistema 5 de coordenadas de trabajo

Selección del sistema 6 de coordenadas de trabajo Posición en una sola dirección

Parar modo exacto

Sistema de control en el modo automático en las esquinas

Modo de roscado

Modo de corte

Llamado de marcos

Apéndices

137

G66

G67

G68

G69 G73

G74

G76 G80

G81

G82

G83 G84

G85

G86 G87

G88

G89 G90

G91

G92

G94 G95

G98

G99

Esperar señal

Esperar cancelación de la señal

Coordinar rotación

Cancelar coordinar rotación Avance rápido en el ciclo de perforado

Ciclo de perforado con velocidades de corte

Roscado Cancela el ciclo

Ciclo de perforado sencillo

Taladrado con tiempo de espera en el fondo

Profundidad del agujero en el ciclo de perforado Ciclo de roscado

Ciclo para ampliar agujeros

Ciclo para ampliar agujeros Regresar al ciclo de ampliar agujeros

Ciclo de ampliar agujeros

Ciclo de ampliar agujeros Coordenadas absolutas

Coordenadas increméntales

Desplazamiento hasta el origen del sistema

Velocidad de avance en mm / min Velocidad de avance en rev / min

Regresar al nivel inicial

Regresar al punto R

Apéndices

138

B. Códigos M

Códigos M Función

M00 M01

M02

M03

M04 M05

M06

M07 M08

M09

M10

M11 M13

M14

M15 M19

M20

M21 M22

M23

M27

M28 M29

M30

M31 M37

M38

M39 M40

M41

M48

M49 M62

M63

M64 M65

M66

M67

M68 M70

M71

M73 M76

Para el programa Parar opcionalmente

Reset programa

Encender Husillo horario

Encender husillo anti-horario Apagar el husillo

Cambio automático de herramienta

Refrigeración “B” on Refrigeración “A” on

Apagar refrigeración

Abrir Prensa

Cerrar prensa Husillo hacia delante y refrigerante encendido

Husillo hacia atrás y refrigerante encendido

Programa de entrada usando MIN P Orientación del husillo

ATC Coger herramienta

ATC Sacar herramienta ATC Bajar herramienta

ATC Subir herramienta

Reset el carrusel al bolsillo uno

Reset el carrusel en la posición del bolsillo Seleccionar DNC modo

Reset y Reactivar programa

Incrementar conteo de partes Abrir la puerta en una parada

Abrir puerta

Cerrar puerta Extender atrapado de partes

Retraer atrapado de partes

Mirar porcentaje de avance al 100%

Cancelar M48 Salida auxiliar 1 encendida

Salida auxiliar 2 encendida

Salida auxiliar 1 apagada Salida auxiliar 2 apagada

Esperar la salida auxiliar 1 encendida

Esperar la salida auxiliar 2 encendida

Lleva al robot a la posición Home Espejo en X encendido

Espejo en Y encendido

Espejo en IV encendido Esperar la salida auxiliar 1 apagada