I've just spent a rather frustrating couple of days going trying to get the right number and lengths of nuts, bolts, and washers. Most aren't too bad but I've had issues with the longer M3 bolts and the shorter M5s. The speciality store that I know has them is closed for a couple of weeks over Christmas, hence the issues, so I've been going around the generic hardware stores.
This got me thinking that it probably wouldn't be too hard to create a little software program that takes in the vital stats of a bolt and can output a STL file for a bolt or with a bit more effort, threaded rod (just the bolt without the head) or a nut (just a boolean difference of a cube or cylinder).
Chances are its cheaper to buy them in bulk at the local hardware store but as the point is self-replication we should be thinking of printing our own fastenings. Some of the current bolts will of course be in places where the strength of the steel is needed (in the long term we can probably design them out) but others will be easily substituted.