Cameras are attached to tripods and such using bolts in the American Unified Thread Standard, specifically UNC 1/4-20. Historically, the more colourfully named British Standard Whitworth thread was used, but market forces in my grandparents time decided that particular standards battle fought over the Atlantic.
Meanwhile, I'm in the middle of the Pacific Ocean here in New Zealand where we don't use either, and I'm working on a camera slider project. I didn't want to get distracted and learn a cool new library (honest!), but I had to. This collection is for the next person in my situation.
Can we all switch to M6 bolts for camera mounts now please?
Suits 3/16" hex driver. Lengths from ¼" to 4" included.
Suits 7/16" spanner. Lengths from ¼" to 4" included.
Hex and square nuts provided, each with three levels of tolerance. I found 0.1mm to be a good fit using on my Prusa Mini+ in PLA+.
I printed a whole bunch aligned head down using a 0.6mm nozzle and 0.2mm layer heights in PLA+. The bolts all screwed firmly into cameras, and the nuts onto tripods. I wouldn't use these to hold an SLR camera, but they were great for use while prototyping. You might need to add a brim for bolt lengths longer than about 2".
BOSL2 is an incredible library, adding to the already powerful OpenSCAD. They are a powerful combination, covering far more ground than simple bolts. That said, here is how I created these models. Go crazy creating your own variations. A UTS UNC 1/4-20 thread with an M6 button hex head? Why not?
include <BOSL2/std.scad>
include <BOSL2/screws.scad>
$fn = 32;
size = "1/4-20,1 1/4"; // Length after comma
// Hex bolt
screw(size, head="hex", thread="UNC",
anchor=TOP, orient=BOTTOM);
// Socket head
screw(size, drive="hex", head="socket", thread="UNC",
anchor=TOP, orient=BOTTOM);
// Nut
nut("1/4-20", shape="hex", $slop=0.1);
Installing BOSL2 is as simple as copying its folder into OpenSCAD's library folder. Detailed instructions, and full library documentation is available on the BOSL2 Wiki.
I created all of these model variations automatically using the attached Python script, which I've also included, just as an example of this approach. It runs OpenSCAD many times, each time overriding different variables in the script to create a total of 32 different STL files. Thanks to the OpenSCAD creators for giving their program such nice scripting support.
The author marked this model as their own original creation.