1. Touch off
Se puede actualizar la tabla de herramientas de forma automática usando la pantalla Touch off en la interfaz AXIS.
Los pasos típicos para actualizar la tabla de herramientas son:
-
Después de homing, cargar una herramienta con Tn M6; donde n es el número de herramienta.
-
Mover la herramienta a un punto establecido utilizando un medidor o hacer un corte de prueba y medir.
-
Hacer clic en el botón Touch Off en la pestaña Control manual (o presione el botón End en su teclado).
-
Seleccione Tabla de herramientas en el cuadro desplegable Sistema de Coordenadas.
-
Ingrese el valor calibrado o la dimensión medida y seleccione Aceptar.
La tabla de herramientas se cambiará con la longitud Z correcta para que el DRO muestre la posición Z correcta y se emitirá un comando G43 para que la nueva longitud Z de la herramienta esté vigente. Touch off de la Tabla de herramientas solo está disponible cuando una herramienta se carga con TnM6.
1.1. Usando G10 L1/L10/L11
Los comandos G10 L1/L10/L11 se pueden usar para establecer las compensaciones de la tabla de herramientas:
-
G10 L1 P__n__- Establece los offsets en un valor. Posición actual irrelevante (ver G10 L1 para más detalles). -
G10 L10 P__n__- Establece el(los) offset(s) de modo que la posición actual c/amarre 1-8 se convierta en un valor (ver G10 L10 para más detalles). -
G10 L11 P__n__- Establece el(los) offset(s) de modo que la posición actual c/amarre 9 se convierta en un valor (ver G10 L11 para más detalles).
|
Nota
|
Esta es solo una presentación breve, la guía de referencia de código G tiene explicaciones más detalladas. |
2. Tabla de herramientas
La Tabla de herramientas es un archivo de texto que contiene información sobre cada herramienta. El archivo está ubicado en el mismo directorio de tu configuración y se llama predeterminadamente tool.tbl. Se puede especificar un nombre de archivo con la configuración [EMCIO]TOOL_TABLE del archivo INI. Las herramientas pueden estar en un cambiador de herramientas o simplemente ser cambiadas manualmente. El archivo puede editarse con un editor de texto o ser actualizado con G10 L1. Ver la sección Tabla de herramientas de torno para un ejemplo del formato de tabla de herramientas de torno. El número máximo de ranuras es 1000.
Se puede usar el Editor de herramientas o un editor de texto para editar la tabla de herramientas. Si utilizas un editor de texto, asegúrate de volver a cargar la tabla en la GUI.
2.1. Formato de tabla de herramientas
.Formato de tabla de herramientas
| T# | P# | X | Y | Z | A | B | C | U | V | W | Dia. | A. front. | A. tras. | Ori. | Coment. |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
; |
(sin datos después de un punto y coma) |
||||||||||||||
T1 |
P17 |
X0 |
Y0 |
Z0 |
A0 |
B0 |
C0 |
U0 |
V0 |
W0 |
D0 |
I0 |
J0 |
Q0 |
;rem |
T2 |
P5 |
X0 |
Y0 |
Z0 |
A0 |
B0 |
C0 |
U0 |
V0 |
W0 |
D0 |
I0 |
J0 |
Q0 |
;rem |
T3 |
P12 |
X0 |
Y0 |
Z0 |
A0 |
B0 |
C0 |
U0 |
V0 |
W0 |
D0 |
I0 |
J0 |
Q0 |
;rem |
En general, el formato de línea de la tabla de herramientas es:
-
T - número de herramienta (los números de herramienta deben ser únicos)
-
P - número de ranura, 1-1000 (los números de ranura deben ser únicos, ranura 0 representa al husillo)
-
X..W - offset de herramienta en el eje especificado - punto flotante
-
D - diámetro de la herramienta - coma flotante, valor absoluto
-
I - ángulo frontal (solo torno) - punto flotante
-
J - ángulo posterior (solo torno) - punto flotante
-
Q - orientación de la herramienta (solo torno) - entero, 0-9
-
; - comienzo del comentario o anotacion - texto
Los números de herramienta deben ser únicos. Las líneas que comienzan con punto y coma son ignoradas.
Las unidades utilizadas para la longitud, diámetro, etc., están en unidades de máquina.
Probablemente querrás mantener las entradas de la herramienta en orden ascendente, especialmente si vas a usar un cambiador de herramientas aleatorio, aunque la tabla de herramientas permite números de herramienta en cualquier orden.
Cada línea puede tener hasta 16 entradas, pero es probable que tengan mucho menos. Las entradas para T (número de herramienta) y P (número de ranura) son obligatorias. La última entrada (un comentario o anotación, precedido por un punto y coma) es opcional. La lectura se facilita si las entradas están organizadas en columnas, como se muestra en la tabla, pero el único requisito de formato es que haya al menos un espacio o tabulador después de cada una de las entradas en una línea y un carácter de nueva línea al final de cada entrada.
Los significados de las entradas y el tipo de datos que se colocarán en cada uno son como sigue.
- Número de herramienta (requerido)
-
La columna T contiene el número (entero sin signo) que representa un número de código para la herramienta. El usuario puede usar cualquier código para cualquier herramienta, siempre que los códigos sean enteros sin signo.
- Número de ranura (requerido)
-
La columna P contiene el número (entero sin signo) que representa el número de ranura del cambiador de herramientas donde se puede encontrar la herramienta. Las entradas en esta columna deben ser todas diferentes.
Los números de ranura generalmente comenzarán en 1 y subirán hasta la ranura más alta disponible en el cambiador de herramientas. Pero no todos los cambiadores de herramientas siguen este patrón. Tus números de ranura serán determinados por los números de tu cambiador de herramientas utiliza para referirse a las ranuras. Por tanto, los números de ranura que uses estarán determinados por el esquema de numeración utilizado en tu cambiador de herramientas, y los números de ranura que uses deben tener sentido en tu máquina.
- Números de offset de datos (opcional)
-
Las columnas Datos de Offset (XYZABCUVW) contienen números reales que representar los offsets de herramientas en cada eje. Este número se usará si la herramienta utiliza offset de longitud y está seleccionada. Estos números pueden ser positivos, cero o negativos, y de hecho son completamente opcionales. Aunque probablemente querrás hacer al menos una entrada aquí, de lo contrario no tendría mucho sentido hacer un entrada en la tabla de herramientas para empezar.
En una fresadora típica, probablemente se querrá una entrada para Z (offset de longitud de la herramienta). En un torno típico, probablemente se querrá una entrada para X (offset de herramienta X) y Z (offset de herramienta Z). En una fresadora típica usando compensación del diámetro del cortador (comp. del cortador), probablemente también se querrá agregar una entrada para D (diámetro del cortador). En un torno típico usando compensación del diámetro de la punta de la herramienta (comp. herramienta), probablemente también se querrá agregar una entrada para D (diámetro de la punta de la herramienta).
Un torno también requiere información adicional para describir la forma y orientación de la herramienta. Probablemente se querrá tener entradas para I (ángulo frontal) y J (ángulo posterior) de la herramienta. Probablemente también se querrá una entrada para Q (orientación de la herramienta).
Ver el capítulo Información para el usuario de torno para más detalles.
La columna Diámetro contiene un número real. Este número solo se usa si la compensación del cortador está activada con esta herramienta. Si la ruta programada durante la compensación es el borde del material que se está cortando, este debe ser un número real positivo que represente la medida del diámetro de la herramienta. Si la ruta programada durante la compensación es la trayectoria de una herramienta cuyo diámetro es nominal, este debe ser un número pequeño (positivo o negativo, pero cercano a cero) que represente solo la diferencia entre el diámetro medido de la herramienta y el diámetro nominal. Si la compensación del cortador no se usa con una herramienta, no importa qué número hay en esta columna.
La columna Comentario puede usarse opcionalmente para describir la herramienta. Cualquier tipo de descripción estará bien. Esta columna es solo para beneficio de lectores humanos. El comentario debe ir precedido de un punto y coma.
|
Nota
|
Las versiones anteriores de LinuxCNC tenían dos formatos de tabla de herramientas diferentes para fresadoras y tornos, pero desde la versión 2.4.x, se utiliza el mismo formato de tabla de herramientas para todas las máquinas. |
2.2. E/S de herramientas
El programa en tiempo no-real iocontrol se usa convencionalmente para administrar el cambiador de herramienta (y otras funciones de E/S para habilitar LinuxCNC y el hardware de control de enfriamiento). Los pines HAL usados para administración de herramienta tienen el prefijo iocontrol.0..
Un comando T en código G evalúa el pin HAL de salida iocontrol.0.tool-prepare. El pin de entrada HAL iocontrol.0.tool-prepared debe estar asignado por una lógica HAL externa para completar la preparación de la herramienta, llevando a un subsecuente reinicio del pin tool-prepare.
Un comando M6 en código G evalúa el pin HAL de salida iocontrol.0.tool-change. El pin HAL de entrada relacionado iocontrol.0.tool-prepared debe ser asignado por una lógica HAL externa para indicar la terminación del cambio de herramienta, llevando a un subsecuente reinicio del pin tool-change.
Los datos de herramienta se accesan por un índice ordenado (idx) que depende del tipo de cambiador de herramienta especificado en [EMCIO]RANDOM_TOOLCHANGER=tipo.
-
Para
RANDOM_TOOLCHANGER = 0, (el predeterminado es 0 y especifica un cambiador de herramienta no aleatorio) idx es un número que indica la secuencia en la que se cargaron -los datos de- las herramientas. -
Para
RANDOM_TOOLCHANGER = 1, idx es el número de ranura actual para el número de herramienta especificado por el comando de código G de selección de herramienta Tn.
El programa io proporciona pines HAL de salida para facilitar la gestión de cambio de herramienta:
-
iocontrol.0.tool-prep-number
-
iocontrol.0.tool-prep-index
-
iocontrol.0.tool-prep-pocket
-
iocontrol.0.tool-from-pocket
2.2.1. E/S para un cambiador de herramienta no aleatorio
-
Número de herramienta n==0 indica sin herramienta.
-
El número de ranura de una herramienta se asigna cuando se cargan/recargan los datos de herramienta desde su fuente de datos ([EMCIO]TOOL_TABLE o [EMCIO]DB_PROGRAM).
-
En el comando de código G Tn (n != 0):
-
iocontrol.0.tool-prep-index = idx (índice basado en la secuencia de carga de datos de la herramienta)
-
iocontrol.0.tool-prep-number = n
-
iocontrol.0.tool-prep-pocket = el número de ranura para n
-
-
En el comando de código G T0 (n == 0 quitar):
-
iocontrol.0.tool-prep-index = 0
-
iocontrol.0.tool-prep-number = 0
-
iocontrol.0.tool-prep-pocket = 0
-
-
En el código M M6 (siguiendo el pin iocontrol.0.tool-changed 0-->1):
-
iocontrol.0.tool-prep-pocket = número de ranura usada para tomar la herramienta
-
2.2.2. E/S para cambiador de herramienta aleatorio
-
Número de herramienta n==0 es no especial.
-
Número de ranura 0 es especial como lo indica el husillo.
-
El número de ranura actual para la herramienta n es el índice de datos de herramienta (idx) para la herramienta n.
-
En el comando de código G Tn:
-
iocontrol.0.tool-prep-index = índice de datos de herramienta (idx) para la herramienta n
-
iocontrol.0.tool-prep-number = n
-
iocontrol.0.tool-prep-pocket = número de ranura para la herramienta n
-
-
En el código M M6 (siguiendo el pin iocontrol.0.tool-changed 0-->1):
-
iocontrol.0.tool-prep-pocket = número de ranura usada para tomar la herramienta
-
|
Nota
|
En el arranque iocontrol.0.tool-from-pocket = 0. Un comando M61Qn (n!=0) no cambia iocontrol.0.tool-from-pocket. Un comando M61Q0 (n==0) asigna iocontrol.0.tool-from-pocket a 0. |
2.3. Cambiadores de herramienta
LinuxCNC admite tres tipos de cambiadores de herramientas: manual, ubicación aleatoria y ubicación no aleatorio o fija. Información sobre la configuración de un cambiador de herramienta LinuxCNC está en la Sección EMCIO del capítulo INI.
El cambiador manual de herramientas (cambiar la herramienta a mano) se trata como un cambiador de herramienta de ubicación fija. Los cambios manuales de herramienta pueden ser ayudados por una configuración HAL que emplee el programa en tiempo no-real hal_manualtoolchange y se especifica típicamente en un archivo INI con sentencias INI:
[HAL] HALFILE = axis_manualtoolchange.hal
Los cambiadores de herramientas de ubicación fija siempre devuelven las herramientas a una posición fija en el cambiador de herramientas. Esto también incluiría a diseños como las torretas de torno. Cuando LinuxCNC está configurado para un cambiador de herramientas de ubicación fija, el número P no se usa internamente en LinuxCNC (pero se lee, conserva y reescribe), por lo que se puede usar P para cualquier número que se quiera.
|
Nota
|
Cuando se usa [EMCIO]RANDOM_TOOLCHANGER = 0 (el predeterminado), el número de ranura P es un parámetro de los datos de herramienta que se obtiene de la fuente de datos de herramienta ([EMCIO]TOOL_TABLE o [EMCIO]DB_PROGRAM). En muchas aplicaciones es fijo, pero puede cambiarse editando [EMCIO]TOOL_TABLE o programáticamente cuando se usa [EMCIO]DB_PROGRAM. LinuxCNC manda actualizaciones a la fuente de datos ([EMCIO]TOOL_TABLE o [EMCIO]DB_PROGRAM) con códigos G10L1, G10L10, G10L11, M61. LinuxCNC puede jalar actualizaciones a los datos de herramienta desde la fuente de datos por medio de comandos de interfaz de usuario (UI) (ejemplo de Python: linuxcnc.command().load_tool_table()) o con el código G: G10L0. |
Los cambiadores de herramientas de ubicación aleatoria ([EMCIO]RANDOM_TOOLCHANGER = 1) intercambian la herramienta en el husillo con una del cambiador. Con este tipo de cambiador de herramientas, la herramienta siempre esta en un ranura diferente después de un cambio de herramienta. Cuando una herramienta se cambia, LinuxCNC reescribe el número de ranura para realizar un seguimiento de dónde están las herramientas. T puede ser cualquier número pero P debe ser un número que tenga sentido para la máquina.
3. Compensación de longitud de herramienta
A las compensaciones de longitud de herramienta se les dan números positivos en la tabla de herramientas. Una compensación de herramienta es programada usando G43 H_n_, donde n es el número de índice de la herramienta deseada en la tabla de herramientas. Es intencionado que todas las entradas en la tabla de herramientas sean positivas. El valor de H es verificado, debe ser un entero no negativo cuando se lee. El intérprete se comporta como a continuación:
-
Si se programa G43 Hn, se hace una llamada a la función
USE_TOOL_LENGTH_OFFSET(`__longitud__)` (donde longitud es la diferencia de longitud leída de la tabla de herramientas para el índice de la herramienta n), se reposiciona tool_length_offset en el modelo de configuraciones de la máquina y el se ajusta del valor de current_z en el modelo. Nótese que n no tiene que ser el mismo que el número de ranura de la herramienta que está actualmente en el husillo. -
Si se programa G49, se llama a
USE_TOOL_LENGTH_OFFSET(0.0), se restablece tool_length_offset a 0.0 en la plantilla de configuraciones de la máquina y se ajusta el valor actual de current_z en el modelo. El efecto de la compensación de longitud de herramienta se ilustra en la captura siguiente. Nótese que se resta la longitud de herramienta a Z para que el punto de control programado corresponda con la punta de la herramienta. Nótese también que el efecto de compensación de longitud de herramienta es inmediato cuando la posición de Z es vista como una coordenada relativa, pero no tiene efecto en la posición de máquina real hasta que se programe un movimiento Z.
N01 G1 F15 X0 Y0 Z0
N02 G43 H1 Z0 X1
N03 G49 X0 Z0
N04 G0 X2
N05 G1 G43 H1 G4 P10 Z0 X3
N06 G49 X2 Z0
N07 G0 X0
Con este programa, en la mayoría de los casos, la máquina aplicará el offset en forma rampa durante del movimiento en xyz siguiendo la palabra G43.
4. Compensación de radio de cortador
La compensación de cortador permite al programador programar la trayectoria de la herramienta sin conocer el diámetro exacto de la misma. La única advertencia es que el programador debe programar el movimiento de entrada para que sea al menos tan largo como el radio de herramienta más grande que podría usarse.
Hay dos caminos posibles que el cortador puede tomar según la compensación esté en el lado izquierdo o derecho de una línea en la dirección del movimiento vista desde detrás del cortador. Para visualizar esto, imagina que estás parado sobre la pieza caminando detrás de la herramienta mientras progresa su corte. G41 es tu lado izquierdo de la línea y G42 es el lado derecho de la línea.
El punto final de cada movimiento depende del siguiente movimiento. Si el siguiente movimiento crea una esquina exterior, el movimiento será hasta el punto final de la línea de corte compensada. Si el siguiente movimiento crea una esquina interior el movimiento se detendrá brevemente para no dañar la pieza. La figura siguiente muestra cómo el movimiento compensado se detendrá en diferentes puntos dependiendo del movimiento siguiente.
4.1. Descripción general
4.1.1. Tabla de herramientas
La compensación del cortador utiliza los datos de la tabla de herramientas para determinar el offset necesario. Los datos se pueden configurar en tiempo de ejecución con G10 L1.
4.1.2. Programación de movimientos de entrada
Cualquier movimiento que sea lo suficientemente largo como para realizar la compensación funcionará como movimiento de entrada. La longitud mínima es el radio de corte. Esto puede ser un movimiento rápido sobre la pieza de trabajo. Si se emiten varios movimientos rápidos después de un G41/42 solo el último moverá la herramienta a la posición compensada.
En la figura siguiente se puede ver que el movimiento de entrada se compensa a la derecha de la línea. Esto coloca el centro de la herramienta a la derecha de X0 en este caso. Si tuviera que programar un perfil y el final está en X0, el perfil resultante dejaría una protuberancia debido al offset del movimiento de entrada.
4.1.3. Movimientos Z
El movimiento del eje Z puede tener lugar mientras se sigue el contorno en el plano XY. Se pueden omitir partes del contorno retrayendo el eje Z sobre la pieza y extendiendo el eje Z en el siguiente punto de inicio.
4.1.4. Movimientos rápidos
Se pueden programar movimientos rápidos mientras la compensación está activada.
4.1.5. Buenas prácticas
Inicie un programa con G40 para asegurar que la compensación esté desactivada.
4.2. Ejemplos
4.2.1. Ejemplo de perfil externo
4.2.2. Ejemplo de perfil interno