A Coordinate Measuring Machine (CMM) captures XYZ measurements of differing points taken in 3d space. The one I am using is old, retired, out of calibration certification, and at it's outside edge of accuracy and repeatibility specifications. It still is a useful tool though.
I used it to take a dozen points of my printer's print bed and X carriage at their extremes of movement.
I captured the same 4 spots on the print bed both all the way forward, and all the way back by using the laser cut bed mounting holes on the Y sled. This tells me if there is any lift or fall or twist in the print bed's travel.
I also took points on the X carriage's nut captures at the four extremes of it's travel. Bottom left, bottom right, top right, top left. When compared to the Y, I can see if the X is level and square to the Y but also if the Z is square to the Y.
https://docs.google.com/spreadsheet/ccc?key=0Asb6Jfk9hsyhdHVHcmZvMFFjYUI0WHFuZVdjbXZZX2c&usp=sharing does an alignment of the captured points to the print bed. This gives meaningful measurement of the motion of the machine. You can look at the numbers and it makes sense because the front left corner of the print bed – where you home the printer, is assigned 0,0,0 and all points are a meaningful distance from 'home'. The CMM captures the points based on It's idea of 'home' and looking at the numbers is basically meaningless.
I then calculate some correction values at certain points of the printer frame knowing what's easy to adjust and what's hard to adjust.
I assume that the frame is assembled fairly square (I used a jig and measured it with the CMM so this is a reasonable assumption on my printer), so I adjust the moving bits within the frame. The Y sled is given a rotation movement distance, and the Z tower bottom ends are given movement distances as well.
A half dozen adjustments at the bottom of the printer drastically improved the squareness of the printer.
Whilehelped me immensely on the spreadsheet, I am still validating my assumptions, the spreadsheet's correctness and the validity of it's recommended moves. It is currently provided suggested corrections that are based off of the RepRap Prusa Mendal frame and how that style of printer can be adjusted.
I don't know that these are actually indeed the best way to correct squareness, and I am sure I will iterate the spreadsheet as I gain experience with it and people's suggestions. Printers of similar axis arrangement should also work with the spreadsheet with a bit of thought on alternate ways to get the desired corrections into the frame. Any Cartesian printer frame likely can be figured out using the same 12 points, and I plan on adding suggestions for different styles, such as gantry frames e.g printrbots.
I am also looking into using the CMM to square a Rostock style printer and verifying dimensions such as the 120 degree, equidistant towers, and that there is no twist going up the printer. But I expect that will require a different spreadsheet.
The tweaks suggested in the spreadsheet using the data captured on this CMM improved the printing accuracy dramatically. It’s not perfect yet, but I am iterating the process as I am figuring out the steps that need to be taken.
Here you can see the whole of the ROMER portable CMM I used to measure the RepRap. It’s about all the arm wanted to do to fit in and around the printer. Being able to work off the surface plate – a very flat surface – sure did help a lot.
The first and 2nd print after the RepRap rebuild. The 2nd one is after tweaks suggested by my spreadsheet. It measures much more square and is visually better as well.
This is a whiteboard plan for measuring 12 points on a RepRap Mendal Prusa and calculating frame corrections to square up the XYZ in relation to each other.