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 * SEN 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 * SEN 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 R0 FMAX
47
LBL 0
48
END PGM ELIPSE MM
TNC 310 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 tramos
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 tramos
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
Anular el desplazamiento del punto cero
Llegada a la distancia de seguridad
Final del subprograma
179