Ooh, thats a way back, pretty certain its in this thread though.
I have an encoder, a basic linear way(nylon block in channel) the encoder connects to a 2.5mm pitch belt in a loop, along the loop is connected an angle bracket facing an R8 socket.
The encoder is connected to an ENC module for the CSMIO, Mach3 has a macropump macro that looks at the input from this encoder and displays it on my screen-set, real-time. The screen has a "Zero" button and a "Set" button. The angle is lowered onto the socket on the setter, zero is pressed and the tool fitted, angle is lowered onto the tool tip and "Set" is pressed - this copies the encoder DRO to the tool table and then shows the table so you can give it a name etc.
Takes seconds to do, you can load tools in the middle of code if you forgot one or break one etc. The actual "height" displayed is irrelevant, its in an R8 socket which always locates on a set part of the taper just as the spindle does, the Haimer probe i use for TOM setting is also measured and entered - all my work is relative to this "tool".
The only cost was for the ENC module, the rest is all junk-box bits. It was a fun project basically, but quite useful.
Update -
Tool setter has now been shelved.
I have been chasing an odd error that manifests itself as cutters ploughing into my sub-table for no known reason by anywhere from 0.1mm to 0.5mm seemingly at random. After a LOT of testing and help from a friend, it boiled down to the fact that the tool setter i built was not accurate in all positions so the error varied with tool length.
It took many hours of testing with various styles of material top and tool length sensing but the results finally pointed to the setter outputting garbage and garbage in = garbage out as always. The most accurate method was to use the Z axis for tool measurement and tool table loading.
I have got some parts on way to mess about with but also ordered a bed-mounted tool setter that connects to my probe input so i can get back to automated TLO measurements - the price makes DIY pointless really but its from China so won't be here until next week. Supposed to have an accuracy of 0.001mm but i'll take that with a pinch of salt until i test it
A lot of grief was given over this saga, my sub-table now needs resurfacing, the mill was pulled apart, code was checked
and all attributed to lack of accuracy on the setter - the lesson learnt is that if you are telling a machine something is 50.023mm long then it better damn well be 50.023mm long