This year (2012) I decided to carve a pumpkin for the first time in my life. I did want to use my big CNC machine (see http://www.instructables.com/id/CNC-machine-for-shaping-large-pieces-of-polystyren/) for doing the actual cutting. I also did want to design the shapes for cutting, by using a 3D design application.
Problem: With pumpkins having large variations in size and shape, it is not easy to design something that will work on a particular fruit. In order to ensure the design will transfer correctly to the individual pumpkin, it would be useful to know where the skin of the pumpkin would be whilst working in the 3D design application.
Solution: Use 123D Catch to create a 3D mesh of the lucky pumpkin, open the mesh in the 3D design software, and use it to ensure the desired cuts will work as intended.
The technique I used works well with pumpkins, but it could also be used for machining into other organic or random shapes.
Step 1: Place reference marks on pumpkin and take photos
For alignment and scaling purposes, it is necessary to place some reference marks on the surface of the pumpkin. I applied masking tape, onto which I drew small crosses. Looking back at it, I ended up spending a fair amount of time trying to align the mesh in CAD and trying to align the actual pumpkin on the machine bed. By adding more reference marks at the beginning, the alignment at later stages would have been easier and more accurate.
In terms of taking pictures for use in 123D Catch, I would like to give a little bit of advice. First of all, don't bother spending lots of time building contraptions to automate the picture taking process. I know there are some plans published all over the internet, but I think your time is more wisely spent by studying and understanding the excellent tutorials on the 123D website: http://www.123dapp.com/catch/learn
Catch is very capable and as long as you follow the advice in the tutorials, very good results can be achieved by just using a hand held camera on it's own. One thing I noticed is that a lot of peoples, also some of the guys (m/f) with the automatic-picture-taking devices, only take a series of picture in a circle at a single elevation. The best results, as advised in the tutorials, is achieved by taking pictures at two elevations.
Step 2: Create a 123D Catch
The critical stage in using 123D Catch, is taking the photos. As long as you did everything right (use the tutorials, they are really good!), the conversion from 2D photos to a 3D model is fully automatic. In the screenshot you can notice how I used two levels for the camera positions.
Step 3: Prepare 3D mesh for export
Whilst still in 123D Catch, you can trim, scale, and orientate the 3D model. Again, see the tutorials for this. In short, I measured the distance between two marks on the actual pumpkin and applied this distance to the corresponding reference points in 123D Catch. Many CAD packages will not be able to import the texture map, during the import of the 3D mesh (OBJ format). In order to transfer the reference points, I removed a single (triangular) facet at each one of the reference marks. In other words, I made a little hole in the mesh, wherever there was a mark. Please note, if you would like to use the 123D modelling application, the texture map will transfer and the removal of facets is not needed.
Step 4: Import 3D mesh into 3D CAD and align
The first picture shows how the trimmed and scaled OBJ mesh imports in the 123D modeller. Note how the texture also makes the transfer. I really should spend some time learning the application, as this is very impressive.
As I was on a very strict timeline, I stuck with a competitor's CAD application I am more familiar with. Many 3D CAD packages are able to work in a similar way. I used the reference holes in the mesh in combination with photos to align the mesh in 3D space. The actual pumpkin was flat on one side, which I used for placing it. This proved very useful for alignment on the machine bed later on.
Step 5: Make a 3D model for the cuts
With the skin of the pumpkin being represented in virtual 3D space by the surface mesh, it is now possible to accurately model where the cuts can go. In this case it is good enough to visually check for sufficient levels of cut depth and tool clearance. Once satisfied with the resulting 3D model for the cuts, it is important to somehow capture the relationship between the created solid and the surface mesh. I placed a new reference point on the actual pumpkin, where the centre of the 3D solid model should line up. See the first photo in step 7 for how I use this point to line up the CNC cutter.
Initially I came up with the design for a scary pumpkin, but the boss told me to go for a friendly one...
Step 6: Generate G-code
I used Freemill to generate the G-code. There should be a better way to generate more efficient tool paths, but as I was not familiar with any other tools, that is what I did. I intend to look into using HSMXpress, as this is available for free as well. Autodesk recently took over the product, so I would not be surprised if the technology ended up on the 123D website in the future...
Step 7: Align pumpkin on CNC machine bed
Having lined up the pumpkin accurately in CAD, the alignment on the machine bed was fairly straightforward. As soon as I was happy with the location and orientation of the pumpkin, I placed heavy pieces of steel around it in order to keep it in position. Further preparations took place in terms of placing temporary pieces of cardboard around the machine, to act as shields.
I actually did have two pumpkins. As it happened I did not have time to machine both of them. Note the difference in size between the pumpkins from looking at the attachments to this step. Although I did not actually machine the second one, the pictures show how I managed to adapt the same design to a different size.
Step 8: Let the CNC machine do it's magic
The video consists out of short fragments, each single one is in real time. The total machining time was under 2 hours. This could have been halved by increasing the stepover size from 0.5mm to 1mm. Using more sophisticated software for generating more efficient G-code, should enable faster and smoother tool paths. I need to investigate this, as I think an optimized tool path should result in bringing the machining time down to just a few minutes.
Step 9: Manual finishing
After machining, I cleaned the debris away by using the water flow from a normal garden hose. I used a large knife to cut the top of the pumpkin, after which I scooped out the internals of the fruit. My wife likes pumpkin seeds, so she was happy with this part! After placing a small LED light inside the pumpkin, it was ready to be placed in front of the house and welcome the Trick-or-Treaters.
Step 10: Conclusions
I was very pleased with the end result. Being able to use 123D Catch in this way is absolutely brilliant. I have used the application for a few things before (see 123dapp.com for user RTegelbeckers) and I am very impressed with it.
Now I managed to machine a simple pumpkin for this year, for next year I will have to raise the bar. A complicated surface model or do I add an indexing device for slowly rotating the pumpkin and therefore machine the entire circumference? Maybe I will just have to figure out a way to speed up the machining time and cut loads of pumpkins. So many possibilities and so little time...
O, before I forget, the actual pumpkin was stolen before it could see daylight. A few days later I found it smashed up, a bit further in the street. :-(