1. Introducción
AXIS es una interfaz gráfica para LinuxCNC que cuenta con vista previa y trazo posterior. Está escrito en Python y utiliza Tk y OpenGL para mostrar la interfaz de usuario.
2. Primeros pasos
Si la configuración no está preparada actualmente para usar AXIS, se puede cambiar editando el archivo .ini (archivo INI). En la sección [DISPLAY] cambiar la línea a DISPLAY = axis.
La configuracion de ejemplo sim/axis.ini ya está configurada para usar AXIS como su interfaz de usuario.
Al iniciar AXIS se abrirá una ventana como la de la figura [fig:axis-window] de arriba.
2.1. Configuraciones de INI
Para más información sobre las configuraciones del archivo INI que modifican el funcionamiento de AXIS ver la Sección DISPLAY y la Sección AXIS del capítulo Configuración de INI.
-
CYCLE_TIME - Ajusta la velocidad de respuesta de la IGU en milisegundos. Típicamente 100, rango sable 50 - 200
(acepta tiempo en segundos (.05 - .2) por razones de compatibilidad hacia atrás - se prefieren milisegundos para coincidir con otras pantallas).
[DISPLAY] CYCLE_TIME = 100
-
PREVIEW_TIMEOUT - Establece el tiempo de espera en segundos para cargar la vista previa de código G. Si el análisis gramatical del código G tarda más que este valor, se mostrará una advertencia y solo se mostrará en el área de visualización gráfica la parte inicial del programa. Especificar 0 o nada significa sin tiempo de espera.
[DISPLAY] PREVIEW_TIMEOUT = 5
2.2. Una sesión típica
-
Iniciar LinuxCNC y seleccionar un archivo de configuración.
-
Liberar el botón E-STOP (F1) y encender la alimentación de la máquina (F2).
-
Llevar a casa todos los ejes.
-
Cargar el archivo de código G.
-
Utilizar el gráfico de vista previa para verificar que el programa está correcto.
-
Montar el material.
-
Establecer el offset adecuado para cada eje trotando y usando la tecla
Touch Offsegún sea necesario. -
Ejecutar el programa.
-
Para maquinar el mismo archivo otra vez regresar al paso 6. Para maquinar otro archivo regresar al paso 4.
-
Al terminar el trabajo salir AXIS.
|
Nota
|
Ejecutar el mismo programa de nuevo dependerá de su configuración y requisitos. Es posible que se deba cargar más material y establecer offsets o desplazarse y establecer un nuevo offset y luego ejecutar el programa de nuevo. Si la ubicación del material es siempre la misma, entonces es posible que solo se tenga que volver a ejecutar el programa. Ver la sección Menu Máquina para obtener más información sobre el comando de ejecución. |
3. Pantalla AXIS
La ventana de AXIS contiene los elementos siguientes:
-
Un área de visualización que muestra uno de los siguientes elementos:
-
Una vista previa del archivo cargado (en este caso, axis.ngc), así como la ubicación actual del punto controlado de la máquina CNC. Más adelante, esta área mostrará el camino por el que la máquina CNC se ha movido, llamado trazo posterior (backplot).
-
Un lector de salida grande que muestra la posición actual y todos los offsets.
-
-
Una barra de menús y una barra de herramientas que permiten realizar varias acciones
-
Pestaña de Control manual (F3) - que permite mover la máquina, encender o apagar el husillo, y el refrigerante si se incluye en el archivo INI.
-
Pestaña MDI - donde los programas en código G se pueden ingresar manualmente, una línea a la vez. También muestra los Códigos G activos que son los códigos G modales en vigor.
-
Ajustar avance - que permite escalar la velocidad de los movimientos programados. El máximo predeterminado es 120% y se puede configurar a un valor diferente en el archivo INI. Consultar la Sección DISPLAY del archivo INI para más información.
-
Ajustar Husillo - que permite escalar la velocidad del husillo hacia arriba o hacia abajo.
-
Velocidad Jog - que permite configurar la velocidad de trote dentro de los límites establecidos en el archivo INI. Ver la Sección DISPLAY del archivo INI para obtener más información.
-
Velocidad máxima - que permite restringir la velocidad máxima de todos los movimientos programados (excepto movimiento sincronizado del husillo).
-
Una zona de visualización de texto que muestra el código G cargado.
-
Una barra de estado que muestra el estado de la máquina. En la pantalla mostrada, la máquina está encendida, no tiene una herramienta insertada y la posición mostrada es Relativa (mostrando todos los offsets) y Actual (mostrando la posición retroalimentada).
3.1. Elementos del menú
Algunos elementos del menú pueden estar en gris dependiendo de cómo este configurado el archivo INI. Para más información sobre configuración ver el Capítulo INI.
3.1.1. Menú Archivo
-
Abrir … - Abre un cuadro de diálogo estándar para abrir un archivo de código G para cargar en AXIS. Si ha configurado LinuxCNC para usar un programa de filtro, también puede abrirlo. Consulte la Sección FILTRO de la configuración INI para más información.
-
Archivos recientes - muestra una lista de los archivos abiertos recientemente.
-
Editar … - abre el archivo de código G actual para editarlo si se tiene un editor configurado en el archivo INI. Consultar la sección sección DISPLAY para obtener más información sobre la especificación del editor a usar.
-
Recargar - vuelve a cargar el archivo de código G actual. Si se editó, se debe recargar para que los cambios surtan efecto. Si se detiene un archivo y se quiere empezar desde el principio, volver a cargar el archivo. La recarga de la barra de herramientas es la misma que la del menú.
-
Guardar código G como … - Guarda el archivo actual con un nombre nuevo.
-
Propiedades - La suma de los movimientos rápidos y de avance. No tiene en cuenta modos de aceleración, fusión o ruta para que el tiempo reportado nunca sea menor que el tiempo de ejecución real.
-
Editar datos de herramienta … - Igual que Editar, si se ha definido un editor, se puede abrir la tabla de herramientas y editarla.
-
Recargar datos de herramienta - Después de editar la tabla de herramientas se debe volver a cargarla.
-
Editor Ladder - Si se ha cargado ClassicLadder, se puede editar desde aquí. Ver el capítulo Classicladder para más información.
-
Salir - Termina la sesión actual de LinuxCNC.
3.1.2. Menú Máquina
-
Conmutar parada de Emergencia F1- Cambia el estado de la parada de emergencia.
-
Conmutar encendido de Máquina F2 - Cambia el estado de encendido de la máquina si la parada de emergencia no está encendida.
-
Ejecutar programa- Ejecuta el programa actualmente cargado desde el principio.
-
Ejecutar desde línea seleccionada - Selecciona la línea desde la que desea comenzar. Usarla con precaución ya que esto moverá primero la herramienta a la posición esperada antes de la línea y luego se ejecutará el resto del código.
|
Aviso
|
No usar Ejecutar desde línea seleccionada si el programa de código G contiene subrutinas. |
-
Paso de programa - Un solo paso a través de un programa.
-
Pausa - Pausa un programa.
-
Reanudar - Reanuda la ejecución pausada.
-
Detener - Detiene un programa en ejecución. Cuando se selecciona ejecutar después de una parada, el programa comenzará desde el principio.
-
Parar en M1 - Si se alcanza un M1, y este esta activo, la ejecución del programa parará en la línea M1. Presionar Reanudar para continuar.
-
Saltar líneas con "/" - Si una línea comienza con / y esto está activo, la línea se saltará.
-
Borrar historial MDI - Borra la ventana del historial de MDI.
-
Copiar desde historial MDI - Copia el historial MDI al portapapeles
-
Pegar en historial MDI - Pegar desde el portapapeles a la ventana del historial MDI
-
Calibración - Inicia el asistente de calibración (emccalib.tcl). La calibración lee el archivo HAL y para cada setp que usa una variable del archivo INI que se encuentra en una de las secciones [AXIS_L], [JOINT_N], [SPINDLE_S] o [TUNE], crea una entrada que puede ser editada y probada.
-
Mostrar configuración HAL - Abre la ventana de configuración HAL donde se pueden monitorear componentes HAL, pines, parámetros, señales, funciones e hilos.
-
HAL Meter - Abre una ventana donde se puede monitorear un solo pin, señal o parámetro HAL.
-
Osciloscopio HAL - Abre un osciloscopio virtual que permite seguir valores HAL en función del tiempo.
-
Mostrar estado de LinuxCNC - Abre una ventana que muestra el estado de LinuxCNC.
-
Establecer nivel de depuración - Abre una ventana donde se pueden ver los niveles de depuración y se pueden configurar algunos.
-
Homing - Lleva a casa uno o todos los ejes.
-
Unhoming - Deshacer la ida a casa de uno o todos los ejes.
-
Sistema de coordenadas cero - Establece todos los offsets a cero en el sistema de coordenadas elegido.
-
Toque inicial de la herramienta
-
Touch off herramienta -pieza - Al realizar Touch off, el valor ingresado es relativo al sistema de coordenadas de la pieza actual (G5x), modificado por el offset del eje (G92). Cuando se completa el Touch off, la coordenada relativa para el eje elegido se convertirá en el valor ingresado. Consultar <<gcode:g10-l10,G10 L10 en el capítulo de código G.
-
Touch off herramienta - amarre - Al realizar Touch off, el valor ingresado es relativo al noveno (G59.3) sistema de coordenadas, con el offset del eje (G92) ignorado. Esto es útil cuando hay un accesorio para Tool touch off en una ubicación fija en la máquina, con el noveno (G59.3) sistema de coordenadas establecido de tal manera que la punta de una herramienta de longitud cero esté en el origen del montaje cuando las coordenadas relativas son 0. Consultar G10 L11 en el capítulo de código G.
-
3.1.3. Menú Ver
-
Vista superior - La vista superior (o vista Z) muestra la previsualización del código G mirando en dirección del eje Z de positivo a negativo. Esta vista es la mejor para mirar el plano X y Y.
-
Vista superior girada - La vista superior girada (o vista Z girada) también muestra el código G mirando a lo largo del eje Z de positivo a negativo. Pero a veces es conveniente mostrar los ejes X e Y girados 90 grados para que quede mejor la visualización. Este punto de vista es también mejor para mirar X y Y.
-
Vista lateral - La vista lateral (o vista X) muestra el código G mirando a lo largo del eje X de positivo a negativo. Esta vista es mejor para mirar a Y & Z.
-
Vista frontal - La vista frontal (o vista en Y) muestra el código G mirando hacia adelante el eje Y de negativo a positivo. Esta vista es mejor para mirar X y Z.
-
Vista en perspectiva - La vista en perspectiva (o vista P) muestra el código G mirando la pieza desde un punto de vista ajustable, por defecto a X+, Y-, Z+. La posición es ajustable usando el mouse y el selector de arrastrar/rotar. Esta vista es una vista de compromiso, y si bien hace un buen trabajo al tratar de mostrar tres (¡hasta nueve!) ejes en una pantalla bidimensional, a menudo habrá alguna característica que es difícil de ver, que requiera un cambio en el punto de vista. Esta vista es la mejor cuando se quiera ver los tres (a nueve) ejes a la vez.
-
Mostrar pulgadas - Establece la escala de la pantalla AXIS en pulgadas.
-
Mostrar MM - Establece la escala de la pantalla AXIS en milímetros.
-
Mostrar programa - La vista previa del programa de código G cargado puede ser completamente desactivada si lo desea.
-
Mostrar Rápidos del programa - La vista previa del programa de código G cargado siempre mostrará la velocidad de avance (G1, G2, G3) en color blanco. Pero la visualización de movimientos rápidos (G0) en cian se puede desactivar si se desea.
-
Vista previa Alpha-blend - Esta opción hace que la vista previa de programas complejos sea más fácil de ver, pero puede hacer que la vista previa se muestre más lentamente.
-
Mostrar plot en vivo - El resaltado de las rutas de avance (G1, G2, G3) a medida que la herramienta se mueve se puede desactivar si se desea.
-
Mostrar herramienta - La visualización del cono/cilindro de la herramienta se puede desactivar si se desea.
-
Mostrar extensiones - La visualización de las extensiones (recorrido máximo en cada dirección del eje) del programa de código G cargado se puede desactivar si se desea.
-
Mostrar offsets - Se puede mostrar la ubicación de origen del offset del montaje seleccionado (G54-G59.3) como un conjunto de tres líneas ortogonales, roja, azul y verde. Esta visualización de origen de offset (o punto cero) se puede desactivar si se desea.
-
Mostrar límites de máquina - Los límites máximos de desplazamiento de la máquina para cada eje, según lo establecido en el archivo INI, se muestran como una caja rectangular dibujada en líneas discontinuas rojas. Esto es útil cuando se carga un nuevo programa de código G, o cuando se comprueba cuánto offset de montaje se necesita para llevar el programa de código G dentro de los límites de recorrido de tu máquina. Puede apagarse si no es necesario.
-
Mostrar velocidad - Una visualización de la velocidad a veces es útil para ver qué tan cerca está funcionando su máquina de la velocidad de diseño. Puede ser desactivado si se desea.
-
Mostrar distancia restante - Distancia a recorrer es un elemento muy útil que conocer cuando se ejecuta un programa de código G desconocido por primera vez. En combinación con los controles de porcentaje de velocidad rápida y de avance, se puede evitar el daño a herramientas y/o a la máquina. Una vez que el programa de código G se ha depurado y se ejecuta sin problemas, se puede desactivar la visualización si se desea.
-
Fuente grande de coordenadas - Las coordenadas de los ejes y la velocidad de avance se mostrarán con una fuente mas grande en la vista de ruta de la herramienta.
-
Limpiar plot en vivo - A medida que la herramienta se desplaza en la pantalla AXIS, se resalta la ruta del código G. Para repetir el programa, o para ver mejor un área de interés, se pueden borrar las rutas previamente resaltadas.
-
Mostrar posición ordenada - Esta es la posición a la que intentará ir LinuxCNC. Una vez que el movimiento se ha detenido, esta es la posición que intentará mantener LinuxCNC.
-
Mostrar posición actual - La posición real es la posición medida, leída desde los codificadores del sistema o simulada por los generadores de pasos. Esta puede diferir ligeramente de la posición ordenada por muchas razones, incluyendo afinación del PID, restricciones físicas, o cuantización de la posición.
-
Mostrar posición de la máquina - Esta es la posición en coordenadas sin offset, según lo establecido por Homing.
-
Mostrar posición relativa - Esta es la posición de la máquina modificada por los offsets G5x, G92 y G43.
3.1.4. Menú Ayuda
-
Acerca de AXIS - Todos sabemos lo que es esto.
-
Referencia rápida - Muestra las teclas de método abreviado del teclado.
3.2. Botones de la barra de herramientas
De izquierda a derecha en la pantalla de AXIS, los botones de la barra de herramientas (atajos de teclado mostrados [entre corchetes]) son:
-
Activar parada de emergencia [F1] (también llamado E-Stop)
-
Conmutar encendido de máquina [F2]
-
Abrir archivo de código G [O]
-
Reabrir el archivo actual [Ctrl-R]
-
Comenzar a ejecutar el archivo actual [R]
-
Ejecutar línea siguiente [T]
-
Pausar ejecución [P] Reanudar ejecución [S]
-
Detener la ejecución del programa [ESC]
-
Conmutar salto de líneas con "/" [Alt-M-/]
-
Alternar pausa opcional [Alt-M-1]
-
Acercar
-
Alejar
-
Vista superior
-
Vista superior girada
-
Vista lateral
-
Vista frontal
-
Vista en perspectiva
-
Alternar entre los modos de arrastrar/rotar [D]
-
Limpiar trazo posterior en vivo [Ctrl-K]
3.3. Área de visualización gráfica
En la esquina superior izquierda de la pantalla del programa está la visualización de las coordenadas de posicion para cada eje. A la derecha del número, un símbolo de origen
que se muestra si el eje ha sido llevado a casa.
Una símbolo de límite
se muestra en el lado derecho del número de coordenada de posición, si el eje está en uno de sus interruptores de límite.
Para interpretar correctamente los números de coordenadas de posición, consulte el indicador Posición: en la barra de estado. Si la posición es Máquina actual, entonces el número mostrado está en el sistema de coordenadas de la máquina. Si se muestra Relative Actual, entonces el número mostrado está en la coordenada del sistema con desplazamiento. Cuando las coordenadas mostradas son relativas y se ha establecido un desplazamiento, la pantalla incluirá un marcador origen de máquina
cian.
Si la posición es Comandada, entonces la coordenada exacta dada en un comando de código G es la mostrada. Si es Actual, entonces es la posición real a la que la máquina se ha movido. Estos valores pueden ser diferentes de la posición ordenada debido al error de seguimiento, banda muerta, resolución del codificador o tamaño de paso. Por ejemplo, si ordena un movimiento a X 0.0033 en su fresadora, pero el paso de su motor paso a paso o un conteo de codificador es 0.00125, la posición Comandada podría ser 0.0033, pero la posición Actual será 0.0025 (2 pasos) o 0.00375 (3 pasos).
Cuando se carga un archivo, se muestra una vista previa en el área de visualización. Los movimientos rápidos (como los producidos por el comando G0) se muestran como lineas cian. Los movimientos a velocidad de avance (como los producidos por el comando G1) se muestran como líneas blancas sólidas. Las esperas (como las producidos por el comando G4) se muestran como pequeñas marcas X rosadas.
Movimientos G0 (rápido), antes de un movimiento de alimentación no se mostrarán en el trazo de vista previa. Los movimientos rápidos después de un T<n> (Cambio de herramienta) no se mostrarán en la vista previa hasta después del primer movimiento de alimentación. Para desactivar cualquiera de estas funciones programe un G1 sin ningún movimiento antes de los movimientos G0.
Se muestran las dimensiones resultantes del programa en cada eje. En los extremos, se indican los valores de coordenadas mínimo y máximo. En el medio, se muestra la diferencia entre las coordenadas (dimensión).
Cuando algunas coordenadas exceden los límites de software del archivo INI, la dimensión culpable se muestra en un color diferente y encerrada en un cuadro. En la figura de abajo se sobrepasa el límite de software máximo en el eje X, que se indica en el cuadro que rodea el valor de la coordenada. El mínimo recorrido X del programa es -1.95, el recorrido máximo de X es 1.88, y el programa requiere 3.83 pulgadas de recorrido X. Para que el movimiento programado esté dentro de la carrera de la máquina en este caso, trotar a la izquierda y volver a hacer touch off X.
Cuando no se ha cargado ninguna herramienta, la ubicación de la punta de la herramienta esta indicada por el cono de herramienta. El cono de herramienta no proporciona orientación sobre la forma, longitud, o radio de una herramienta real.
Cuando se carga una herramienta (por ejemplo, con el comando MDI T1 M6), el cono cambia a un cilindro que muestra el diámetro de la herramienta, dado en el archivo de tabla de herramientas.
Cuando la máquina se mueve, deja un rastro en pantalla llamado trazo posterior (backplot). El color de la línea indica el tipo de movimiento: amarillo para trotes, verde claro para movimientos rápidos, rojo para movimientos rectos a velocidad de avance y magenta para movimientos circulares a velocidad de avance.
Axis puede, opcionalmente, mostrar una cuadrícula en las vistas ortogonales. Habilite o deshabilite la cuadrícula usando Gratícula en el menu Ver. Cuando esta habilitada, la cuadrícula se muestra en las vistas superior y superior girada. Cuando el sistema de coordenadas no esta girado, la cuadrícula se muestra también en las vistas frontal y lateral. Los preajustes en el menú Gratícula están controlados por el elemento del archivo INI [DISPLAY]GRIDS. Si no se especifica, el valor predeterminado es 10mm 20mm 50mm 100mm 1in 2in 5in 10in.
Especificar una cuadrícula muy pequeña puede disminuir el rendimiento.
Al hacer clic izquierdo en una parte del trazo de vista previa, la línea se resaltará en las visualizaciones tanto gráfica como de texto. Al hacer clic izquierdo en un área vacía, se quitará el resaltado.
Al arrastrar presionando el botón izquierdo del ratón, el trazo de vista previa se desplazará (panorámico).
Al arrastrar con Mayús y el botón izquierdo del ratón presionado, o arrastrando con la rueda del ratón presionada, el trazo de vista previa se rotará. Cuando una línea está resaltada, el centro de rotación es el centro de la línea, de lo contrario, el centro de rotación es el centro de todo el programa.
Al girar la rueda del ratón, o arrastrando con el botón derecho del ratón presionado, o arrastrando con Control y presionando el botón izquierdo del ratón, el trazo de vista previa se acercará o alejará.
Al hacer clic en uno de los iconos de Vista predefinida, o presionando V, se pueden seleccionar varias vistas preestablecidas.
3.4. Área de visualización de texto
Al hacer clic izquierdo en una línea del programa, la línea se resaltará en ambas visualizaciones, tanto la gráfica como la de texto.
Cuando el programa está en ejecución, la línea que se está ejecutando actualmente es resaltada en rojo. Si el usuario no ha seleccionado ninguna línea, la pantalla de texto se desplazará automáticamente para mostrar la línea actual.
3.5. Control manual
Mientras la máquina este encendida sin ejecutar un programa, los elementos de la pestaña Control manual se pueden utilizar para mover la máquina o controlar su husillo y el refrigerante.
Cuando la máquina no está encendida, o cuando se está ejecutando un programa, los controles manuales no están disponibles.
Muchos de los elementos descritos a continuación no son útiles en todas las máquinas. Cuando AXIS detecta que un pin en particular no está conectado en HAL, se elimina el elemento correspondiente en la pestaña Control manual. Por ejemplo, si el pin HAL spindle.0.brake no está conectado, entonces el botón Freno no aparecerá en la pantalla. Si la variable de entorno AXIS_NO_AUTOCONFIGURE está establecida, este comportamiento está deshabilitado y todos los elementos aparecerán.
Ejes permite mover manualmente la máquina. Esta acción se conoce como trotar. Primero, seleccione el eje a mover haciendo clic en él. Luego, haga clic y manténga presionado el botón + o - dependiendo de la dirección de movimiento deseada. Los primeros cuatro ejes también pueden ser movidos por las teclas de flecha (X e Y), teclas Pág. arriba y Pág. abajo (Z), y las teclas [ y ] (A).
Si se selecciona Continuo, el movimiento continuará mientras se presiona el botón o la tecla. Si se selecciona otro valor, la máquina se moverá exactamente la distancia mostrada cada vez que se hace clic en el botón o se presiona la tecla. Por defecto, los valores disponibles son 0.1000, 0.0100, 0.0010, 0.0001.
Consultar la sección DISPLAY para obtener más información sobre la configuración los incrementos.
La configuración de archivo INI [KINS]JOINTS define el número total de articulaciones para el sistema. Una articulación puede configurarse con un interruptor de casa o con un homing inmediato. Las articulaciones pueden especificar una secuencia de casa que organice el orden de grupos de homing de articulaciones.
Si todas las articulaciones están configuradas para homing y tienen secuencias válidas para homing, el botón homing mostrará Home Todos. Presionar el botón Home Todos (o las teclas Ctrl-HOME) llevará a casa todas las articulaciones utilizando sus secuencias de casa definidas. La tecla HOME llevará a casa la articulación correspondiente al eje seleccionado actual, incluso si no esta definida una secuencia de homing.
Si no todos los ejes tienen una secuencia de casa válida, el botón mostrará Home Eje y llevará a casa solo a la articulación del eje seleccionado actualmente. Cada eje debe ser seleccionado y llevado a casa por separado.
El menú desplegable Máquina/Homing proporciona un método alterno para llevar a casa los ejes. El menú desplegable Máquina/Unhoming proporciona los medios para quitar de casa a los ejes.
Si la máquina no tiene interruptores de casa definidos en la configuración, el botón Home establecerá la posición actual del eje seleccionado como la posición absoluta 0 para ese eje y activará el bit is-homed para ese eje.
Consultar el capítulo de Configuración de homing para obtener más información.
Operación similar a la de cinemáticas identidad, pero antes del homing, los botones radio de selección seleccionan las articulaciones por número. El botón homing mostrará Home Todos si todas las articulaciones están configuradas para homing y tienen secuencias de casa válidas. De lo contrario, el botón homing mostrará Home Joint.
Consultar el capítulo de Configuración de homing para obtener más información.
Al presionar Touch Off o la tecla END, el offset G5x para el eje actual se cambia para que el valor del eje actual sea el valor especificado. Las expresiones se pueden ingresar usando las reglas para los programas rs274ngc, excepto que las variables no pueden ser referidas. El valor resultante se muestra como un número.
Ver también las opciones del menú Máquina: Touch pieza y Touch amarre.
Se puede configurar un eje en el archivo INI para incorporar el valor de la posición real para el cálculo en un touch off, ya sea sumando o restando este valor. Esto es principalmente útil en máquinas que tienen un eje no motorizado como un cañón con un codificador. Cuando se habilita esta característica en un eje, la barra de título de una ventana touch off indicará (sistema REAL).
Ver la sección [axis:touchoff-actual] para obtener más información.
Al presionar el botón Touch off herramienta cambiará la longitud y los offsets de la herramienta cargada actualmente para que la posición de la punta de la herramienta actual coincida con la coordenada introducida.
Consultar también las opciones Touch off herramienta - pieza y Touch off herramienta - amarre en el menú Máquina.
Pulsando Anulación de límites se permitirá trotar temporalmente en la máquina más allá de un interruptor de límite físico. Esta casilla solo está disponible cuando se dispara un interruptor de límite. La anulación desaparece después de un trote. Si el eje está configurado con interruptores de límite positivo y negativo separados, LinuxCNC permitirá el trote solo en la dirección correcta. La anulación de límites no permite un trote más allá de un límite de software. La única manera de deshabilitar un límite de software en un eje es con unhome.
Los botones de la primera fila seleccionan la dirección de giro del husillo; en sentido contrario a las agujas del reloj, detenido y en el sentido de las agujas del reloj. El sentido antihorario solo aparece si el pin spindle.0.reverse está en el archivo HAL (puede ser net trick-axis spindle.0.reverse). Los botones en la siguiente fila aumentan o disminuyen la velocidad de rotación. La casilla de verificación en la tercera fila permite que el freno del husillo sea accionado o liberado. Dependiendo de la configuración de su máquina, no todos los elementos en este grupo pueden aparecer. Presionando el botón de arranque del husillo se establece la velocidad S en 1.
Dos botones permiten encender los refrigerantes Niebla e Inundación y apagarlos. Dependiendo de la configuración de la máquina, puede que no todos los elementos de este grupo aparezcan.
3.6. MDI
MDI permite que los comandos de código G se ingresen manualmente. Cuando la máquina no está encendida, o cuando un programa está en ejecución, los controles MDI no están disponibles.
-
Historial - Muestra los comandos MDI que se han escrito anteriormente en esta sesión.
-
Comando MDI - Esto permite ingresar un comando de código G para ser ejecutado. Ejecute el comando pulsando Intro o haciendo clic en Ir.
-
Códigos G activos - Se muestran los códigos modales que están activos en el intérprete. Por ejemplo, G54 indica que el offset G54 se aplica a todas las coordenadas que se introduzcan. En modo Auto los Códigos G activos representan los códigos después cualquier lectura anticipada del intérprete.
3.7. Porcentaje de alimentación
Al mover este control deslizante, se puede modificar la velocidad de alimentación programada. Por ejemplo, si un programa solicita F60 y el control deslizante se establece en 120%, entonces la velocidad de alimentación resultante será 72.
3.8. Porcentaje de velocidad del husillo
Al mover este control deslizante, la velocidad del husillo programada puede ser modificada. Por ejemplo, si un programa solicita S8000 y el control deslizante es establecido en 80%, entonces la velocidad del husillo resultante será 6400. Este elemento solo aparece cuando el pin HAL spindle.0.speed-out está conectado.
3.9. Velocidad de trote
Al mover este control deslizante, se puede modificar la velocidad de trote. Por ejemplo, si el deslizante se establece en 1 pulgada/min, entonces un trote de .01 pulgadas tardará aproximadamente .6 segundos, o 1/100 de minuto. Cerca del lado izquierdo (trotes lentos) los valores están espaciados muy cerca, mientras que cerca del lado derecho (trotes rápidos) están espaciados mucho más separados, permitiendo una amplia gama de velocidades de trote con control fino cuando sea importante.
En las máquinas con un eje giratorio, se muestra un segundo control deslizante de velocidad de trote. Este deslizante establece la velocidad de trote de los ejes giratorios (A, B y C).
3.10. Velocidad máxima
Al mover este control deslizante, se puede establecer la velocidad máxima. Esto limita la velocidad máxima para todos los movimientos programados, excepto en movimientos sincronizados con el husillo.
4. Controles del teclado
Casi todas las acciones en AXIS se pueden realizar con el teclado. La lista completa de atajos de teclado se puede encontrar en la Referencia rápida de AXIS, que se puede mostrar seleccionando Ayuda > Referencia rápida. Muchos de los accesos directos no están disponibles cuando se está en modo MDI.
4.1. Teclas de porcentaje de alimentación
|
Nota
|
En el teclado Español de España, el simbolo " ' " se refiere al signo de acentuacion junto a la tecla "P". Este signo precisa doble pulsacion de dicha tecla. |
Las teclas de porcentaje de alimentación se comportan de manera diferente cuando están en modo manual. Las teclas ',1,2,3,4,5,6,7 y 8 seleccionarán un eje si está programado. Si se tienen 3 ejes ' seleccionará el eje 0, 1 seleccionará el eje 1, y 2 seleccionará eje 2. El resto de las teclas numéricas establecerán el porcentaje de alimentación. Al ejecutar un programa, ',1,2,3,4,5,6,7,8,9,0 establecerán el porcentaje de alimentación a 0% - 100%.
Los métodos abreviados de teclado más utilizados se muestran en la siguiente tabla:
| Teclas | Acción | Modo |
|---|---|---|
F1 |
Alterna parada de emergencia |
Cualquiera |
F2 |
Enciende/apaga la máquina |
Cualquiera |
`, 1 .. 9, 0 |
Ajusta el porcentaje de alimentación de 0% a 100% |
Varía |
X, ` |
Activa el primer eje |
Manual |
Y, 1 |
Activa el segundo eje |
Manual |
Z, 2 |
Activa el tercer eje |
Manual |
A, 3 |
Activa el cuarto eje |
Manual |
I |
Selecciona incremento de trote |
Manual |
C |
Trote continuo |
Manual |
Control-Home |
Realiza secuencia de homing |
Manual |
Fin |
Touch off: Establece offset G5x en el eje activo |
Manual |
Izquierda, Derecha |
Trota el primer eje |
Manual |
Arriba, Abajo |
Trota el segundo eje |
Manual |
Pág. arriba, Pág. abajo |
Trota el tercer eje |
Manual |
[, ] |
Trota el cuarto eje |
Manual |
O |
Abrir archivo |
Manual |
Control-R |
Recargar archivo |
Manual |
R |
Ejecutar archivo |
Manual |
P |
Pausar ejecución |
Auto |
S |
Reanuda ejecución |
Auto |
ESC |
Detiene la ejecución |
Auto |
Control-K |
Limpiar trazo posterior |
Auto/Manual |
V |
Cambia cíclicamente entre las vistas preestablecidas |
Auto/Manual |
Mayús. Izq, Der |
Movimiento rápido eje X |
Manual |
Mayús.-Arriba, Abajo |
Movimiento rápido eje Y |
Manual |
Mayús.-Pág. Arriba, Pág. Abajo |
Movimiento rápido eje Z |
Manual |
@ |
Alternar Real/Ordenada |
Cualquiera |
# |
Alternar Relativo/Máquina |
Cualquiera |
5. Mostrar estado de LinuxCNC (linuxcnctop)
AXIS incluye un programa llamado linuxcnctop que muestra algunos de los detalles del estado de LinuxCNC. Puedes ejecutar este programa mediante Máquina > Mostrar estado de LinuxCNC
El nombre de cada elemento se muestra en la columna izquierda. El valor actual se muestra en la columna derecha. Si el valor ha cambiado recientemente, se muestra sobre un fondo rojo.
6. Interfaz MDI
AXIS incluye un programa llamado mdi que permite la entrada en modo texto de comandos MDI a una sesión de LinuxCNC en ejecución. Este programa se puede ejecutar directamente desde la línea de comandos abriendo una terminal y escribiendo:
mdi
Una vez que se está ejecutando, muestra el mensaje MDI>. Cuando se ingresa una linea en blanco se muestra la posición actual de la máquina. Cuando se ingresa un comando, se envía a LinuxCNC para ser ejecutado.
Esta es una sesión de muestra de mdi:
$ mdi
MDI>
(0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
MDI> G1 F5 X1
MDI>
(0.5928500000000374, 0.0, 0.0, 0.0, 0.0, 0.0)
MDI>
(1.0000000000000639, 0.0, 0.0, 0.0, 0.0, 0.0)
7. axis-remote
AXIS incluye un programa llamado axis-remote que puede enviar ciertos comandos a un AXIS en ejecución. Los comandos disponibles se muestran ejecutando axis-remote --help, que incluyen el de verificación de ejecución de AXIS (--ping), el de carga de un archivo por nombre, recarga del archivo cargado actualmente (--reload) y el de salir de AXIS (--quit).
8. Cambio manual de herramienta
LinuxCNC incluye un componente HAL en tiempo no-real llamado hal_manualtoolchange, que muestra una ventana que le indica qué herramienta se espera cuando se emite el comando M6. Después de presionar el botón Aceptar, la ejecución del programa continuará.
El componente hal_manualtoolchange incluye un pin HAL para un botón que se puede conectar a un botón físico para completar el cambio de herramienta y eliminar la ventana de captura (hal_manualtoolchange.change_button).
El archivo de configuración de HAL lib/hallib/axis_manualtoolchange.hal muestra los comandos HAL necesarios para usar este componente.
hal_manualtoolchange se puede usar incluso cuando AXIS no se usa como GUI. Este componente es más útil si tiene herramientas predefinidas y usa la tabla de herramientas.
|
Nota
|
Nota importante: los rápidos no se mostrarán en la vista previa después de emitir un T<n> hasta el siguiente movimiento de alimentación después de M6. Esto puede ser muy confuso para la mayoría de los usuarios. Para desactivar esta función para el cambio de herramienta actual, programe un G1 sin movimiento después de T<n>. |
9. Módulos Python
AXIS incluye varios módulos Python que pueden ser útiles para otros. Para más información sobre uno de estos módulos, use pydoc <nombre del módulo> o lea el código fuente. Estos módulos incluyen:
-
emc proporciona acceso a los canales de comando, estado y error de LinuxCNC
-
gcode proporciona acceso al intérprete rs274ngc
-
rs274 proporciona herramientas adicionales para trabajar con archivos rs274ngc
-
hal permite la creación de componentes HAL en tiempo no-real escritos en Python
-
_togl proporciona un widget OpenGL que puede usarse en aplicaciones Tkinter
Para utilizar estos módulos en sus propios scripts, debe asegurarse que el directorio donde residen esté en la ruta de módulos de Python. Cuando se ejecuta una versión instalada de LinuxCNC, esto debería suceder automáticamente. Cuando ejecutando una RIP, esto se puede hacer mediante el guion scripts/rip-environment.
10. AXIS en modo torno
Incluyendo la línea LATHE = 1 en la sección [DISPLAY] del archivo INI, AXIS selecciona el modo de torno. El eje Y no se muestra en las lecturas de coordenadas, la vista se cambia mostrando el eje Z extendido hacia la derecha y el eje X extendido hacia la parte inferior de la pantalla, y se quitan varios controles (como los de vistas preestablecidas). Las lecturas de coordenadas para X se reemplazan con diámetro y radio.
Al presionar V se hace zoom para mostrar el archivo completo, si hay uno cargado.
En el modo de torno, se muestra la forma de la herramienta cargada (si existe).
Para cambiar la visualización a un torno de herramienta trasera necesitas tener las dos configuraciones LATHE = 1 y BACK_TOOL_LATHE = 1 en la sección [DISPLAY]. Esto invertirá la vista y colocará la herramienta en la parte trasera del eje Z.
11. Usando AXIS en el modo de corte de espuma
Incluyendo la línea FOAM = 1 En la sección [DISPLAY] del archivo INI, AXIS selecciona el modo de corte de espuma. En la vista previa del programa, los movimientos XY se muestran en un plano, y los movimientos UV en otro. En el trazo en vivo, se dibujan líneas entre los puntos correspondientes en el plano XY y el plano UV. Los comentarios especiales (XY_Z_POS) y (UV_Z_POS) establecen las coordenadas Z de estos planos, que por defecto son 0 y 1.5 unidades de máquina.
12. Configuración avanzada
Cuando se inicia AXIS, se crean los pines HAL para la GUI y se ejecuta el archivo HAL nombrado [HAL]POSTGUI_HALFILE=<nombre de archivo> en el archivo INI. Típicamente <nombre de archivo> sería el nombre base de configuraciones + _postgui + .hal, p.ej. torno_postgui.hal, pero puede ser cualquier nombre válido. Estos comandos se ejecutan después de construir la pantalla, garantizando que los pines HAL del widget estén disponibles. Se pueden tener varias líneas de POSTGUI_HALFILE=<nombre de archivo> en el INI; cada uno será ejecutado uno tras de otro en el orden en que aparezcan.
Para obtener más información sobre la configuración del archivo INI que puede cambiar la forma en que AXIS trabaja, ver la Sección DISPLAY del capítulo de configuración INI.
12.1. Filtros de programa
AXIS tiene la capacidad de enviar archivos cargados a través de un programa filtro. Este filtro puede realizar cualquier tarea deseada: algo tan simple como asegurarse el archivo termina con M2, o algo tan complicado como generar código G a partir de una imagen.
La sección [FILTER] del archivo INI controla cómo funcionan los filtros. Primero, para cada tipo de archivo, se escribe una línea PROGRAM_EXTENSION. Luego, se especifica el programa a ejecutar para cada tipo de archivo. Este programa recibe el nombre del archivo de entrada como su primer argumento, y debe escribir código rs274ngc en la salida estándar. Esta salida es lo que se mostrará en el área de texto, se previsualizará en el área de visualización y será ejecutado por LinuxCNC con Ejecutar. Las líneas siguientes agregan soporte para el convertidor image-to-gcode incluido en LinuxCNC:
[FILTER] PROGRAM_EXTENSION = .png,.gif Imagen de profundidad en escala de grises png = image-to-gcode gif = image-to-gcode
También es posible especificar un intérprete:
PROGRAM_EXTENSION = .py Script Python py = python
De esta manera, cualquier script de Python se puede abrir, y su salida es tratada como código G. Un ejemplo de este script está disponible en nc_files/holecircle.py. Este script crea código G para perforar una serie de agujeros a lo largo de la circunferencia de un círculo.
Si la variable de entorno AXIS_PROGRESS_BAR está establecida, entonces las líneas escriben al stderr del formulario
FILTER_PROGRESS=%d
establecerá la barra de progreso de AXIS en el porcentaje dado. Esta característica debe ser utilizada por cualquier filtro que se ejecute durante mucho tiempo.
12.2. La base de datos de recursos X
Los colores de la mayoría de los elementos de la interfaz de usuario AXIS pueden ser personalizados a través de la base de datos de recursos X. El archivo de ejemplo axis_light_background cambia los colores de la ventana de trazo posterior a un esquema líneas oscuras en fondo blanco, y también sirve como una referencia para elementos configurables en el área de visualización. El archivo de ejemplo axis_big_dro cambia la posición de lectura a una fuente de tamaño más grande. Para utilizar estos archivos:
xrdb -merge /usr/share/doc/emc2/axis_light_background
xrdb -merge /usr/share/doc/emc2/axis_big_dro
Para obtener información sobre los otros elementos que se pueden configurar en aplicaciones Tk, ver las páginas del manual de Tk.
Dado que los entornos de escritorio modernos hacen algunas configuraciones automáticamente en la base de datos de recursos X que afectan adversamente a AXIS, estos ajustes son ignorados por defecto. Para hacer que los elementos de la base de datos de recursos X anulen los valores predeterminados de AXIS, incluya la siguiente línea en sus Recursos X:
*AXIS*optionLevel: widgetDefault
esto hace que las opciones integradas se creen en el nivel de opción widgetDefault, de modo que X Resources (que son nivel userDefault) pueda anularlas.
12.3. Perilla de trote
Para mejorar la interacción de AXIS con una perilla de trote, el eje actualmente seleccionado en la GUI también se reporta en un pin HAL con un nombre como axisui.jog.x. A excepción de un corto tiempo después de cambiar el eje actual, solo uno de estos pines es Verdadero a la vez, y el resto permanecen en Falso.
Después de que AXIS ha creado estos pines HAL, ejecuta el archivo HAL con: [HAL]POSTGUI_HALFILE. Lo que difiere de [HAL]HALFILE, el cual solo puede usarse una vez.
12.4. ~/.axisrc
Si existe, el contenido de ~/.axisrc se ejecuta como código fuente Python justo antes de mostrar la interfaz gráfica de usuario de AXIS.
Los detalles de lo que se puede escribir en ~/.axisrc están sujetos a cambios durante el ciclo de desarrollo.
Lo siguiente agrega Control-Q como método abreviado de teclado para Salir.
root_window.bind("<Control-q>", "destroy .")
help2.append(("Control-Q", "Quit"))
Lo siguiente detiene el cuadro de diálogo "¿Realmente desea salir?".
root_window.tk.call("wm","protocol",".","WM_DELETE_WINDOW","destroy .")
12.5. USER_COMMAND_FILE
Puede especificarse un archivo Python específico de configuración en un archivo INI configurando [DISLAY]USER_COMMAND_FILE=filename.py. Al igual que un archivo ~/.axisrc, este archivo corre justo antes de que se muestre la GUI de AXIS. Este archivo es específico de una configuración de archivo INI, no del directorio de inicio del usuario.
12.6. user_live_update()
La GUI AXIS incluye una función no-op (marcador de posición) llamada user_live_update() que se ejecuta al final de la función update() de su clase LivePlotter. Esta función puede ser implementada dentro de scripts Python en ~/.axisrc o en [DISPLAY]USER_COMMAND_FILE para realizar acciones personalizadas periódicas. Los detalles de lo que puede lograrse con esta función dependerán de la implementación de la GUI AXIS y sujetos a cambios durante el ciclo de desarrollo.
12.7. user_hal_pins()
La GUI AXIS incluye una función de no-operación (marcador de posición) llamada user_hal_pins().
Se ejecuta justo después de llamar al archivo .axisrc y justo antes inicializar cualquier panel GladeVCP / pestaña incrustada.
Esta función puede implementarse dentro de un script Python ~/.axisrc o [DISPLAY]USER_COMMAND_FILE para hacer que los pines HAL personalizados usen el prefijo axisui..
Use comp como la referencia de instancia del componente HAL.
Se llama a HAL comp.ready() justo después de regresar de esta función.
12.8. Editor externo
Las opciones de menú Archivo > Editar … y Archivo > Editar tabla de herramientas … estarán disponibles después de definir el editor en la sección INI [DISPLAY]. Los valores útiles incluyen EDITOR=gedit y EDITOR=gnome-terminal -e vim. Para obtener más información, ver la Sección display del capítulo de Configuración INI.
12.9. Panel de control virtual
AXIS puede mostrar un panel de control virtual personalizado en la columna derecha o en la última fila. Además, se pueden mostrar uno o más paneles como pestañas incrustadas. Se pueden programar botones, indicadores, visualizadores de datos y más cosas. Para más información, consultar los capítulos PyVCP y GladeVCP.
12.10. Control de vista previa
Se pueden insertar comentarios especiales en el archivo de código G para controlar cómo se comporta la vista previa de AXIS. En caso de querer limitar el dibujo de la vista previa, utilizar estos comentarios especiales. Cualquier cosa entre (AXIS,hide) y (AXIS,show) no se dibujará durante la vista previa. (AXIS,hide) y (AXIS,show) deben usarse en pares, con (AXIS,hide) primero. Cualquier cosa después de (AXIS,stop) no se dibujará durante la vista previa.
Estos comentarios son útiles para despejar la visualización de vista previa (por ejemplo, mientras se depura un archivo de código G más grande, se puede deshabilitar la vista previa de ciertas partes que ya están trabajando bien).
-
(AXIS,hide) Detiene la vista previa (debe estar primero)
-
(AXIS,show) Reanuda la vista previa (debe seguir un hide)
-
(AXIS,stop) Detiene la vista previa desde aquí hasta el final del archivo.
-
(AXIS,notify,el_texto) Muestra el_texto como una visualización de información
Esta visualización puede ser útil en la vista previa de AXIS cuando no se muestran los comentarios (debug,mensaje).
12.11. Touch off usando posición real
La característica de touch off puede incorporar opcionalmente el valor de la posición real del eje en los cálculos del offset. Esto se usa primordialmente en casos donde un eje no motorizado, como el del cañón en una máquina fresadora, proporciona retroalimentación a LinuxCNC por medio de un codificador, pero no sin haber motor para controlar su movimiento. Esto permite a AXIS proporcionar una visualización DRO para tal eje con capacidad touch off funcional.
Esta característica se activa en un eje alterando la sección [AXIS_x] apropiada en el archivo INI. Agregando una opción llamada TOUCHOFF_ACTUAL y estableciendo el valor a PLUS o MINUS dependiendo de cómo se quiera aplicar la posición actual al offset.
Ejemplo:
[AXIS_Z] TOUCHOFF_ACTUAL = MINUS
Ordinariamente, solo se usa la posición ordenada de un eje para establecer este offset, lo que significa que no funciona como debería por que a los ejes no motorizados nunca se les ordena moverse, y por lo tanto su posición ordenada siempre es 0.
Touch off envía un comando G10 L20 al MDI para establecer el nuevo valor de offset. El valor aplicado es normalmente solo el valor introducido en la caja de diálogo. Cuando se activa esta característica, sumará o restará el valor de la posición actual al valor introducido en el diálogo, dependiendo de cómo se haya configurado.
13. Axisui
Para mejorar la interacción de AXIS con perillas de trote físicas, el eje actualmente seleccionado en la GUI también se reporta en un pin con un nombre como axisui.jog.x. Uno de estos pines es verdadero y el resto son falso. Están diseñados para controlar los pines que habilitan el movimiento de trote.
AXIS tiene pines HAL para indicar qué botón de selección de trote está seleccionado en el pestaña Control manual.
Tipo Dir Nombre
bit OUT axisui.jog.x
bit OUT axisui.jog.y
bit OUT axisui.jog.z
bit OUT axisui.jog.a
bit OUT axisui.jog.b
bit OUT axisui.jog.c
bit OUT axisui.jog.u
bit OUT axisui.jog.v
bit OUT axisui.jog.w
AXIS tiene un pin HAL para indicar el incremento de trote seleccionado en Pestaña manual.
Tipo Dir Nombre
float OUT axisui.jog.increment
AXIS tiene un pin de salida HAL para indicar que ha ocurrido un aborto. El pin axisui.abort será TRUE y regresará a FALSE después de 0.3ms.
Tipo Dir Nombre
bit OUT axisui.abort
AXIS tiene un pin de salida HAL para indicar que ha ocurrido un error. El pin axisui.error permanecerá TRUE hasta que se hayan confirmado todas las notificaciones de error.
Tipo Dir Nombre
bit OUT axisui.error
AXIS tiene pines de entrada HAL para borrar las notificaciones emergentes de errores e información.
Tipo Dir Nombre
bit IN axisui.notifications-clear
bit IN axisui.notifications-clear-error
bit IN axisui.notifications-clear-info
AXIS tiene un pin de entrada HAL que deshabilita/habilita la función Pausa/Reanudar.
Tipo Dir Nombre
bit IN axisui.resume-inhibit
14. Sugerencias de personalización de AXIS
AXIS es un código bastante grande y difícil de penetrar. Esto es útil para mantener el código estable pero dificulta la personalización.
Aquí mostraremos fragmentos de código para modificar comportamientos o elementos visuales de la pantalla. Hay que tener en cuenta que el código interno de AXIS puede cambiar de vez en cuando.
No se garantiza que estos fragmentos continúen funcionando - pueden necesitar ajustes.
14.1. La función de actualización
Hay una función en AXIS nombrada user_live_update que se llama cada vez que AXIS se actualiza solo. Puedes usar esto para actualizar tus propias funciones.
# función de actualización continua def user_live_update(): print('impreso en cada actualización...')
14.2. Deshabilitar el cuadro de diálogo Cerrar
# deshabilita el diálogo de confirmación de cierre root_window.tk.call("wm","protocol",".","WM_DELETE_WINDOW","destroy .")
14.3. Cambiar la fuente del texto
# cambiar la fuente font = 'sans 11' fname,fsize = font.split() root_window.tk.call('font','configure','TkDefaultFont','-family',fname,'-size',fsize) # rehace el texto en pestañas para que cambien al tamaño de la nueva fuente predeterminada root_window.tk.call('.pane.top.tabs','itemconfigure','manual','-text',' Manual - F3 ') root_window.tk.call('.pane.top.tabs','itemconfigure','mdi','-text',' MDI - F5 ') root_window.tk.call('.pane.top.right','itemconfigure','preview','-text',' Preview ') root_window.tk.call('.pane.top.right','itemconfigure','numbers','-text',' DRO ') # la fuente código G es independiente root_window.tk.call('.pane.bottom.t.text','configure','-foreground','blue') #root_window.tk.call('.pane.bottom.t.text','configure','-foreground','blue','-font',font) #root_window.tk.call('.pane.bottom.t.text','configure','-foreground','blue','-font',font,'-height','12')
14.4. Modificar velocidad rápida con atajos de teclado
# use control + ` o 1-0 como atajos de teclado para acelerar y mantener ` o 1-0 para avance # también agrega texto a la referencia rápida en la ayuda help1.insert(10,("Control+ `,1..9,0", _("Establecer ajuste de rápidos de 0% a 100%")),) root_window.bind('<Control-Key-quoteleft>',lambda event: set_rapidrate(0)) root_window.bind('<Control-Key-1>',lambda event: set_rapidrate(10)) root_window.bind('<Control-Key-2>',lambda event: set_rapidrate(20)) root_window.bind('<Control-Key-3>',lambda event: set_rapidrate(30)) root_window.bind('<Control-Key-4>',lambda event: set_rapidrate(40)) root_window.bind('<Control-Key-5>',lambda event: set_rapidrate(50)) root_window.bind('<Control-Key-6>',lambda event: set_rapidrate(60)) root_window.bind('<Control-Key-7>',lambda event: set_rapidrate(70)) root_window.bind('<Control-Key-8>',lambda event: set_rapidrate(80)) root_window.bind('<Control-Key-9>',lambda event: set_rapidrate(90)) root_window.bind('<Control-Key-0>',lambda event: set_rapidrate(100)) root_window.bind('<Key-quoteleft>',lambda event: set_feedrate(0)) root_window.bind('<Key-1>',lambda event: set_feedrate(10)) root_window.bind('<Key-2>',lambda event: set_feedrate(20)) root_window.bind('<Key-3>',lambda event: set_feedrate(30)) root_window.bind('<Key-4>',lambda event: set_feedrate(40)) root_window.bind('<Key-5>',lambda event: set_feedrate(50)) root_window.bind('<Key-6>',lambda event: set_feedrate(60)) root_window.bind('<Key-7>',lambda event: set_feedrate(70)) root_window.bind('<Key-8>',lambda event: set_feedrate(80)) root_window.bind('<Key-9>',lambda event: set_feedrate(90)) root_window.bind('<Key-0>',lambda event: set_feedrate(100))
14.5. Leer el archivo INI
# leer un elemento del archivo INI machine = inifile.find('EMC','MACHINE') print('nombre de máquina =',machine)
14.6. Lectura del estado de LinuxCNC
# El estado de LinuxCNC se puede leer desde s. print(s.actual_position) print(s.paused)
14.7. Cambiar la vista actual
# establecer la vista de la vista previa # las vistas válidas son view_x view_y view_y2 view_z view_z2 view_p command.set_view_z()
14.8. Crear nuevos pines AXISUI HAL
def user_hal_pins(): comp.newpin('my-new-in-pin', hal.HAL_BIT, hal.HAL_IN) comp.ready()
14.9. Crear nuevos componentes y pines HAL
# crear un componente mycomp = hal.component('my_component') mycomp.newpin('idle-led',hal.HAL_BIT,hal.HAL_IN) mycomp.newpin('pause-led',hal.HAL_BIT,hal.HAL_IN) mycomp.ready() # conectar pines hal.new_sig('idle-led',hal.HAL_BIT) hal.connect('halui.program.is-idle','idle-led') hal.connect('my_component.idle-led','idle-led') # establecer un pin hal.set_p('my_component.pause-led','1') # obtener un pin de rama 2,8+ value = hal.get_value('halui.program.is-idle') print 'value is a',type(value),'value of',value
14.10. Cambiar pestañas con pines HAL
# los pines HAL de un panel GladeVCP no estarán listos cuando se ejecute user_live_update # para leerlos necesita ponerlos en un bloque try/except # el siguiente ejemplo supone 5 botones HAL en un panel GladeVCP utilizado para cambiar # las pestañas en la pantalla AXIS. # los nombres de los botones son 'manual-tab', 'mdi-tab', 'preview-tab', 'dro-tab', 'user0-tab' # la pestaña user_0, si existe, sería la primera pestaña GladeVCP incrustada # para la rama LinuxCNC 2.8+ def user_live_update(): try: if hal.get_value('gladevcp.manual-tab'): root_window.tk.call('.pane.top.tabs','raise','manual') elif hal.get_value('gladevcp.mdi-tab'): root_window.tk.call('.pane.top.tabs','raise','mdi') elif hal.get_value('gladevcp.preview-tab'): root_window.tk.call('.pane.top.right','raise','preview') elif hal.get_value('gladevcp.numbers-tab'): root_window.tk.call('.pane.top.right','raise','numbers') elif hal.get_value('gladevcp.user0-tab'): root_window.tk.call('.pane.top.right','raise','user_0') except: pass
14.11. Agregar un botón para ir a casa
def goto_home(axis): if s.interp_state == linuxcnc.INTERP_IDLE: home = inifile.find('JOINT_' + str(inifile.find('TRAJ', 'COORDINATES').upper().index(axis)), 'HOME') mode = s.task_mode if s.task_mode != linuxcnc.MODE_MDI: c.mode(linuxcnc.MODE_MDI) c.mdi('G53 G0 ' + axis + home) # hacer un botón para llevar a casa el eje Y root_window.tk.call('button','.pane.top.tabs.fmanual.homey','-text','Home Y','-command','goto_home Y','-height','2') # colocar el botón root_window.tk.call('grid','.pane.top.tabs.fmanual.homey','-column','1','-row','7','-columnspan','2','-padx','4','-sticky','w') # cualquier función llamada desde Tcl debe agregarse a TclCommands TclCommands.goto_home = goto_home commands = TclCommands(root_window)
14.12. Agregar botón al marco manual
# crea un nuevo botón y lo pone en el marco manual root_window.tk.call('button','.pane.top.tabs.fmanual.mybutton','-text','My Button','-command','mybutton_clicked','-height','2') root_window.tk.call('grid','.pane.top.tabs.fmanual.mybutton','-column','1','-row','6','-columnspan','2','-padx','4','-sticky','w') # lo anterior envía el comando "mybutton_clicked" cuando se hace clic # otras opciones son vincular un comando de pulsar o soltar (o ambos) al botón # estos pueden ser adicionales o en lugar del comando seleccionado # si en lugar de eliminar '-command', 'mybutton_clicked', de la primera línea # Button-1 = botón izquierdo del mouse, 2 = derecho o 3 = medio root_window.tk.call('bind','.pane.top.tabs.fmanual.mybutton','<Button-1>','mybutton_pressed') root_window.tk.call('bind','.pane.top.tabs.fmanual.mybutton','<ButtonRelease-1>','mybutton_released') # funciones llamadas desde los botones def mybutton_clicked(): print('mybutton fue clicado') def mybutton_pressed(): print('mybutton fue presionado') def mybutton_released(): print('mybutton fue liberado') # cualquier función llamada desde Tcl debe agregarse a TclCommands TclCommands.mybutton_clicked = mybutton_clicked TclCommands.mybutton_pressed = mybutton_pressed TclCommands.mybutton_released = mybutton_released commands = TclCommands(root_window)
14.13. Lectura de variables internas
# las siguientes variables pueden leerse desde la instancia vars print(vars.machine.get()) print(vars.emcini.get()) active_codes = StringVar block_delete = BooleanVar brake = BooleanVar coord_type = IntVar display_type = IntVar dro_large_font = IntVar emcini = StringVar exec_state = IntVar feedrate = IntVar flood = BooleanVar grid_size = DoubleVar has_editor = IntVar has_ladder = IntVar highlight_line = IntVar interp_pause = IntVar interp_state = IntVar ja_rbutton = StringVar jog_aspeed = DoubleVar jog_speed = DoubleVar kinematics_type = IntVar linuxcnctop_command = StringVar machine = StringVar max_aspeed = DoubleVar max_maxvel = DoubleVar max_queued_mdi_commands = IntVar max_speed = DoubleVar maxvel_speed = DoubleVar mdi_command = StringVar metric = IntVar mist = BooleanVar motion_mode = IntVar on_any_limit = BooleanVar optional_stop = BooleanVar override_limits = BooleanVar program_alpha = IntVar queued_mdi_commands = IntVar rapidrate = IntVar rotate_mode = BooleanVar running_line = IntVar show_distance_to_go = IntVar show_extents = IntVar show_live_plot = IntVar show_machine_limits = IntVar show_machine_speed = IntVar show_program = IntVar show_pyvcppanel = IntVar show_rapids = IntVar show_tool = IntVar show_offsets = IntVar spindledir = IntVar spindlerate = IntVar task_mode = IntVar task_paused = IntVar task_state = IntVar taskfile = StringVar teleop_mode = IntVar tool = StringVar touch_off_system = StringVar trajcoordinates = StringVar tto_g11 = BooleanVar view_type = IntVar
14.14. Ocultar widgets
# ocultar un widget # use 'grid' o 'pack' dependiendo de cómo se colocó originalmente root_window.tk.call('grid','forget','.pane.top.tabs.fmanual.jogf.zerohome.tooltouch')
14.15. Cambiar una etiqueta
# cambiar la etiqueta de un widget root_window.tk.call('setup_widget_accel','.pane.top.tabs.fmanual.mist','Downdraft') # asegurar que aparezca (solo es necesario en este caso si el botón de niebla estaba oculto) root_window.tk.call('grid','.pane.top.tabs.fmanual.mist','-column','1','-row','5','-columnspan','2','-padx','4','-sticky','w')
14.16. Redirigir un comando existente
# secuestrar un comando existente # originalmente el botón de niebla llama a la función de niebla root_window.tk.call('.pane.top.tabs.fmanual.mist','configure','-command','hijacked_command') # La nueva función def hijacked_command(): print('comando de niebla secuestrado') # agrega la función a TclCommands TclCommands.hijacked_command = hijacked_command commands = TclCommands(root_window)
14.17. Cambiar el color DRO
# cambiar la pantalla dro root_window.tk.call('.pane.top.right.fnumbers.text','configure','-foreground','green','-background','black')
14.18. Cambiar los botones de la barra de herramientas
# cambiar los botones de la barra de herramientas buW = '3' buH = '2' boW = '3' root_window.tk.call('.toolbar.machine_estop','configure','-image','','-text','ESTOP','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.machine_power','configure','-image','','-text','POWER','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.file_open','configure','-image','','-text','OPEN','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.reload','configure','-image','','-text','RELOAD','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.program_run','configure','-image','','-text','RUN','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.program_step','configure','-image','','-text','STEP','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.program_pause','configure','-image','','-text','PAUSE','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.program_stop','configure','-image','','-text','STOP','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.program_blockdelete','configure','-image','','-text','Skip /','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.program_optpause','configure','-image','','-text','M1','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.view_zoomin','configure','-image','','-text','Zoom+','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.view_zoomout','configure','-image','','-text','Zoom-','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.view_z','configure','-image','','-text','Top X','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.view_z2','configure','-image','','-text','Top Y','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.view_x','configure','-image','','-text','Right','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.view_y','configure','-image','','-text','Front','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.view_p','configure','-image','','-text','3D','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.rotate','configure','-image','','-text','Rotate','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.clear_plot','configure','-image','','-text','Clear','-width',buW,'-height',buH,'-borderwidth',boW)
14.19. Cambiar colores del plóter
En formato RGBA, en este orden: trote, rápidos, avance, arco, cambio de herramienta, sonda
# cambiar colores del plóter try: live_plotter.logger.set_colors((255,0,0,255), (0,255,0,255), (0,0,255,255), (255,255,0,255), (255,255,255,255), (0,255,255,255)) except Exception as e: print(e)