20 LBL 10
21 CYCL DEF 7.0 PUNTO CERO
22 CYCL DEF 7.1 X+Q1
23 CYCL DEF 7.2 Y+Q2
24 CYCL DEF 10.0 GIRO
25 CYCL DEF 10.1 ROT+Q8
26 Q35 = (Q6 - Q5) / Q7
27 Q36 = Q5
28 Q37 = 0
29 Q21 = Q3 * COS Q36
30 Q22 = Q4 * SIN Q36
31 L X+Q21 Y+Q22 R0 FMAX M3
32 L Z+Q12 R0 FMAX
33 L Z-Q9 R0 FQ10
34 LBL 1
35 Q36 = Q36 + Q35
36 Q37 = Q37 + 1
37 Q21 = Q3 * COS Q36
38 Q22 = Q4 * SIN Q36
39 L X+Q21 Y+Q22 R0 FQ11
40 FN 12: IF +Q37 LT +Q7 GOTO LBL 1
41 CYCL DEF 10.0 GIRO
42 CYCL DEF 10.1 ROT+0
43 CYCL DEF 7.0 PUNTO CERO
44 CYCL DEF 7.1 X+0
45 CYCL DEF 7.2 Y+0
46 L Z+Q12 F0 FMAX
47 LBL 0
48 END PGM ELLIPSE MM
TNC 320 de HEIDENHAIN
Subprograma 10: Mecanizado
Desplazar el punto cero al centro de la elipse
Calcular la posición angular en el plano
Calcular el paso angular
Copiar el ángulo inicial
Fijar el contador de cortes
Calcular la coordenada X del punto inicial
Calcular la coordenada Y del punto inicial
Llegada al punto inicial en el plano
Posicionamiento previo a la distancia de seguridad en el eje de hta.
Desplazamiento a la profundidad de mecanizado
Actualización del ángulo
Actualizar el contador de cortes
Calcular la coordenada X actual
Calcular la coordenada Y actual
Llegada al siguiente punto
Pregunta si no está terminado, en caso afirmativo salto al LBL 1
Anular el giro
Cancelar el desplazamiento del punto cero
Llegada a la distancia de seguridad
Final subprograma
369