Este foro utiliza cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; Las cookies establecidas por este foro solo se pueden utilizar en este sitio web y no representan ningún riesgo para la seguridad. Las cookies de este foro también rastrean los temas específicos que ha leído y cuándo los leyó por última vez. Confirme si acepta o rechaza la configuración de estas cookies.

Se almacenará una cookie en su navegador independientemente de su elección para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de las cookies en cualquier momento utilizando el enlace en el pie de página.

Calificación:
  • 1 voto(s) - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Cursillo de código G
#6
Programación avanzada

Pero si miramos el programa que hemos escrito un poco más al detalle:

(cortamos los 4 agujeros del exterior)
G0 X80 Y10
G0 Z2
G1 Z0 F30
G42 G1 X82.1 F800
G2 X82.1 Y10 I-2.1 J0
G40 G1 X80
G0 Z40

G0 X80 Y50
G0 Z2
G1 Z0 F30
G42 G1 X82.1 F800
G2 X82.1 Y50 I-2.1 J0
G40 G1 X80
G0 Z40

Estás líneas se repiten siempre manera similar, son muy parecidas. Y solo tenemos 4 agujeros, imagina que hay 100 agujeros - tenemos que escribir un montón de estas líneas siempre iguales. Es un trabajo aburrido y con tantas cifras podemos hacer errores.

También en otras partes del programa podemos facilitar las cosas.
Pero empezamos de cero.
El lenguaje de código G nos permite hacer cálculos.
Probamos el siguiente código:
G0 X20 Y20
G0 X=X+10 Y=Y +20

Exactamente. Podemos calcular en todos los valores. Podemos usar  ,-,*,/ y más SIN(), COS() SQRT().
Podemos escribir fórmulas como G1 X=SIN(Y*20) por ejemplo.
Para completar esto, tenemos también variables.
¿Y que es una variable?
Es una memoria para almacenar un valor numérico.
Las variables tienen un nombre, por ejemplo #5.
Si queramos guardar en una variable algo, escribimos #5=10.
A partir de ahora y hasta que cambiemos la variable #5 tiene el valor 10.

Vamos al ejemplo de agujeros de arriba. Escribimos una cosa así:
%
#0=80
#1=10
#2=4.2
#3=0
G0 X=#0 Y=#1
G0 Z=#3
G1 Z=#3 F30
G42 G1 X=X (#2/2) F800
G2 X=#0 (#2/2) Y=#1 I=-1*(#2/2) J0
G40 G1 X=#0
G0 Z40

A la primera vista mucho más complicado que lo anterior. Pero solo a la primera vista. Explicamos la cosa paso por paso:
Para un círculo el punto P1 y el Punto P2 de un arco son iguales, punto de inicio y punto final. En el variable #0 guardamos la coordenada X y en el variable #1 la coordenada Y de este punto.
El radio no es muy fácil de manejar, así guardamos en el variable #2 el diámetro del circulo.
Y al final en la variable #3 la profundidad, a que queramos hacer el agujero.

En la primera línea vamos al centro del circulo,
G0 X=#0 Y=#1 es igual que G0 X80 Y10
En la próxima línea vamos a la altura 2mm más alto que la profundidad, para no tocar el material, que sea 1mm.
En la línea después pasamos dentro del material:
G1 Z=#3 F30 es igual que G1 Z0 F30
La línea G42 G1 X=X (#2/2) F800 es igual que G42 G1 X82.1 F800.
Y la línea G2 X=#0 (#2/2) Y=#1 I=-1*(#2/2) J0 es igual que G2 X82.1 Y10 I-2.1 J0
Al final G40 G1 X80
 - y miramos, es el mismo código como en el ejemplo anterior.
¿Pero para que necesitamos una cosa tan complicada?


Escribimos un programa así:


%
G40 G54
#2=4.2
#3=0
#0=10
#1=10
M6 T1
M3 S30
M98 P1000
#0=80
M98 P1000
#1=50
M98 P1000
#0=10
M98 P1000
M5
M2

O1000 (Agujeros)
(in: #0=X, #1=Y)
(    #2=diámetro)
(    #3=profundidad)
G0 X=#0 Y=#1
G0 Z=#3
G1 Z=#3 F30
G42 G1 X=X (#2/2) F800
G2 X=#0 (#2/2) Y=#1 I=-1*(#2/2) J0
G40 G1 X=#0
G0 Z40
M99

Guardamos y miramos a la pantalla. Vemos 4 agujeros, con corrección de radio, perfectamente en las esquinas.
El programa ya está mucho más claro. Podemos añadir muchos agujeros más y todavía está muy claro escrito.

En detalle:
Al inicio del programa ponemos a la variable #2 el diámetro de los agujeros y a la variable #3 la profundidad. Como todos los agujeros son iguales no cambiamos estos valores en el programa.
Empezamos con el primer agujero en la esquina inferior izquierda. X=10, Y=10 y por esto ponemos a la variable #0=10 y #1=10.
Ya tenemos una orden nueva. El Subprograma. Con M98 P1000
llamamos al subprograma con el número 1000.
El subprograma es exactamente el programa que hemos escrito antes. Solo que ya no hace falta asignar valores a las variables, porque ya lo hemos hecho en el programa principal.

Un subprograma tiene esta forma:
O1000 => O indica que es un Subprograma, 1000 es un número de identificación, que podemos elegir como nos guste.
M99 => Es el salto al programa principal, fin de subprograma.

En la línea M98 O1000 saltamos directamente a la primera línea del subprograma G0 X=#0 Y=#1 y cuando llegamos a la línea M99 saltamos al programa principal a la línea después de la llamada del subprograma, que esta #0=80.

Es importante que terminemos el programa principal con M2 o M30, para que no lleguemos de manera indeseada al subprograma después del fin del programa principal.

¿Que ventajas tiene este tipo de programación?

1. Como vemos, es mucho más fácil en el programa principal.
2. Los subprogramas podemos guardarlos para la próxima vez.
3. Si cambiamos la herramienta no pasa nada - la corrección del radio se hará automáticamente.
4. Si necesitamos agujeros más grandes/pequeñas cambiamos solo una línea: #2=4.2 => #2=5.0 por ejemplo.
5. Si necesitamos más agujeros solo hace falta añadir al programa principal las coordenadas de los centros.
Saludos,
Ingolf (TecnoWorld)

https://www.youtube.com/@tecno-world
_______________________________________________________
Kitamura Super Mini 300, Torno CNC con Speed-Cube y Beamicon2, Fresadora CNC con Beamicon2, Laser YAG, Laser CO2 con Triple Beast y Beamicon2, Prensa 100t, cabina chorro de arena, máquina de soldar SMT a vapor


Mensajes en este tema
Cursillo de código G - por Admin - 10-09-2020, 05:34 PM
RE: Cursillo de código G - por Admin - 10-09-2020, 05:35 PM
RE: Cursillo de código G - por Admin - 10-09-2020, 05:36 PM
RE: Cursillo de código G - por Admin - 10-09-2020, 05:38 PM
RE: Cursillo de código G - por Admin - 10-09-2020, 05:38 PM
RE: Cursillo de código G - por Admin - 10-09-2020, 05:39 PM

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)