Q:

How can I ensure precise alignment of wooden parts assembled with bolts?

I am building a CNC machine (don't need to know what that is), and I have chosen wood to be what I make the frame out of. One problem that I am facing is joining the pieces together. It may seem like a simple solution (a few nails or screws) but for this project it might have to be completely disassembled for modifications/expanding it/maintenance/cleaning/storage/etc.
I don't want to ruin the wood in the process with plain screws, since it will be a normal storage procedure to disassemble parts of it when not in use. (I have a very small apartment and space is limited for storage.) I've decided to use bolts to fix this problem. However, bolts you have to drill a hole, and I would think that it would be rare that there is zero wiggle room for the bolt to move around in the hole. When assembling/disassembling often, this can be a problem with alignment, especially since a CNC machine should have the greatest accuracy possible within your budget.
Is there some sort of thing where I can put like a "long nut" all the way through the board so it will easily be removed, yet won't wiggle (noticeably)? What methods do I have?

A:

Specialty Bolts

Some bolts have long smooth shanks and short threaded sections.  If you are able to find appropriately sized bolts like these, and able to buy a drill bit that is the same diameter as the shank for a sung fit, then this is simplest, if not the best, solution.  The key is a smooth shank of appropriate length.  If the threaded section is too long, it can, of course, be cut off with a hack saw and groomed with a file.  To straighten out threads at the tip, spin a nut all the up to the shank and leave it on until finished with the grooming.
 

  
Joinery

The craftsman approach would be to use shouldered joints.  This is a link to the wikipedia page.

  
Pins

Solid Pins 

assemble with bolts
choose a nail size (diameter) and similarly sized drill bit for a snug (but not too tight) fit.  The match between the nail and the holes needs to be snug enough for good alignment, but not so tight as to prevent the joint from being disassembled by hand and the nails tapped out if so desired.
cut nails to length if necessary
drill two or more holes through one member and into the second member
tap the nails into their holes
Note: see @bib's answer for a "blind" variant of this    

Tube Pins

choose the bolts
choose metal tubing through which the bolts easily fit.   Note: as suggested by @AnonomousPerson in a comment, PVC tubing such as 1/2" plumbing can be used with good results for large bolts
in both members, drill through-holes in which the tubing fits snugly
cut lengths of tubing matching the members combined thicknesses
tap in a section of tubing
bolt together through the tubes 

  
Splines

Blind Rings

select 1/16" walled metal tubing whose diameter that is somewhat smaller than the narrowest member. For example, if the narrowest member is 2" wide, then select some tubing that is about 1.5" in diameter.
select a hole saw that matches the size of the tubing
temporarily assemble the members using bolts that match the diameter of hole saw's drill bit, typically 1/4".
disassemble
on each of the mating surfaces, using the bolts holes for guides, use the hole saw to drill 1/4" deep circular recesses
cut 1/2" long rings from the tubing 
assemble with the rings sandwiched in between
if larger bolts are desired, re-drill the bolt holes   

Blind Flats

same idea as blind rings but use 1/2" x 1/16" metal stock and saw-kerfs   

A:

Mikes answers all have merit. You might also consider using alignment pins.

On one surface of the pieces that will mate, drive in two or more finish nails, leaving about 1/4 inch protruding. 
Clip off the head of the nails.
Align the pieces and clamp down with bolts, driving the protruding nails into the mating piece.
When disassembling, wiggle the pieces slightly to disengage.
When reassembling, align the pins with the holes before bolting.

This approach is not as versatile as those offered by Mike if constant assembly and disassembly is contemplated.  But if it is only occasional, this might do.

