I'm sure it could be built very nicely on a large scale, but the intention was to make it smaller ― that is, small and brick-economical enough to fit entirely on a 48x48 baseplate, yet provide at least 10x10 studs (8x8 cm) of grinding area.
So here it is! Its components are quite self-explanatory. On one end of the platform we've got two motors; each moves a pair of beams along a rail via rack&pinion system, that move the cradle. The X-rail is stationary, while the Y-rail is mounted on the X-beams. Thus, the cradle easily moves in both axes. It is nothing more than a simple little "pool" where I have fitted a thick piece of bakelite, and which slides freely over the surface thanks to the tiles on its bottom.
A bridge is built above the cradle area, heavily reinforced with four rows of interconnected studded beams. It carries a large moveable cradle built specifically for this standard-issue electric drill. The cradle is attached to four strong arms, and there is significant counterweight on the other side, with four large old Technic wheels attached to long arms. The counterweight compensates for the drill weight (approx. 2.2 kg), so the bridge needs to withstand only vertical force, and not the sideways too, which would complicate construction.
The drill is raised and lowered by just a few millimeters at full extents, but it is more than enough for a sheet of bakelite. Its height is actually controlled by raising and lowering the counterweight arms with one linear actuator, connected to an NXT motor. Since the drill and the counterweight are in a fine balance, the actuator doesn't need to produce much force, but I've opted to use it for its precision. (To increase precision of X-Y movements, the motors are also directly connected to the driving pinions ― no gears that would introduce backlash.)
A simple clutch holds the electric drill at a desired power, and a very fine yet hard grinding drill bit with a 0.8 mm head diameter is mounted in it. The NXT module that controls all three motors is resting on the side, connected to a laptop that sends the machining data.
voxels. Anyway, such configuration amounted to approximately 5500 instructions (motor movements) for an averagely complicated desired result: a tiny physical model of Iceland with scaled altitudes I chose as a first test.
So I've built the prototype (yes, please excuse the horrible colours, but facing running out of beams I've had little choice), programmed the script and happily pushed 'Start'. And quickly learned that the above idealism works only in theory, while in practice, this CNC design has serious flaws, serious enough to classify it as a failure.
Theoretically, this problem could be overcome by forcing the drill to always act vertically, and drilling each target pixel separately. Again, this is just a theory: not only would drilling a millimeter from the already drilled area push the drill there to the path of least resistance, but the operation would have to be done for each pixel that needs to be grinded. And that would also last forever, and breach one of the primary rules of engineering ― that the machine should not be as inefficient to actually get the job done slower than an averagely inexperienced person would manually. Finally, even if I was like the Master from the Exile of the Eons (Arthur C. Clarke, 1950) and waited several dozen billion years in suspended animation until it is done, this approach would make very rough, spiky surface on the material.
P.S. I've tried carving other materials since, such as the brittle spongy plasticky material I've found and can be seen on the photos (a white block), but that didn't seem to solve the mentioned problems.