Como conseguir el Origen Maquina con LinuxCNC

publicado en: Tutoriales | 0
En esta, voy a tratar de explicar algo que ya he comentado de pasada en este blog, y que a mi personalmente me ha llevado un poco de cabeza. Se trata del concepto de ORIGEN MAQUINA y ORIGEN PIEZA. También voy a hablar de como funcionan, para que sirven y como configurarlos. Espero que resulte didáctico.
En primer lugar, que es el origen pieza?
Cuando dibujamos cualquier geometría en 3D en un programa CAD, evidentemente lo dibujamos sobre unos planos ortogonales, cuya intersección es el origen de la pieza que vayamos a crear. Generalmente, este origen de coordenadas, sera en el que en el programa CAM se marque por defecto como origen pieza. A efectos de código, este origen sera siempre el 0,0,0. De forma que si le decimos por código a la fresadora que se vaya a la cota x40 y 10, se moverá a 4cm en el eje X de ese origen, y 1cm en el eje Y. Todas las coordenadas que se marquen en el código G serán con referencia a este origen pieza. Hasta aquí es fácil.
Pero que es el origen maquina?
Bueno, también es otro origen 0,0,0, pero esta referenciado a nuestra fresadora. Como cualquier fresadora, hay un volumen de trabajo, un espacio tridimensional donde la fresa puede llegar, en una 3 ejes, se trata de un paralelepípedo, que en mi caso mide 1000mm en X, 500mm en Y y 200mm en Z. Este volumen, también debe de tener un origen, que suele estar en una esquina. Y que sentido tiene tener este origen? porque cuando vayamos a cargar una pieza en nuestro programa de la fresadora (mach3 o linuxcnc), nosotros podemos colocar nuestro modelo en cualquier lugar dentro de ese volumen de trabajo. La fresadora siempre va a trabajar con respecto a las coordenadas referentes a su origen maquina, pero siempre tendremos la opción de hacer una “transferencia de orígenes”. Voy a poner un ejemplo sencillo.
Pongamos que tengo un programa de mecanizado, como el de la imagen siguiente, cuyo origen pieza esta en la base de la L de “LinuxCNC”
Origen LinuxCNC CNC Casera EMC2
Dentro de mi volumen de trabajo, yo debería poder colocar esta geometría (o código G de mecanizado) donde yo quisiera. Ahora bien, tendría que decirle al LinuxCNC donde lo voy a  colocar, para que el nuevo origen no este en la esquina de mi volumen de trabajo, si no en la base de la L del texto.
El programa, internamente lo que hace es sumar a todas las cotas del código G, la distancia entre el origen de coordenadas maquina y el nuevo origen de coordenadas pieza. De esta forma siempre tendremos la misma referencia (origen maquina) y podremos de forma muy sencilla colocar nuestro tocho de trabajo donde mas nos convenga.
Y como se hace esto en la practica con el LinuxCNC?
En primer lugar, siempre que arrancamos el programa, los orígenes en X, Y y Z vienen sin la posición “home”. Como en la imagen anterior, al final de la coordenada en X no esta el símbolo de origen (un circulo con dos cuadrantes en negro) lo que significa que no tiene definido el origen maquina y por lo tanto no va a dejar ejecutar ningún código. Por lo tanto lo primero que tendremos que hacer es definir el origen maquina.
Para ello tendremos que desplazar nuestra fresadora hasta el punto que nosotros queremos que sea el origen maquina. En mi caso, yo tengo una herramienta acabada en punta, con la que me voy desplazando y de forma medianamente precisa coloco en un punto que yo considero es mi origen maquina. En ese punto, me voy a la opción “Machine / Homing” y marco para cada eje la posición actual de la fresa como punto origen maquina. A partir de ese momento, esa sera la esquina de mi volumen de trabajo, y el LinuxCNC entenderá que mas allá de esos limites, la fresadora no se puede mover. Esto también es útil para no pasarnos y llevar el movimiento mas allá de los limites físicos de la maquina.
Bueno, ya hemos definido el origen maquina, por lo que ahora tenemos que definir el origen pieza. Para ello cargamos el programa o código G de lo que queramos. En Nuestro tocho de trabajo, tendremos que definirle donde estará el origen pieza. Por ejemplo, en el caso del programa de dibujar la palabra “LinuxCNC” yo usaría un tocho de 135x21mm, y colocaría el origen pieza en la base de la L. Si cojo el tocho de trabajo y lo amarro en mi bancada, lo que haré a continuación es colocar mi herramienta en punta sobre la esquina del tocho donde yo quiero que se mecanice la L. una vez con la fresa en esa posición. La coordenadas que me marca el LinuxCNC es la distancia que comentaba antes, y es la distancia que sumara a cada coordenada del programa (pero esto lo hace el solo, así que no hay que preocuparse). Es el momento de hacer la transferencia de orígenes.
Me voy a la opción de “regular offset” marcando cada eje, y colocando un 0 en el cuadro. De esta forma veremos que las coordenadas que me marca la pantalla han cambiado todas a 0, con lo cual ahora este en mi origen pieza y en la practica, el origen que voy a usar para mecanizar. Cuando ejecute el programa, lo haré todo en referencia a ese origen.
Se que esto no es fácil de entender, pero probando en diferentes piezas, se acaba comprendiendo y entendiendo la importancia de estos conceptos.
Lo practico de esto es que si en el tocho tengo definido el origen pieza, da igual donde lo coloque dentro de mi volumen de trabajo. Solo con llevar la fresa (o la punta de mi herramienta) a ese punto, y hacer un regular offset, habré cambiado el origen y mecanizara todo a partir de ahí.
Ahora bien, lo interesante y practico de estos conceptos, es tener SIEMPRE el mismo origen maquina, porque tendremos una total repetitividad en cualquier cosa que mecanicemos. Esto es fundamental, por ejemplo, si queremos continuar el mecanizado otro dia, apagamos el ordenador, y cuando lo volvemos a encender, como no coloquemos el origen en el mismo punto exacto, lo mas seguro es que el mecanizado continué desplazado, fastidiando la pieza. No obstante, si conseguimos que el origen maquina sea siempre el mismo, esto nunca nos pasara, y tendremos la confianza de que siempre ira al sitio exacto. Esto resulta no solo util, si no fundamental para el caso de que queramos voltear piezas para mecanizarlas por ambos lados.
¿Y el LinuxCNC como puede hacer esto?
Pues lo puede hacer y de una forma muy sencilla. Tiene una opción de buscar el origen maquina de forma automática y aprovechándose de los finales de carrera. Que creíais? que solo servían para no romper la maquina? pues tienen otra utilidad mucho mas practica.
Lo primero seria configurar los finales de carrera de forma que permitan esta opción. En el asistente de configuración de LinuxCNC, tenemos que configurar los finales de carrera con esta opción:
Origen LinuxCNC CNC Casera EMC2

En cada pin asociado a cada eje opción “Both Limit + Home X” esto significa que cada vez que se alcance el final de carrera de ese eje, interpretara el programa que o ha llegado a un limite físico (cuando esta mecanizado o moviéndose) o que ha llegado a la posición de origen maquina (cuando lo estemos buscando)

Después para cada eje hay que configurar las condiciones de “búsqueda” de ese origen

Origen LinuxCNC CNC Casera EMC2

En el caso de mi eje X, por ejemplo tenemos en el segundo bloque de opciones unos valores para buscar el origen maquina automáticamente.
Estos valores, aun no tengo del todo claro como funcionan, y para cada configuración de maquina y motores varia, así que tampoco podéis basaros 100% en esta configuración, pues esto es lo que me funciona a mi.

  • Table Travel: esto básicamente define el volumen de trabajo, el LinuxCNC sabrá que desde el origen maquina no podrá moverse mas de 1000mm (en mi caso) Ademas, de forma gráfica dibujara un paralelepípedo con las medidas que aquí coloquemos y que nos ayudaran para visualizar gráficamente nuestro volumen de trabajo.
  • Home Search Velocity: la velocidad con que ira a buscar el origen. Es importante no solo el valor si no también el signo. El valor no debería ser el máximo de movimiento que den de si los motores, principalmente por la inercia que arrastran. Ya que el no sabe que va a tocar el final de carrera hasta que lo toca, y pensad que cuando lo toca tendrá que frenar a movimiento 0 en 0mm… lo cual no hace ni de coña, vamos. Así que una velocidad moderada, tirando a lenta sera ideal, ya que le dará tiempo a pararse donde toca y no romper nada. El signo también es importante, pues definirá si el eje X, en este caso, se desplaza a la izquierda o a la derecha (en funcion de donde nos interese tener nuestro origen maquina)
  • Home Switch Location: esta sera la distancia física que habrá entre el origen maquina y el punto donde cada eje toque su final de carrera. Esto es, cuando mi eje X toque el final de carrera, el programa automáticamente colocara el origen maquina en este eje, 10mm antes de ese punto (10mm en mi caso) de esta forma nos aseguramos de que nunca llegaremos a volver a tocar el final de carrera. Ya que recordad que el programa, una vez definido el origen maquina, nunca permitirá sobrepasar los limites del volumen de trabajo.
  • Home location: Cuando haya encontrado el origen tocando el final de carrera, podemos hacer que se desplace la distancia que queramos del origen. Para que sirve esto? para que el hecho de buscar el origen maquina, no signifique que tengamos que dejar la fresadora en una posición incomoda, en una esquina del volumen de trabajo. A mi me va muy bien, por ejemplo, cuando encuentra el origen maquina en Z, que después suba 70mm para tener sitio para montar la fresa que quiera usar. En X e Y también, según me venga cómodo a mi.
  • Home latch direction, no lo tengo claro, pero creo que se refiere a una opción para cuando se configura un torno, por eso no le hago mucho caso.
Vale, tenemos configurado el LinuxCNC para encontrar nuestro origen maquina de forma automática, ahora toca saber como hacerlo. Y esto es lo mas sencillo del mundo.
Encendemos el LinuxCNC, y vamos a la opcion “Machine / homing” y elegimos Restaurar eje X. Según como lo hayamos puesto en el asistente, el eje X empezara a moverse en el sentido y velocidad que le hayamos configurado, hasta tocar el final de carrera. Una vez tocado, en la ventana donde salen las coordenadas, saldrá el icono de origen, y lo habra colocado a una distancia del punto de contacto con el final de carrera que hayamos puesto en “home switch location”. Después de tocar el final de carrera, se desplazara en sentido contrario la distancia que hayamos puesto en “home location”. Repetimos esto para todos los ejes, y ya tenemos el volumen de trabajo en el sitio real, y el origen maquina definido. Si cada vez que arrancamos el programa, hacemos esta operación (que no tiene que tardar mas de 20 segundos) siempre tendremos nuestros orígenes bien colocados.
Ahora solo tenemos que amarrar el tocho donde queramos, ir con la fresa donde queremos colocar el origen pieza en el tocho (aqui podemos ir con toda la precisión que queramos a definir la Z por ejemplo, para hacer grabados, o lo que sea) y hacemos un regular offset para cada eje, según nos interese.
Como veis, fácil y sencillo, y tremendamente útil. Yo he padecido mucho hasta descubrir estos conceptos y conseguir que mi fresadora fuera a buscar los orígenes automáticamente como yo quería, pero he reducido el tiempo de preparación de la pieza una barbaridad.
Espero que con estas instrucciones no perdáis tanto tiempo como he perdido yo. Insisto en que estos conceptos pueden resultar complicados, o liosos, o simplemente no consigáis dar con la configuración ideal para vuestra maquina. De ser así, siempre podéis consultarme. Intentare ayudaros en la medida de mis posibilidades.