The latest Flashcut 2.XX series software has a number of tool-change friendly features, one of which is tool length sensing, something I've been desperate for. Within Setup, all you have to do is enter the tool-sensor location, a few other bits of Z data, and whatever formula you'd like to use to generate a G43 for the given tool.
After staring at the docs for a while, I decided to whip together a test rig. I bolted a microswitch onto a piece of aluminum, and did a few test tool swaps. Since all of my input lines were occupied, I "borrowed" one from the Servo Z axis position error line.
The first test was to determine the machine Z height of the spindle nose. Next, the spindle nose was used to set Program 0 on a chunk of aluminum. Using the spindle nose to touch-off program 0 allows any subsequent G43 offset to "raise" the Z, bringing the tip of the tool to the original program 0.
The formula to obtain G43 for a given tool is simply (X + #Machine.Z), where X is the known height in absolute Z of the switch relative to the spindle nose, and #Machine.Z is the absolute Z when the tool tip touches the switch.
For example, if the sensor/spindle nose contact (and this remains unchanged for all tools) is at -5, and the tool tip senses at -4.5, the formula is (5 + -4.5), yielding a G43 for that particular tool of 0.5.
Thus, tool swap is as simple as this: The G-code asks for "Tool #3". Select Tool #3 from the drop-down tool list, click the Tool Length... button, and after sensing, the G43 is automatically applied to Tool #3. It works great!!
This is a boon for my KaVo 4041 spindle which doesn't use fixed tooling, and allows me to experiment freely with ER16 spindles, etc, and not have to sweat numerous tool swaps.
Thanks FC for this nice addition to the software. All I need to do now is make a decent fixture.