Okay, I have a very odd, but seemingly effective way of getting rid of **most** of the Z-axis being non-perpendicular to the bed.
The way I think about this, the Z-axis is getting error because of weight-induced (and motion-induced) deformation from two main places: Firstly, from the plastic deformation of the z-axis carriage and router mount, from the weight of the carriage and router and accessories. This tends to pull the tongue of the mount closer to the bed, as we know. The second part is the twisting of the gantry plate as that weight pulls on the bearing rods. Depending on where the Z-axis is in its travel, that could be a reasonably supported load, when the carriage is between the two horizontal x-axis bearing rods. But, once the router goes below that, it become more of a torque on the bridge/gantry itself. Thus that mondo plate they put into the unit. Both those forces cause deflection OF the Z-axis ALONG the Y-axis.
There are, of course, bit+material torque that shifts the carriage with angular force, but other than replacing the entire thing with super-rigid Gold plated Unobtainium, the more-proper way is to use speeds&feeds that minimize torque on finish passes...which we already do anyway.
I was looking at the various mounts, seeing if there was a way to adjust or even shim, and there really didn't seem to be a GOOD way. So instead, I cheated. The results won't be exactly directly applicable, since this is being done as part of an upgrade from a router to a "real" spindle with a Variable Frequency Drive (VFD) controller.
I went and found the drawing (here on the forums somewhere) for the mount. I modified it for the diameter of the spindle (80mm in my case), and then cut that out of Aluminum, using the router. As I watched it cut, three things occurred to me:
First, gosh darn it, the bit isn't hanging perfectly perpendicular to the table again! Grrrrr.....
Second, it dawned on me that once the part is done, if I flip the bracket over, it will actually cancel out nearly all of that sagging error.
And third, make sure to mark the "top" of the part before it gets machined, so you'll know which is which. I used the tab locations to keep track of it. If your z-carriage sagging is minimal, it can be difficult to tell which way to put it in, and then you'll have the same error.
The requirement, however, is that when you cut that bracket out, the direction that the clamping slot goes along has to be the direction that the mounts are sagging. That is, along the width of the bed. (Y-axis normally, I changed mine to be the X, but you get the idea). That way, the error in angle of droop will be (with very gentle cutting!) represented in the walls of the mount hole.
Now, this can be futzed up somewhat if there are z-axis lifts on the left-hand (y-positive) side of the hole, since the end of the bit will be dragged "straight up". Typically those lifts happen only in one place, so it hasn't seemed a problem when I've noticed it.
Additional sources of error can come in from the weight difference between the (new) aluminum bracket and the (old) plastic one. So, maybe use HDPE or similar like they do, to eliminate that source of additional sag. For me, with the new (heavier, torque-i-er) spindle, Aluminum just seemed the right choice.
Okay, so now you have your new bracket, and you know the top. Flip that sucka over, and the error **might** be gone. I say might because, after all, there's the bottom plate of the carriage. If your router press-fits into the non-clamping bottom bracket, it's entirely possible you won't be able to get all of the sag-correction. In my case, this isn't an issue, since the spindle doesn't contact that bottom bracket's mount hole.
Don't imagine you can do an iterative thing: make one that gets close, install it and make another. In order for that ONE bracket to compensate for ALL the error, the cutting tool has to cut ALL the error into the surfaces. If you have a partially compensated spindle, then you won't really get all the compensation needed.
Anyway, that's what I did...it seems to have removed maybe 90% of the error, but I suspect it will back when the heavier spindle arrives...which means I'll have to figure it out again
.
(Added....what a doofus...to get the droop-angle right for the spindle, when I'm making the part with the router, I should add, say 80% of the weight difference between the two, and put (okay, SECURE) that directly on the top of the router, thus simulating the spindle's weight...Ooooh...I like it!)
Regards,
Thom