Ever wanted an accurate 3D model of your favorite molecule? Here's how. All the software used is free, and there are lots of ways to fabricate your model. I used a 3D printer to make small molecules and a laser cutter to make larger versions.
Step 1: Find the Molecular Structure
To generate a 3D model, you will first need the molecular structure. These are usually determined using X-ray crystallography, and there are internet repositories of these containing hundreds of thousands of structures. Most well known is the Cambridge Structural Database (CSD), and I used their program Mercury to produce the .stl file needed for printing. But before you do that, you will need a file readable by Mercury. Crystal structure files have standardized around the crystallographic information file (CIF) format. Your best bet here (if you do not have a licence to the CSD, like most people) is the Crystallography Open Database. It is open access and searchable in various ways, most intuitively using the JSME editor, which allows you to input a molecular structure by drawing it. This presupposes you know something about chemical shorthand, wherein lines indicate C-C bonds and hydrogens are assumed to be filling the valency of C if nothing else is drawn. The example above shows what you'd draw if you want to find ethanol.
However, if it is a common molecule you're after, even this might be overkill: just try searching for e.g. "ethanol.cif" or "caffeine.cif", and you might get to go straight to what you're looking for. However you find it, once you have the cif file of the molecule you're interested in, save it to your computer and move to the next step.
Step 2: Get Mercury and Manipulate Your Structure
Mercury is the program we'll use for interacting with CIF (and other) files. It is enormously powerful but for our purposes we're going to use only a tiny subset of its capabilities. Download it (it's free and totally legit) and go to File > Open and select your .cif file. Under "Styles" select ball-and-stick (the most attractive way to depict structures in my opinion), and navigate the view by left-dragging to orbit and right-dragging to zoom in and out. You may well find your structure contains extra atoms you don't want; in the case of the ethanol structure, two copies of the molecule are present. You can hide them via Selection > Select Molecules and highlight whatever molecules (or atoms) you don't want. Once you have the ones you DON'T want selected, go Display > Show/Hide > Atoms and hide them.
Mercury generates STL files but the defaults will generate structures that are not robust enough for my liking. You can easily bulk up both the atoms and the bonds via Display > Styles > Ball and Stick Settings. Increase the atom size and the bond radius until the structure looks strong enough. I like 0.3 for both atom size (in fraction of vdW radius) and for bond diameter (in Angstroms). This makes for a strong structure that is still recognizably in the ball-and-stick style.
Step 3: Generate and Fix Your STL File
Go to File > Print in 3D to write to an STL file. I've not tried the support option, figuring it was best to do that in whatever software comes with your printer. The main problem I've had with the Mercury-generated STL file is that it is made up of cylinders and spheres (entirely reasonable) that do not seem to be watertight (a problem in some programs, especially 123D Make). You may have ways of fixing this yourself; I did it in Fusion 360 (free to hobbyists) using the following sequence:
Create > Mesh > Create > Insert Mesh > (choose your STL file) > OK
Modify > Make Closed Mesh > (click on model) > OK > Finish Mesh
This has the effect of welding the joins between cylinders and spheres. Right-clicking on the structure will allow you to save it as a new STL file that seems to behave itself in all programs that I subsequently tried.
Step 4: 3D Print
For a small model of a molecule, send it to a 3D printer. I used a Stratasys Fortus and printed in ASA. The Fortus comes with software to calculate supports and they are printed in another material which is easily removed by snapping them off (if need be, washing in a dilute lye solution). The STL files for ethanol, caffeine and buckminsterfullerene are attached in the last step of this instructable. Scale them to suit how much filament you want to expend.
Step 5: Assemble: Interlocked Slices
I also tried out 123D Make, software that slices up a STL file for cutting on a laser cutter and assembling into a model. I found the interlocking slices model to be tricky - it was hard to find an orientation in which none of the slices were red (indicating they would not assemble correctly due to the slots slicing the piece in half somewhere). However, I did find one for ethanol, and cut it out of cardboard on a 120 W Epilog laser. The EPS file I used is attached. Cut the blue lines at full power and the red ones much lower (they're assembly guides and do not need to be cut, just scorched enough that you can see them).
Step 6: Assemble: Stacked Slices
123 Make's "stacked slices" option provides a denser, stronger model. The screencast below shows how the model labels each piece in a nested cutting diagram, and provides an animated, rotatable and zoomable set of assembly instructions. Settle in: each layer needs careful alignment with pins (using the pinholes provided for the purpose) and gluing (I used a gluestick), and it took me a little over an hour to assemble the model.
Step 7: Assemble: Stacked Slices With Dowels
I wanted to make an almost-indestructible model, so decided to try out 123D Make's stacked-slices-with-dowels option in plywood. I used square dowels, which sounds weird until you realize you're cutting these files out with a laser cutter and a square hole is as easy to cut as a circular one... and you can cut them out of the same sheet of plywood. Just set the dowel thickness to the same thickness as the plywood you're cutting, and draw some rectangles on the sheet. Assembly is aided by the square dowels because the pieces can just be threaded onto the rods and the alignment is automatically correct. I used wood glue to hold it all together. The assembly sequence I was following is embedded below.