Autor Tema: cambio de herramienta manual, como encontar Z,REMAPEADO DE M6, LINUXCNC  (Leído 7660 veces)

Desconectado Manrique

  • Global Moderator
  • Oficial 1ª
  • ****
  • Join Date: Sep 2009
  • Mensajes: 3689
  • Ubicación: Madrid
Empezando a dar mis primeros pasos con el InventorCam, gracias a Jmllosa que me paso un post procesador que funciona con linuxcnc, hoy he hecho una pieza super complicada, vamos la leche:

Bien, bromas aparte, todo el proceso tiene dos operaciones primero taladrado y luego fresado.
El problema está en que al taladrar la Z de la broca no tiene nada que ver con la Z de la fresa y no se como hacer para poder cambiar la Z en medio del programa, es decir, que cuando hago el cambio de herramieneta pueda ver cual es la nueva Z y pasarsela al programa...como cada vez que cambias de herramienta la z varia y además aunque vuelva a la misma herramienta, tampoco será igual, dependerá de cuanto meta el vastago en la pinza...
Debe ser algo bastante básico, pero...
« última modificación: 02 Abril 2015, 12:53 por Manrique »
Torno quantum D250x550, fresadora BF20, ambos con DRO Shumatech, sierra de cinta quantum S91G, taladro chinorri

Desconectado DEVILHUNTER

  • Aprendiz
  • *
  • Join Date: Ago 2010
  • Mensajes: 572
  • Ubicación: Oviedo/Madrid
Re:cambio e herramienta, como encontar Z??
« Respuesta #1 en: 29 Marzo 2015, 16:26 »
Si no posees portaherramientas intercambiables que mantengan la altura de la herramienta con repetitividad, hay varias formas de hacerlo (si lo tienes, es cuestión de meter los valores en la tabla de herramientas y ya LinuxCNC lo hace todo).

Lo primero vete a la tabla de herramientas y borra todos los valores que haya en las Z, que al instalar LinuxCNC vienen con un offset de 0.5 (que serían pulgadas) de ejemplo y a mi ya me ha jugado alguna mala pasada, hasta que descubrí que era por eso.

Lo segundo, si no quieres tener que meterte a cambiar las entrañas a LinuxCNC (remapping, que es cambiar lo que hacen las órdenes del código G) tendrás que separar en distintos archivos cada fresado que vayas a hacer con una herramienta.

Mecánicamente tienes este cacharro: http://www.ctctools.biz/mechanical-z-axis-pre-setter-with-dial-l151/

Simplemente bajas la herramienta hasta que llegue a cero (o el mismo valor que tuvieras antes), y pones el offset que quieras (diferencia entre el cero de ese cacharro y tu pieza). Para fresadoras manuales es muy útil para tener precisión y no tener que usar el método de las galgas, pero para CNC creo que hay un sistema mejor, la orden de touch probe.

En este post tienes explicado como se configura: http://foro.metalaficion.com/index.php?topic=14616.msg173660#msg173660

Una vez con esto así, colocas uno de los cables en la herramienta, y otro a la pieza. Acercas la herramienta manualmente a la pieza y con la fresadora "homeada" (que si no el MDI no funciona) escribes la velocidad a la que quieres que baje para hacer contacto (yo le pongo F20, es despacito, pero me asegura precisión). Escribes un G38.2 Z-100 y la fresadora empezará a bajar a 20mm/min hasta hacer contacto, momento en el que se parará. Ahí le marcas 0 en el eje (o la medida que sea en tu pieza) y listo.

Si la pieza es no conductora, o tu fresadora si lo es, tendrás que colocar un trozo de circuito impreso encima de la pieza para que la fresa haga contacto con él. Luego, obviamente, cuando marcas el 0, le tienes que decir que estas en Z igual al grosor del circuito.

Desconectado Manrique

  • Global Moderator
  • Oficial 1ª
  • ****
  • Join Date: Sep 2009
  • Mensajes: 3689
  • Ubicación: Madrid
Re:cambio e herramienta, como encontar Z??
« Respuesta #2 en: 29 Marzo 2015, 18:32 »
Gracias por la ayuda, lo de partir el codigo es lo que quería evitar a toda costa..., la idea serría poder introducir de manera automatica en los cambios de herramienta esa rutina de touch probe...
Voya ver si me aclaro...
Gracias
Torno quantum D250x550, fresadora BF20, ambos con DRO Shumatech, sierra de cinta quantum S91G, taladro chinorri

Desconectado DEVILHUNTER

  • Aprendiz
  • *
  • Join Date: Ago 2010
  • Mensajes: 572
  • Ubicación: Oviedo/Madrid
Re:cambio e herramienta, como encontar Z??
« Respuesta #3 en: 29 Marzo 2015, 19:45 »
Se puede hacer sin problema también, hay dos posibilidades:

La buena sería haciendo el remapping. La verdad es que me he leído los documentos pero no me he aclarado mucho y no me he puesto a probarlo aun. Si decides mirar por ahí y consigues algún avance, no dudes en enseñarnos:

http://linuxcnc.org/docs/html/remap/structure.html#_remapped_code_execution

De esta forma, cada vez que haya un cambio de herramienta, puedes hacer que al pulsar aceptar se vaya a un punto predeterminado, donde tengas la plaquita para tomar referencia y haga el touch probe.

La otra forma es hacer lo mismo pero introduciendo el código a mano en cada programa. Después del M6 sería algo así:

G53 G0 Z0 (Z0 cabezal arriba del todo)
X Y (irse al punto que tengas, en coordenadas maquina, la plaquita)
F20 (esto lo hace bastante lento si la distancia es demasiado larga, puedes hacer que vaya rápido y repetir luego mas despacio)
G38.2 Z-1000 (baja hasta tocar)
G10 L20 P1 Z0
G0 Z0
M3

Al final esto mismo va a ser lo que tengas que implementar en el remapping, solo que con lo otro lo hará automáticamente cada vez que haya un M6.

En este video se ve como lo hacen: https://www.youtube.com/watch?v=9H86iNWPYds

Desconectado Manrique

  • Global Moderator
  • Oficial 1ª
  • ****
  • Join Date: Sep 2009
  • Mensajes: 3689
  • Ubicación: Madrid
Re:cambio e herramienta, como encontar Z??
« Respuesta #4 en: 29 Marzo 2015, 21:27 »
Esto si que me ha gustado.
Me pongo con ello.
Torno quantum D250x550, fresadora BF20, ambos con DRO Shumatech, sierra de cinta quantum S91G, taladro chinorri

Desconectado Manrique

  • Global Moderator
  • Oficial 1ª
  • ****
  • Join Date: Sep 2009
  • Mensajes: 3689
  • Ubicación: Madrid
Re:cambio de herramienta, como encontar Z??
« Respuesta #5 en: 31 Marzo 2015, 12:53 »
Como una primera solución intermedia entre el remapping y colocar todo el codigo que propone Devilhunter (http://foro.metalaficion.com/index.php?topic=14616.msg173660#msg173660)
Podriamos hacer lo siguiente:
creamos un archivo que va a contener el codigo de Touchprobe para Z (El de Devil) con las siguientes modificaciones:
Citar
O<posicionz> sub
G53 G0 Z0 (Z0 cabezal arriba del todo)
X Y (irse al punto que tengas, en coordenadas maquina, la plaquita)
F20 (esto lo hace bastante lento si la distancia es demasiado larga, puedes hacer que vaya rápido y repetir luego mas despacio)
G38.2 Z-1000 (baja hasta tocar)
G10 L20 P1 Z0
G0 Z0
M3
O<posicionz> endsub
M2

El archivo se llamara: posicionz.ngc

Ahora, en cualquiera de nuestros programas, cuando necesitemos recalcular la Z solo tenemos que llamar a esta subrutina, podriamos ponerlo despues de un cambio de herramienta

Mi codigo....
...

O<posicionz> call
...
más codigo


Ojo, con esto así no vale, debemos añadir una cosa más en nuestro .INI para que sepa donde buscar esta subrutina:

Dentro del apartado [RS274NGC]
Añadiremos esta linea indicandole donde esta el directorio que las contiene.(Donde tengamos nuestro posicionz.ngc
SUBROUTINE_PATH= ../../usuario/linuxcnc/missubrutinas

Como muchos habreis notado, el codigo en general no está preparado para funcionar, habría que añadirle algunas lineas, como por ejemplo que fuese a una posición determinada para hacer la comprobación de altura, y a lo mejor un M0 para que se pare y nos de tiempo a colocar la sonda...
La idea que quería expresar es que podemos crear subrutinas, guardarlas y llamarlas desde cualquier programa.

Ahora vamos a ver si somos capaces de ponernos con el remapping...
Gracias Devil por indicarme el camino  ;)

He modificado el post pq había algunas cosas mal puestas...por cagaprisas...
« última modificación: 31 Marzo 2015, 14:31 por Manrique »
Torno quantum D250x550, fresadora BF20, ambos con DRO Shumatech, sierra de cinta quantum S91G, taladro chinorri

Desconectado DEVILHUNTER

  • Aprendiz
  • *
  • Join Date: Ago 2010
  • Mensajes: 572
  • Ubicación: Oviedo/Madrid
Re:cambio de herramienta, como encontar Z??
« Respuesta #6 en: 31 Marzo 2015, 14:44 »
Exacto, con una subrutina es mucho mas fácil de implementar ya que sólo hay que meter una línea en el código.

Supongo que te hayas dado cuenta pero esa subrutina es para calcular el centro de un agujero, no sirve para el cambio de herramienta (aunque la idea es la misma).

Al cambiar de herramienta no es necesario modificar ninguno de los valores de X e Y, sólo Z. Sería esta, que sustituiría a la línea que lleva el Tx M6:

%
O<cambioherramienta> sub
G53 G0 Z0 (cabezal arriba)
G53 G0 X0 Y0 (o las coordenadas XY en coordenadas máquina que tengas el sensor)
M5 (paramos el husillo)
M0 (parada en el programa, ahora cambiaremos la herramienta y cuando esté lista pulsamos continuar)
F200 (prueba rápida para no eternizarnos)
G91 G38.2 X-1000
G91 Z1
F20 (prueba lenta para tener mas precisión)
G91 G38.2 Z-2
G10 L20 P1 Z0 (o el offset que tengamos, lo explico abajo)
G90
G53 G0 Z0 (cabezal arriba de nuevo)
M3 (volvemos a encender el husillo)
O<cambioherramienta> endsub
%

Lo que os comento de los offset: esto tiene el problema de que el Z0 lo pone en el sensor, no en el Z0 que hayamos querido nosotros al generar el código G. Para evitarnos problemas con esto lo mas fácil es, a la hora de crear el código G, hacer que Z0 sea la superficie de nuestra mesa siempre. Si nuestro sensor es por ejemplo una chapita de 2 mm de grosor, hacemos G10 L20 P1 Z2, de manera que al hacer contacto el Z0 sea la mesa, como queríamos.

Para evitar choques, el Z0 de máquina (G53 Z0) debe ser con el cabezal arriba del todo, de manera que el cabezal en esta posición esté arriba, lo mas alejado de la mesa. No es estrictamente necesario hacerlo así (pero si lo cambiáis tenéis que cambiar este código también), pero es la regla general que siempre se usa.

Cuando termina esta subrutina, LinuxCNC sigue con las coordenadas X e Y que estuvierais utilizando antes (al menos en G54, si estáis con otro offset comprobadlo por si acaso), por lo que el fresado seguirá sin problemas.

Manrique en cuanto consigas avances en el remapping no dudes en comentarnos como lo has hecho, para un cambiador automático de herramientas es muy útil.
« última modificación: 31 Marzo 2015, 14:47 por DEVILHUNTER »

Desconectado Manrique

  • Global Moderator
  • Oficial 1ª
  • ****
  • Join Date: Sep 2009
  • Mensajes: 3689
  • Ubicación: Madrid
Re:cambio de herramienta, como encontar Z??
« Respuesta #7 en: 31 Marzo 2015, 16:06 »
Me di cuenta luego y he modificado el post.
No te preocupes que si consigo algo con el remapping os lo diré.
Torno quantum D250x550, fresadora BF20, ambos con DRO Shumatech, sierra de cinta quantum S91G, taladro chinorri

Desconectado Manrique

  • Global Moderator
  • Oficial 1ª
  • ****
  • Join Date: Sep 2009
  • Mensajes: 3689
  • Ubicación: Madrid
Re:cambio de herramienta, como encontar Z??
« Respuesta #8 en: 31 Marzo 2015, 22:37 »
REMAPPING:
Por lo que voy leyendo hay varios metodos para hacerlo, el más sencillo (y limitado) es reutilizar el comportamiento del codigo que queremos utilizar y hacer pequeños cambios en el, según la ayuda, por ejemplo, con M6, utilizar una sonda de altura de herramienta.
Aqui mis experimentos...
Básicamente hay que hacer 2 cosas:
  • Modificar nuestro .INI indicando el remapeo
  • Crear una Subrutina que se ejecute cuando se lanza el codigo

1.-Para este primer método, en nuetro .INI añadiremos en la sección [RS274NGC]
REMAP=M6 modalgroup=6 ngc=change

2.-Crearemos un archivo change.ngc en la carpeta donde tenemos nuestras subrutinas y a la que apuntamos con:
Citar
Dentro del apartado [RS274NGC]
Añadiremos esta linea indicandole donde esta el directorio que las contiene.(Donde tengamos nuestro posicionz.ngc
SUBROUTINE_PATH= ../../usuario/linuxcnc/missubrutinas
Como comentaba en el post de más arriba
el contenido de la subrutina será:
o<change> sub
M6 (hereda el comportamiento de M6)
...
todo nuestro codigo
...
m0 (pausa el programa hasta que hagamos el cambio y le digamos que siga)
0<change> endsub
m2


Con esto cuando en nuestro codigo aparezca un M6 T2
lo primero que pasara es que nos saltara el mensaje de cambio de herramienta, le damos a OK y entonces se ejecuta la subrutina donde hará lo que le digamos y con M0 se queda en pausa hasta que le digamos que siga.

La prueba que he hecho funciona, PEEERO no del todo...el problema que me he encontrado es que dentro de la subrutina cambio el feedrate y al salir de ella, cuando vuelvo al programa, la primera linea que tengo depues de M6 es un F100 que se pasa por el forro...
Quizá, si a la subrutina le paso valores de feedrate y antes de salir los restauro desde la subrutina funcione, pero aun no me he estudiado lo de las variables...
Seguiremos investigando...
Torno quantum D250x550, fresadora BF20, ambos con DRO Shumatech, sierra de cinta quantum S91G, taladro chinorri

Desconectado Manrique

  • Global Moderator
  • Oficial 1ª
  • ****
  • Join Date: Sep 2009
  • Mensajes: 3689
  • Ubicación: Madrid
Re:cambio de herramienta, como encontar Z??
« Respuesta #9 en: 01 Abril 2015, 09:23 »
 .yupi .yupi .yupi .yupi .yupi
Que sí que funciona!!! en la subrurina de mapeado le tenia puesto un G0 y al salir no había ningun G1 y todo lo hacia en G0 claro...
Asi pues este método creo que nos puede valer para el cambio de herramienta manual con sonda de altura.
Para cosas más complejas hay que usar un par de rutinas en Python  más otro par de archivos que llama epilogo y prologo, pero por ahora si me vale con esto no voy a entrar...
Torno quantum D250x550, fresadora BF20, ambos con DRO Shumatech, sierra de cinta quantum S91G, taladro chinorri

borondes2010

  • Visitante
Re:cambio de herramienta, como encontar Z??
« Respuesta #10 en: 01 Abril 2015, 09:33 »
Gracias por compartir..haber si poco a poco vamos saliendo de la oscuridad en linux cnc..aqui ay unos cuantos que de sobra saben estas cosas..pero claro como se creen tan PRO pues no comparten informacion..asi es que se J...N..al final siempre ay alguien que comparte informacion .ereselmejor .ereselmejor .brinda .brinda

Desconectado Manrique

  • Global Moderator
  • Oficial 1ª
  • ****
  • Join Date: Sep 2009
  • Mensajes: 3689
  • Ubicación: Madrid
Re:cambio de herramienta, como encontar Z??
« Respuesta #11 en: 01 Abril 2015, 10:54 »
Bueno, sigo retransmitiendo en directo, parece que con esto podriamos tener una rutina para el cambio manual, ahora hay que hacerla...
Mi idea es:
1.-Llegamos a M6 T1
2.-Subimos a Z segura
3.-Vamos a X,Y donde este la sonda
4.-Pausamos el programa para hacer el cambio de herramienta
5.-Una vez cambiada reanudamos el programa
6.-bajamos hasta tocar sonda
    En esta parte quiero hacer algo diferente, la sonda que tengo no es más que una chapa de aluminio aislada en su base, que dara contacto cuando toque con la herramienta (Regalito de Michel)
    En mi caso, por ejemplo si estoy haciendo un taladro y paso a fresar, cambio el portabrocas por el portapinzas y eso de por si me genera una diferencia de alturas considerable, con la sonda que tengo el contacto hay que hacerlo a muy poca velocidad, F20 supongo o menos, si tengo que bajar 70 mm a F20 me puedo morir esperando...
    Entonces, lo que quiero hacer es tener 2 zonas de contacto en la sonda, una zona "blanda", por ejemplo colocar un muelle con una chapita arriba, y otra zona "dura" que será la referencia buena. Con esto puedo hacer un primer contacto a alta velocidad en la zona blanda sin temor a romper nada, volver a subir un poco y bajar a baja velocidad en la zona dura para obtener la Z buena, al tocar sonda en la zona "dura" rehacemos el offset de la herramienta para no tocar las coordenadas.
7.-volvemos a z segura
8.-volvemos a x,y original
9.-bajamos a Z de trabajo
10.-continuamos programa

problemas:
Offset de herramienta aun no se como funciona...
« última modificación: 01 Abril 2015, 11:08 por Manrique »
Torno quantum D250x550, fresadora BF20, ambos con DRO Shumatech, sierra de cinta quantum S91G, taladro chinorri

Desconectado DEVILHUNTER

  • Aprendiz
  • *
  • Join Date: Ago 2010
  • Mensajes: 572
  • Ubicación: Oviedo/Madrid
Re:cambio de herramienta, como encontar Z??
« Respuesta #12 en: 01 Abril 2015, 11:59 »
Pues es mas sencillo de lo que parece el remapping, al menos el archivo central. Yo cuando vi lo del epilog y prolog en pyton dije: para otro día xD

Lo de dos zonas de pruebas es muy buena idea, puedes hacerlo como te puse arriba solo con cambiar las coordenadas de X e Y en la zona de baja velocidad de prueba, solo necesita una línea de código mas.

Los offset de las herramientas todos a cero, no los necesitas ya que al hacer el G10 L20 P1 Z0 ya incluye ahí el offset que tenga, con lo que si tienes un offset diferente con otra herramienta te va a hacer un estropicio. Los offset sirven si tienes por ejemplo varios portapinzas que permitan tener guardadas las alturas de antes, pero entonces no necesitarías el sensor.

Desconectado Manrique

  • Global Moderator
  • Oficial 1ª
  • ****
  • Join Date: Sep 2009
  • Mensajes: 3689
  • Ubicación: Madrid
Re:cambio de herramienta, como encontar Z??
« Respuesta #13 en: 01 Abril 2015, 14:25 »
Pero hay una cosa que no me convence...
Si en mi rutina de cambio de herramienta lo que estoy haciendo es poner a cero alguno de los sistemas de coordenadas, si en el programa estoy usando otro, no sirve de nada.
Por eso quisiera utilizar los offsets de herramientas, asi no toco ningun sistema de coordenadas.
No se no se...acabo de instalar la parte de hardware del sensor que me faltaba y esta tarde haré pruebas en la máquina, a ver que rompo...
Gracias
Torno quantum D250x550, fresadora BF20, ambos con DRO Shumatech, sierra de cinta quantum S91G, taladro chinorri

Desconectado Manrique

  • Global Moderator
  • Oficial 1ª
  • ****
  • Join Date: Sep 2009
  • Mensajes: 3689
  • Ubicación: Madrid
Re:cambio de herramienta, como encontar Z??
« Respuesta #14 en: 01 Abril 2015, 21:45 »
Bueno, creo que tengo una primera Beta de mi cambio manual de herramienta, como ireis viendo aun estoy muy pez en esto del codigo G y vereis alguna burrada...
Hay algunas cosas que no tengo aun claras asi que el codigo sufrira algunas modificaciones...
Lo primero añadir cositas en nuestro .INI:
[RS274NGC]
SUBROUTINE_PATH=../../usuario/linuxcnc/nc_files  ;la ruta donde estaran nuestras subrutinas
REMAP=M10 modalgroup=10 ncg=zinicio   ;remapeo el codigo M10 que no tiene uso, las nuevas instrucciones en el archivo zinicio
REMAP=M6 modalgroup=6 ncg=change   ;remapeo el M6 las nuevas instrucciones en el archivo change

Ahora vamos a por los dos archivos:
zinicio.ngc
Citar
O<zinicio> sub
M0
T1
G49
G1 F10
G91
G38.3 Z-10
(DEBUG, Punto de contacto en: #5063)
#1=[-5.18+#5063]
(DEBUG,Offset de herramienta para Z0: #1)
G43.1 z#1
G0 Z100
X100
(DEBUG,Situe la sonda bajo la herramienta)
M0
G38.3 Z-300 F100
(DEBUG,Punto de contacto en: #5063)
G1 G91 Z2 F50
G38.3 Z-3 F10
#<_constante>=#5063
G0 Z100
G90
O<zinicio> endsub
m2

Esta primera rutina hace 2 cosas:
Primero, colocando la sonda entre la herramienta y la pieza, bajara, hara contacto y calcula el offset para la herramienta, de manera que quede enrasada con la cara de la pieza.
La segunda, despues de esto va una posicion determinada y baja hasta la sonda que estara en un lugar fijo durante todo el proceso de mecanizado y que será el sitio al que vaya a calcular las nuevas alturas de herramienta.

Remapeo de M6:
change.ngc
Citar
O<change> sub
M6
G49 G91
G0 Z50
G90
G0 X130
M0
G91
G38.3 Z-400 F100
(DEBUG, punto de contacto:#5063)
G1 Z2 F50
G38.3 Z-4 F10
#1=[#5063-#<_constante>]
(DEBUG,Nuevo offset: #1)
G0 Z50
G90
O<change> endsub
m2

Este remapeo de M6 lo que hace es que cada vez que se ejecuta M6 va al sitio donde esta la sonda hace contacto y recalcula el offset para dejar la herramienta en Z0

Hay unas cuantas cosas pendientes:
que cada vez que entro en una subrutina, cuando termine vuelva al punto X Y donde empecé y a Z segura.
Cuando entro en una subrutina cambio cosas como el G90, y no se que otras que al salir de la subrutina deberian estar igual, un M70 y un M72 quizá valdrian, pero debo conservar el offset de la herramienta.
Donde colocar la sonda...


Bueno mañana coloco un video y le dare una vuelta a todo que esta cogido con alfileres...
Torno quantum D250x550, fresadora BF20, ambos con DRO Shumatech, sierra de cinta quantum S91G, taladro chinorri