Oh. I see why you’re talking about the g31 now. That makes sense.
Looking at mach3 and linuxcnc, that seems like hitting this problem with a sledge hammer. I would think the arduino is going to be way less painful than using Linux or Windows OS to directly drive the motion. It seems like real time would be a requirement, which (in my experience) is just a road full of hurt. Just my $0.02, feel free to disagree with me.
I found this page too, with some great info: http://reprap.org/wiki/PCB_Milling and some not-so-great info.
This page says that reprap firmware supports G31, dunno if that’s correct or not:
Seems like you could do the auto leveling with some of the other codes, G30 specifically looks like a good choice. I wonder how hard it would be to make a python script to do the same thing this autolevel program is doing. Just move the head around, call G30, get the Z. put it in a table. Then read in a GCode file looking for specific move commands, query the table for the right Z offset, then add it to the position command, and let all the other GCode just fall right through. Seems like a good weekend project, as long as you didn’t have to make a complicated user interface for it. Sorry, software engineering is my day job. If all you have is a hammer, everything looks like a nail, right?