Actualmente tengo cuatro programas para enrutar esencialmente la misma pieza. Necesito versiones diferentes porque, dependiendo de los métodos de carpintería y fabricación, a veces se añaden u omiten ciertos caminos. Si tuviera una manera de hacer que la máquina ignorara ciertas líneas, sólo necesitaría un programa para producir estos cuatro productos ligeramente diferentes.
Respuestas del foro
(Foro CNC)
Del colaborador C:
Sí, debería haber un carácter que haga que se ignore una línea. Por ejemplo, Biesse utiliza el punto y coma; personaje. Consulte su manual de programación; creo que esto será diferente para cada código de máquina.
No todos los controles CNC admiten la omisión de bloques. En los controles compatibles con Fanuc, este carácter se puede colocar en cualquier lugar dentro de una línea de código para obtener resultados específicos.
2) Otro método consiste en modificar la línea para que el control CNC la trate como un comentario legible por un hombre en lugar de una línea de código a ejecutar.
Al eliminar una o dos líneas, es posible que también tenga que agregar una o dos líneas dependiendo de lo que esté haciendo el enrutador en ese momento, como movimientos rápidos, movimientos de altura Z, etc. El uso de programas de computadora para generar el código g por usted era ayudar a acelerar las cosas y ayudar a eliminar errores. Me parece que estás dando un paso atrás.
Primero, para cada operación o ruta de la máquina, cree una etiqueta con . Instrucción (punto) delante de cada operación/ruta, por ejemplo .TOEKICK .HOLE .DADO, etc.
Al final de esas operaciones ponga GOTO END y al final del programa cree la etiqueta .END
Ahora, al comienzo del programa use la instrucción GOTO y en el siguiente campo escriba el nombre de la operación que desea realizar. Ejemplo:
IR A PIE DEL PIE.
La ejecución del programa se verá así:
la computadora lee la primera línea y salta a la etiqueta que especificó con la instrucción GOTO, la máquina ejecuta el código hasta GOTO END y salta a la etiqueta .END, final del programa. Si necesita dos o tres operaciones, simplemente escriba el nombre/etiqueta de esa operación en el campo GOTO en lugar de .END. Ejemplo:
IR AL PIE DEL PIE
GXX...
GXX...
IR A DATOS
Su control puede tener un vocabulario diferente, pero la lógica es la misma y veo dónde podría usar esto si, por ejemplo, tiene programas largos y lleva mucho tiempo eliminar todas las líneas de código que no necesita y copiar. todos los programas, etc.
Descubra si su controlador acepta comandos como la declaración GOTO y el siempre importante IF THEN. Luego configuré el mismo programa con 2 a 5 líneas al principio que se ven así:
VARA=1 (toe kick 1=yes 0=no)
VARB=0 (agujeros para pasadores 1=sí 0=no)
VARC=1 (dorso atrás 1=sí 0=no)
Una vez que su código esté escrito para todas sus rutas/operaciones de corte, puede hacer que la máquina omita lo que no desea agregando IF THEN algo como:
SI VARA=0 IR A Línea X
*ruta de corte de patada*
Línea X
(si el operador cambia VARA a 1, recibirás una patada en el dedo del pie)
Esa es una explicación básica, pero espero que entiendas la idea. Nuevamente, esto depende de si su controlador admitirá ese estilo de programación (creo que la mayoría lo admite).
Ahora su operador puede editar sólo unos pocos valores al inicio y el cuerpo del programa permanece inalterado, lo que minimiza el riesgo de errores mencionados anteriormente.
Esta también es una herramienta extremadamente poderosa una vez que la aprendes para cosas como círculos, formas simples y operaciones de mecanizado.
Disponemos de una minúscula memoria en nuestro controlador (FANUC), pero guardamos en todo momento programas como:
CUALQUIER CÍRCULO
CUALQUIER PUERTA
CUALQUIER RECORTE CUADRADO
CUALQUIER GROMMET
etc.
A los chicos en el banco les encanta porque pueden pedirle al operador que corte rápidamente una forma o haga un recorte en 30 segundos con algunos números. No tienen que molestar al programador (yo) y esperar hasta que tenga tiempo. Herramienta muy poderosa. Realmente puedes hacer algunas partes bastante sofisticadas de esta manera si tienes paciencia para escribir el código. A veces es un poco difícil depurar al principio, pero una vez que funcionan, es muy satisfactorio. Obviamente, los programas más sofisticados no solo usan 0 y 1 para sí o no, sino que en realidad pueden ser valores para largo y ancho, etc. También puede hacer que el programa realice una determinada serie de operaciones ingresando solo 1 variable igual, por ejemplo, del 1 al 4 (personalmente nunca me gustó ese método, pero funciona).
%
O6008 (CUALQUIER ESTANTE)
#120=100 (DIST DE LA PARADA DERECHA)
#121=130 (PARADA DELANTERA A LA PRIMERA FILA)
#122=400 (PARADA DELANTERA A LA SEGUNDA FILA)
#123=15 (NÚMERO DE AGUJEROS)
G17 G90 G21 G40 G80
#133=#123-1
M68
G08 P1
M06
'(OP 1 HERRAMIENTA TALADROS 6100000 T6 100000)
'(DIÁMETRO DE LA HERRAMIENTA 7, DIÁMETROS DEL ORIFICIO 7)
G91 G28 Z0
M21
N1 (PERFORACIÓN EN LÍNEA - FILA SUPERIOR DE TALADROS)
(UTILIZANDO EL EJERCICIO 1)
G52 X-[#130*32]
M88 T1
G90 G0 G55 X-[#120+111] Y-[1489-#121] Z75.
G98 G81 Z5. 30€. F2000.
X-[#120+111] Y-[1489-#122]
G80T0
SI [#130EQ#133] IR A 5
#130=[#130+1]
IR A 1
N5G17G91G28M95
G52 X0Y0Z0
M92
G08 P0
M07
M69
G91 G28 Z0
G28 X0Y0
M30
%
(Vale la pena señalar que en este controlador FANUC, cualquier elemento en () es solo una nota del operador y se ignora, al igual que las líneas que comienzan con el símbolo '.)
Se vuelve divertido cuando te das cuenta de que puedes convertir diez programas en un programa de una o mil líneas en un programa de 40 líneas. Estamos limitados a ocho caracteres en los nombres de nuestros programas. Creo que he llegado a lo matemático con un número limitado de programas (y de imaginación).
O2081
N5 (PROGRAMA#:
2081)
N10 (PROGRAMADO POR:
)
N15 (CREADO EL 25/02/04 A LAS 14:
02:
46)
N20 (HUSILLO DE ENRUTADORA #3 12.7 DN 38 LARGO)
N25 M98 P8000 (INICIO)
N30 G52 Z19.0
N35 M98 P8201 (MESA Y)
N40 G90
IR A N125
N45#500=12
N50#501=2048
N55 M98 P8104 (TALADRO)
N60 G0 G90 X-713.0 Y-1114.0
N65 Z25.0
N70 G1 X-713.0 Y-1114.0 Z-19.5 F5000.0
N75 G0 X-713.0 Y-1114.0 Z25.0
N80 G0 X-713.0 Y-1464.0 Z25.0
N85 G1 X-713.0 Y-1464.0 Z-19.5 F5000.0
N90 G0 X-713.0 Y-1464.0 Z25.0
M75
M27
G0 X-2500 Y-250
M0 (PAUSA)
N125 (CONTORNO:
20040225.14014753)
N130 T13
N135 M98 P8101 (ENRUTADOR#3)
N140 S16000
N145 G0 X-586.57 Y-1323.96 Z25.0
N150 G1 X-586.57 Y-1323.96 Z6.0 F4500.0
Etc.
Etc.
Podrías poner el GOTO en cualquier lugar. Y podrías usar más de uno en un programa.
Estoy de acuerdo sobre el poder de usar variables. Creé un programa de embutir de bisagras para puertas de paso que tiene variables para el tamaño de la puerta, el tamaño de la bisagra, incluido el grosor de las hojas, y también variables para la ubicación de las bisagras en función de la distancia desde la parte superior e inferior de la puerta. y el número de bisagras. Un programa, muchas combinaciones. El operador sólo necesita ingresar las variables.
Te daré un ejemplo. En la universidad teníamos Weeke PTP con una agradable operación de perforación que hace referencia a la posición media de la fila de agujeros. Si tuviera 7 hoyos, el número 4 sería la posición que necesita ingresar. Esto es útil si desea tener una fila de orificios para estantes ajustables centrados entre dos ranuras o simplemente centrados en el panel para que haya la misma distancia desde el orificio inferior hasta el borde y la misma para el lado opuesto.
No tengo esa opción para las máquinas Morbidelli, al menos no pude encontrar ninguna. Entonces he creado algo como esto:
;Creado por Mirko M.
;
L PRIMERO =pI
L SEGUNDO =pJ
L LX = SEGUNDO-PRIMERO
LHX =pH
L POLA =LX/2
L XRAZ = px
LB =((HX-1)*XRAZ)/2
L BOR =((LX/2)-B)+PRIMERO
;
BO X=BOR Y=pY Z=pZ D=pD N=pN R=HX x=px y=py G=pG V=pV L=pL
La última línea de código es la ejecución real del código. Cuando ejecuto esta macro, todo lo que tengo que hacer es ingresar las posiciones de mis puntos de referencia superior e inferior y cuántos agujeros quiero entre ellos.
Ejemplo:
C
La fila de 7 agujeros estará centrada entre I=100 y J=700.
Pocas matemáticas al principio ahorran muchas matemáticas en el futuro.
PD:
Si algunos de ustedes, usuarios de Xilog, quieren usar esto, pueden hacerlo. Es posible que tengas que modificar tu archivo CYC.msg después de compilar esta macro porque agregué un par de líneas de código en el mío.
Colaborador J, debe comunicarse con AlphaCAM para obtener el VBA para los materiales de capacitación de AlphaCAM. Son una gran cantidad de información. También puede utilizar el archivo de ayuda de la API AlphaCAM. AlphaCAM ya no admite las macros paramétricas heredadas, por lo que si va por ese camino ahora, sería prudente que lo reconsidere. Algunas cosas serán simplemente imposibles de hacer con el antiguo lenguaje de macros paramétrico de AlphaCAM. Solo se deja en el producto para uso heredado limitado.