I do everything I can to avoid tool changes in a job. Even when I probe for Z height, I run into the occasional issue.
I’ve been messing around with macros in CNCjs and wanted to share something that I think is pretty cool. In a job with a M6 tool change command, my macro will:
Go to a designated tool length offset (TLO) probe location in machine coordinates. Wait for confirmation.
Probe the Z axis & store the information.
Go to a tool change location and wait for tool change & confirmation.
Return to TLO probe location. Wait for confirmation.
Probe the Z axis & calculate the difference from the previous tool. Apply a tool length offset using G43.1
Wait for confrimation.
Go to tool change location (to remove wires & stuff). Wait for confirmation.
Restore all modal states, return to last location in job, continue job on resume.
Unfortunately, I’m no videographer, so the video I tried to get was garbage. I did capture the post tool change carving - below. I went from a long .25" end mill to a much shorter (~20mm) .125" one. The test carve I did had an intentional overlap of toolpaths, so I could assess the precision. In an earlier, non-carving, test I measured the difference in Z to be less than .001".
I just used an aluminum block laid on my wasteboard as a probe plate. Eventually, I may mill a pocket for a smaller probe plate so it doesn’t move. I really don’t need the “tool change location”, but it helped remind me of the steps.
Anyway, hope someone can use this. I’ve attached the TLO macro for CNCjs.
Video after tool change - https://photos.app.goo.gl/3PenMJsd9C6LKAzE3
I have another video where I tried the idea on another machine that I’m not going to post for reasons…if you want to see it, let me know and I’ll PM you a link.
TLO_SO3_XL macro.nc (2.8 KB)