Hola.
Cuando he necesitado localizar el centro de un cilindro montado en la mesa de la fresadora siempre me paso un monton de tiempo con galgas o comparadores para centrarlo.
He escrito un programita que te busca el centro haciendo 3 contactos, los necesarios para definir la circunferencia.
No importa ni el diámetro de la sonda ni el diámetro del cilindro, lo único necesario es arrancar el programa con el probe situado en el primer cuadrante si consideramos que el centro esta en 0,0.
Este programa no da el diámetro de la circunferencia, tan solo dice el centro de ella.
(Lunuxcnc Busca centro de una circunferencia por interior )
(Situar la probe en el primer cuadrante de la circunferencia)
( by jbecerra)
(Cambiar estos parametros)
#<Diametro_Aproximado> = 80
#<Velocidad_Busca> = 50
G64
(Toma primer punto)
g90 g38.3 y#<Diametro_Aproximado> f#<Velocidad_Busca>
#<X1> = #5061
(Toma segundo punto)
(Separarse de X1)
g91 g1 x-1 f#<Velocidad_Busca>
g90 g38.3 x[#5061 - #<Diametro_Aproximado>] f#<Velocidad_Busca>
#<X2> = #5061
#<Y2> = #5062
(Toma Tercer punto)
(Separarse de Y2)
g91 g1 Y-1f#<Velocidad_Busca>
g90 g38.3 Y[#5061 - #<Diametro_Aproximado>] f#<Velocidad_Busca>
#<Y3> = #5062
(Calcula X Centro, Y Centro)
#<X_Centro> = [#<X2>+[[#<X1>-#<X2>]/2]]
#<Y_Centro> = [#<Y2>+[[#<Y3>-#<Y2>]/2]]
(Va a centro)
g1 x#<X_Centro> y#<Y_Centro>
M30El ultimo movimiento sitúa la sonda en el centro de la circunferencia. Donde puede verse ya sus coordenadas.
En este vídeo se ve el proceso.
http://youtu.be/NkPS35BmCL4El diámetro del cilindro es de 73 mm, para que se pueda apreciar las dimensiones.
Funcionamiento del programa:

Con la sonda situada dentro del primer cuadrante del circulo que queremos localizar, representada por un punto negro que pone Inicio, vamos dirección Y+ hasta tocar, con esto tenemos los puntos X1 e Y1, luego avanzamos en -X hasta volver a tocar, obtenemos los puntos X2 e Y2 y para terminar en dirección -Y donde tomamos los puntos X3 e Y3.
El punto central entre X1 y X2 nos dan el X Central.
El punto central entre Y2 e Y3 nos dan el Y Central.
Usamos las variables del cnc #5061 y #5062 que corresponden al valor del X y del Y del contacto de la sonda.
La sonda con faldas.
Esta hecha de acetal y acero para poder usar el contacto eléctrico, el acero tiene un lado roscado a 10-100 que se aloja en el plastico.

Debido a que la sonda es rígida, el contacto con la pieza puede modificar su posición o forzar la misma sonda, se hace recomendable una baja velocidad para que el tiempo de frenar se minimice, en el video se ve como cuando contacta se deforma la falda.
Ahora toca modificar el programa para hacerlo usando las 2 posibles maneras de medir de esta sonda, usando la falda para avanzar a alta velocidad y una vez situados cerca usar la velocidad baja para aumentar la precisión.
Para conectar la sonda al linuxcnc tan solo es necesario un pin de entrada libre en la breakboard y unas linea en algún hal.
Si alguien tiene alguna consulta o duda intentare contestarla.