CNC Macine w/ built in 3D Scanner

So I had this idea to make my photodiode matrix more useful than for a touch screen.

I have seen ideas around for an Arduino controlled CNC machine. The only successful one I have seen is RepRap.

However, something I thought would be really cool, is to make the CNC also a 3D scanner.

To start simple the cutting side would be a 3 axis router. I’d like to use a Porter-Cable or something nice with which metal (at least aluminum) could be cut.

The scanner could be done a number of ways.
One way would be to angle a laser so that it reflects a line onto the object and sensors detect the intensity of the light while the object rotates.
Another way would be to surround the entire working space with an laser diode matrix each side could be scanned while the opposing side emits light.

I would assume that the rotating idea would have better results, but would be slower. Where as the matrices would be much faster yet less accurate.

Any thoughts?

Maybe you could use the “milk” method ?

For metal objects, one thing you could do is use the method used in the Roland Modela Desktop CNC machines for calibrating the tool height. It works like a simple closed / open circuit : a current passes in the tool and the object, whenever the tool touches the objects, it closes the circuit. This way, you can have your tool move on a grid, and make it go down slowly at each intersection of the grid. Whenever you touch the object, you have an X/Y/Z coordinate, and with a fine enough grid, can reconstruct a relatively accurate object.

I have a touch probe at home (stole it in high school, those thing are damn expensive ^^), but I was unable to find any info on the pinout and how this works, but I think this might be the best solution.

(3rd post, sorry ^^)

I found this very interesting link

Whoa! That MilkScanner is a cool idea! :smiley:

Would be even cooler if the “milk” level was controlled better then using a spoon.

I think that by using a pump or a syringue driven by a stepper motor, you can achieve a good filling resolution ^^

Arduino could easily control the stepper motor and the “shots” taken by a camera.

My only qualm is that you would have to flip the item over in order to get a rendering of the bottom side, no?

Hmm, couple cool ideas at

A few that I think are interesting are “stereopsis” and “photometric”

With “stereopsis,” essentially you get two cameras and take pictures. With image processing, you can determine the distance away a point in the picture is.

“Photometric” is a technique in which you take two pictures of an object in different lighting scenarios.

This is turning out to be very interesting! :slight_smile:

As I understand it, the Roland scanners use a piezo sensor for “acoustic” scanning of a 3d object. You might be able to replicate this sort of functionality, I found a paper that seems to be related here:

Edit: it appears the Roland scanners use a touch-probe to achieve this. Considering the low-cost of their units, this might be a viable method for a do-it-yourself-er (The laser-based units all seem to cost a lot of money =)


I tell ya… Google, Wikipedia and YouTube are the greatest tools ever invented!

Found some cool stuff for 3D scanning. “DAVID-Laserscanner” is a free 3D scanning system.

Couple URLs of interest:
DAVID in action:
DAVID’s website:
Paper published about DAVID: (Haven’t read it yet)

Basically, you hold print out a calibrating sheet and point a webcam at the scene. Place something in front of the calibrator and shine a laser line over the object then rotate it every 15 degrees or so.

As far as I have seen this process is all hand done, but I don’t see why this can not be automated.