While I really liked the design of http://www.thingiverse.com/thing:9860, I found that the single lip overhang / ridge / "thread" at the top didn't hold my lenses tight enough for my comfort. As the original designer states, the printing layers did provide some grab, but I wanted more.
I did my best to measure the thread dimensions on the Canon lens caps that I have and added a configurable parameter for repeating the lip. It should work with all brands of lenses, but I only have Canon.
The OpenSCAD file includes several customizable parameters for complete control over cap diameter, number of lips/ridges/"threads," strap size and more. I printed in ABS with 0.2mm layer height, 3 perimeters, and 50% infill.
Edit the OpenSCAD file for your lens cap. If it is a Canon just enter the number on the back and you should be ready.
Don't forget to edit the values for the strap size and buckle to match your gear.
For a smoother circle (and larger STL file), increase the circle_sides parameter.