Ejemplos de códigos paramétricos para CNC

El principiante de CNC recibe ayuda para codificar datos paramétricos. 17 de marzo de 2005
Pregunta
Me preguntaba si alguien tenía un programa CNC de muestra que utilizara programación paramétrica. Pedí un nuevo enrutador CNC Biesse y actualmente estoy aprendiendo programación CNC con un libro. Desafortunadamente, no tiene ningún código paramétrico y esta es una de las cosas que me interesan. ¿Alguien tiene algún código de muestra o enlaces a sitios que tengan código de muestra? Respuestas del foro
(Foro CNC) Del colaborador A:

Paramétrico no es código. Son fórmulas matemáticas simples. Si compró una máquina nueva de Biesse, recibirá capacitación en Carolina del Norte, donde le enseñarán esto. ¿Qué máquina compraste?

Del interrogador original:

Entiendo que la programación paramétrica no es código sino parte del estándar ISO. He comprado el Rover B FT. Vivo en Irlanda y, como tal, no existe una formación estructurada. Se brindará capacitación una vez que llegue la máquina, pero no deseo esperar hasta que llegue para comenzar a aprender los conceptos básicos de la programación paramétrica.

Imagínese:
no tengo una máquina y un libro que enseña programación CNC basada en el formato ISO (sin códigos paramétricos ni muestras). Una vez que domine este libro, quiero presentarme a la programación CNC paramétrica. ¿Alguien puede proporcionar algunos ejemplos (no me importa el resultado, solo quiero ver las fórmulas utilizadas) o referencias a sitios web que muestren ejemplos o los conceptos básicos para este tipo de programación CNC? Gracias de antemano por cualquier ayuda.


Del colaborador C:

Como ya se ha dicho, las fórmulas matemáticas son la base de la parametría. Por ejemplo:
si necesitara realizar una operación en x = 1000 en un material de tamaño DX = 1220, podría escribir x = DX-220. Luego podría usar este programa en un material de diferente tamaño y, cambiando el valor DX en el encabezado, mantener la operación en DX-220 sin entrar al programa para modificar los valores absolutos, es decir, si DX = 820 entonces se realizaría la operación. en x = 600.

Espero que eso tenga sentido para alguien que no sea yo. Este ejemplo es tan básico como parece, pero las posibilidades son infinitas.


Del interrogador original:

Encontré esta muestra en un par de sitios. Parece ser un buen ejemplo simple, pero debería ayudar a cualquiera como yo que quiera saber más sobre programación paramétrica.

O0001 (Número de programa)
#100=1. (Diámetro de la fresa)
#101=3.0 (posición X del agujero)
#102=1.5 (posición Y del agujero)
#103=.5 (Profundidad del agujero avellanado)
#104=400 (Velocidad en RPM)
#105=3.5 (Avance en IPM)
#106=3. (Número de compensación de longitud de herramienta)
#107=2.0 (Diámetro del agujero avellanado)
G90 G54 S#104 M03 (Seleccionar modo abs, sistema de coordenadas, iniciar husillo)
G00 X#101 Y#102 (Rápido al centro del agujero)
G43 H#106 Z.1 (Instaurar compensación de longitud de herramienta, aproximación rápida a la posición Z)
G01 Z-#103 F[#105 / 2]
Y[#102 + #107 / 2 - #100 / 2] F#105
G02 J-[#107/2 - #100/2]
G01 Y#102
G00 Z.1
M30

Si la gente continúa agregando ejemplos a esta publicación, podría convertirse en una referencia útil para las personas que desean aprender un poco de programación CNC paramétrica, ya que parece haber una falta de código de muestra disponible.


Del colaborador D:

Este es un ejemplo de un programa paramétrico básico para un Biesse Rover FT con control XNC. (Tenga en cuenta que las líneas inicial y final se han eliminado para mayor claridad).

N10 G70 HC=1 LY=20 PLPZ=0,75 FIL=0 BLO=0 ACC=0 RUO=0 PRS=1 PRL=1 Z=PRK KA=0,000 LZ=0,750 LX=80
N30 RR=6 TX=4 TY=3

N50 X97.25 Y-0.5 TP=1 PRF=0.752 L=PON F=22.9 VF=3. S=18000 G41 G46 TRZ=0 M55
N60 G1 X97 Y-0,25 F22,9
N70 X.25 G1
N80 Y=LPY-TY-.25 G1
N90 X=TX+.25


N100 Y=LPY-.25
N90 X=LPX-RR+.25 G1
N100 X=LPX+.25 Y=LPY-RR-.25 I=LPX-RR+.25 J=LPY-RR-.25 G2
N110 X=LPX+.25 Y-.25 G1
N120 G1 G40 X=LPX+.5 Y-.5 ZI0.
N130 G0 L=fuente de alimentación
N140 G0 L=POFF

LPX = Panel X
LPY = Panel Y
RR = Radio
TX = Muesca del dedo del pie X
TY = Muesca del dedo del pie Y

Este programa ajustará el programa según el tamaño del panel. Además, los parámetros son para la esquina del radio y la muesca del pie.


Del colaborador E:

O4028 (PERFORACIÓN DE AGUJEROS)
(VERSIÓN 1.2 - 19/08/89 - CERDOS FUERA DEL CENTRO DEL CÍRCULO)
(PARA SACAR EL CENTRO DEL AGUJERO, ESTABLEZCA H EN 1 AL LLAMADA A LA MACRO)
(LA POS DE INICIO DEBE ESTAR SOBRE EL CENTRO DEL AGUJERO)
(A=#1=AJUSTE DE DIÁMETRO)
(D=#7=DIÁMETRO DEL AGUJERO)
(F=#9=AVANCE)
(H=#11=ESTABLECER EN 1 AL CENTRO DE CERDO)
(R=#18=DISTANCIA DE VIAJE RÁPIDO A LA SUPERFICIE DE TRABAJO)
(T=#20=N° DE COMPENSACIÓN PARA EL RADIO DE LA HERRAMIENTA)
(Z=#26=PROFUNDIDAD DEL AGUJERO DESDE LA SUPERFICIE DE TRABAJO)
#2=#5001(X POS INICIO)
#3=#5002(X POS INICIO)


#4=#5003(X POS INICIO)
#12=#[2000.+#20](LEER COMPENSACIÓN DE DIÁMETRO)
#10=[#7/2-#12]+[#1/2](CALC RAD Y AGREGAR AJUSTE)
IF[#11EQ1.]GOTO100(¿CENTRO DEL CERDO?)
G91G00X[#10-.03]Z-[ABS[#18]]
G02I-[#10-.03]Z-[ABS[#26]]F#9
G01X.03
G02I-#10
X-[#10*2]I-#10Z[ABS[#26]]
G90G01Z#4
X#2Y#3
GOTO500
N100#21=[#12*.9]
G91G00X#21Z-[ABS[#18]]
G02I-#21Z-[ABS[#26]]FA#9
I-#21
#23=#21
#22=#21*2
MIENTRAS[#22LT#10]HAGA1
G01X#21
G02I-#22
#23=#22
#22=#22+#21
FIN1
G01X-[#10-#23]
G02I-#10
X-#10Y#10I-#10
X-[#10*.9]Y-[#10*.9]J-[#10*.9]Z[ABS[#26]]
G90G01X#2Y#3Z#4
N500M99

Del interrogador original:

Estos fragmentos de código de muestra son absolutamente ideales y realmente muestran cómo iniciar la programación paramétrica. Gracias a todos los contribuyentes y sigan así.

Del colaborador F:

Hay un libro sobre programación paramétrica para máquinas CNC; puede obtenerlo en Amazon; el código es ISBN:
0872634817.

Del colaborador I:

¿Su software es compatible con VBA? ¡Esos sí que son algunos parámetros reales!

Del colaborador G:

Como alguien dijo anteriormente, los paramétricos no son necesariamente código, son matemáticas. Mecanizamos nuestras puertas de entrada en un Rover30 utilizando subrutinas paramétricas. El lenguaje XNC tiene un conjunto de funciones integradas para asignar valores a variables que son resultado de ecuaciones, así como valores de la base de datos de herramientas de la máquina. Si recibió un manual sobre el lenguaje XNC con su máquina, debería haber una sección sobre todas estas funciones y su uso.

El siguiente código se utiliza para mecanizar la mortaja de una placa frontal de cerradura en el borde biselado de una puerta. Los parámetros se pasan al sub y sin importar el largo, ancho o espesor de la placa frontal, o el espesor de la puerta o borde (Y+, Y-) se mecaniza correctamente (o como se pasaron los parámetros, nadie dijo esos tenían razón). Puede ver que no hay ningún código de máquina real en este lío de texto hasta N480.

El siguiente código es una versión antigua que tengo en mi disco aquí en casa. Entonces, si quieres analizarlo y encontrar mis errores matemáticos, no te preocupes demasiado, estoy seguro de que he reescrito la rutina en la máquina.

;SUBRUTINA PARA PLACAS FRONTALES DE CERRADURA DE EMBUTIR
;COMPENSARÁ EN Y Y Z POR EL BORDE BISELADO (EL VALOR PASADO EN QEG DEBE SER EL BORDE VERDADERO DE LA PUERTA)
;ASEGÚRESE DE QUE LA DIMENSIÓN DE BISEL PASADA COINCIDE CON EL AJUSTE DEL ÁNGULO DATIMACC PARA EL AGREGADO UTILIZADO
;LA PLACA FRONTAL SE CENTRARA EN Z Y SE CENTRARA EN EL BOLSILLO DE EMBUTIR EN X
;CAMBIO DE HERRAMIENTA REALIZADO ANTES DE LLAMAR AL SUB
;------------------------------------------------- ---------
;[PARAMETROS]
; QBV=BISEL
; QEG=REF BORDE
; HCL=ENTRADA CL DEL HUSO X
; QOC=COMPENSACIÓN A CL DE EMBUTIR DE HCL
; QFW=ANCHO DE LA PLACA FRONTAL
; QFL=LONGITUD DE LA PLACA FRONTAL
; QFD=PROFUNDIDAD DE LA PLACA FRONTAL
;------------------------------------------------- ---------
;[EJEMPLO]

;N100 QBV=3.58 QEG=0.00 QOC=31.75 HCL=889.0 QFW=31.8 QFL=203.5 QFD=5.60 L=S23 G0
;------------------------------------------------- ---------
;VERIFICACIÓN (VERIFICACIONES FALLIDAS SALEN EN :
1)


N30 JM($L(ST1,1) $C(65)):
1
;ÁNGULO DEL HUSILLO

N50 JM!($S(SA)=$S(QBV)):
1
;NOMBRE DE LA HERRAMIENTA

;AGGRE TIPO DE HERRAMIENTA

N80 JM(ST3 $C(80)):
1
;DIAM DE CORTE

;RADIO DE CORTE
N100 ATR=ATD/2
; CORRECCIONES DISPARADORAS
;COMP MOVIMIENTO (Z)
N110 ACR=((_C(QBV))*ATD)/2
;COMP Y DE MOVIMIENTO
N130 ACY=_T(QBV*ATD)
;PUNTO CENTRAL EN X
N140 PCX=HCL+QOC
;DETERMINACIÓN DE BORDES Y DECLARACIONES DE VAR CONDICIONALES
N150 JM(QEG (LY/2)):
6
;FONDO DE EMBUTIR EN Y
N390 BMY=(AMP-DCIY)-ACHY
;ARRIBA DE EMBUTIR EN Y
N400 TMY=(AMP+DCIY)+ACHY
N410 JM:
7
:
6
;FONDO DE EMBUTIR EN Y
N420 BMY=(AMP+DCIY)+ACHY
;ARRIBA DE EMBUTIR EN Y
N430 TMY=(AMP-DCIY)-ACHY
:
7
N440 API=AMP
N450 APO=API
N460 APU=CMZ
N470 APD=APU
N480 PAN=2 UT=1 ORX=PCX ORY=ASY MO=0 AN1=AAN QZ=-6.36 PRF=0 ANG=QBV USC=1 RES=1 Z=PRK PCT=0 PG40=1 PRC=0 L=G100
N490 Z=CMZ G1
N500 Y=EDY G1
N510 Y=API Z=CMZ G1
N520 X=ASX G1
N530
:
4
N540 DPA=DPA+ACD
N550 JM(APD=>BMZ):
5
N560 APU=APU-ACD
N570 API=API+ACY
N580 APO=APO-ACY
N590 Y=API Z=APU G1
N600 X=ASXG1
N610 Y=APO Z=APD G1
N620 X=AEX G1
N630 Y=API Z=APU G1
N640H:
4
:
5
N650 Y=TMY Z=TMZ G1
N660 X=ASXG1
N670 Y=BMY Z=BMZ G1
N680 X=AEX G1
N690 Y=TMY Z=TMZ G1
N700 X=PCX G1
N710 Y=CONJUNTO G1
N720 L=fuente de alimentación
N730 L=POFF
;BORRAR VARS AQUÍ ANTES DE SALIR
:
1

%
[PERFORACIÓN01]
%
[TABLA FORI01]
%
[ETIQUETA01]
2=1850
3=2054
6=2503
7=2601
4=2844
5=3033
1=3392
%


Del colaborador H:

Este es un ejemplo de una plantilla de limpieza de bolsillo que hice usando variables macro paramétricas. Espero que ayude a alguien.

(LIMPIEZA DE BOLSILLO)

#100=(RADIO FINAL------->) 2.6
#101=(ANCHO DE CORTE------->) .2
#102=(TASA DE AVANCE---------->)100
#103=(Z LIQUIDACIÓN DE DEVOLUCIÓN->)1
#104=(AVANCE DE PASADA FINAL>) 50
#105=(RPM EN SENTIDO HORARIO------>) 10000
#106=(PROFUNDIDAD DE CORTE------->) -.5
#107=(X CENTRO DE BOLSILLO---->)0
#108=(CENTRO DE BOLSILLO Y---->)0
T1M6
M8
N1M98P1
G0G54G43H1Z.1X#107Y#108S#105M3
F#102
G1Z#106
G3R#101 X#101
G3X#100Y0.0I-#101Q#101F#102
G3I-#100
G3R#100X0
G0Z#103
M30


Los comentarios a continuación se agregaron después de que esta discusión del foro se archivara como un artículo de la base de conocimientos (add your comment). Comentario del colaborador J:

La programación paramétrica es útil cuando se utiliza como una extensión del programador. Por ejemplo, digamos que tiene arcos y líneas rectas en su programa. Puede resultar útil controlar la velocidad de avance basándose en fórmulas que calculan la carga de viruta en un turno versus la carga de viruta en un movimiento en línea recta.

En lugar de programar diferentes velocidades de avance, es posible hacer que el control calcule el avance sobre la marcha. En la parte superior del programa hay una lista de variables para avance y rpm. Cree un subprograma para calcular la velocidad de avance según el tamaño del arco. Si el movimiento es recto, haga que el avance sea un sfm específico (avance de superficie por minuto). Las empresas de herramientas enumeran fórmulas para sus herramientas. Recuerda que la imaginación es la clave. Véalo y luego dibuje el punto de la ruta lógica que desea lograr y finalmente prográmelo.

Ejemplo; #100=85;sfm

#101=.005;carga de viruta por diente

#102=4;número de flautas

#103=.375;diámetro de la herramienta

#104=(85*3.82/#103);rpm

#105=(#104*#101*#102);alimentar

Este programa resulta divertido para el operador si desea experimentar con la vida útil de la herramienta. Además, estas macros se pueden instalar en publicaciones para resolver problemas del cambiador de herramientas, etc. Incluso instalé una macro en una publicación que insertaba automáticamente una compilación de herramientas y tenía una línea de código que el operador podía editar para que nunca tuviera que ir a su oficina. Configurar página.