Using lego and a few custom components a 3D printer for chocolate is possible. I did this project a long time ago so the documentation is incomplete, but hopefully it will inspire someone to rebuild it and fill in the blanks.
Step 1: Make a chocolate extruder.
These were my first rough plans for a chocolate extruder. Powdered chocolate into a heated barrel, lego worm screws as the slurry pump through an ejection nozzle.
Step 2: Cut extrusion chamber
bandsaw - 1" x 1" x 3" aluminum extrusion
Step 3: Drill and reem the bore hole for the worm screw.
I can't remember the diameter, but it was a close tolerance fit for the lego worm gear (close to 1/2in) Nice thing about lego is that it is super high tolerance!
Step 4: Cartridge heaters.
4 x 5W bar heaters to supply the heat to melt the chocolate. I think there are cheaper solutions, but there were convenient and fit nicely in 1/8in holes.
i got mine from watlow:http://www.watlow.com/products/heaters/ht_cart.cfm
Step 5: Interchangeable nozzle and set screw
I put an interchangeable nozzle and set screw in the end of the chocolate extruder. the idea was this would make it easier to change the diameter of the chocolate bead being extruded as well as making it easier to clean out the chamber as necessary - like when chocolate melts solidly inside it...
Step 6: Cartridge heater positions around extrusion chamber.
i placed the cartridge heaters around the extrusion chamber like so. I need a jobbers drill bit to drill the 1/8in holes deep enough.
Step 7: Fully assembled extrusion chamber.
again, in theory the lego thermometer and programmable brick should be enough to do the chocolate control, but i used the PID and thermocouple because i was just interested in proving the concept and i had those lying around my lab.
Step 8: Testing the extrusion chamber
Here i am testing the extrusion chamber.
Step 9: Build a lego gantry
I can't remember all the details, but it's pretty simple. i used rack and pinions for the X and Y axis gantries.
there are lots of ways to do this. You really want z axis too. i hacked the Z axis by using a layer by layer increment ratchet that was mechanical. given the memory limits of the PCX bricks, one layer was about all you could program before having to upload a new layer code anyway.