Skip to content

Instantly share code, notes, and snippets.

@ednisley
Created September 11, 2017 17:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ednisley/cf608209c4ace2faed8bc6a9ec1c77ef to your computer and use it in GitHub Desktop.
Save ednisley/cf608209c4ace2faed8bc6a9ec1c77ef to your computer and use it in GitHub Desktop.
OpenSCAD source code: Tour Easy headset wrench -- for adjustment, not tightening!
// Tour Easy Headset Wrench
// Ed Nisley KE4ZNU - September 2017
/* [Extrusion] */
ThreadThick = 0.25; // [0.20, 0.25]
ThreadWidth = 0.40; // [0.40]
function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
Protrusion = 0.01; // [0.01, 0.1]
HoleWindage = 0.2;
//- Sizes
/* [Dimensions] */
WrenchSize = 32.0; // headset race across-the-flats size
NumFlats = 8;
JawWidth = 10.0;
JawOD = 2*JawWidth + WrenchSize;
echo(str("Jaw OD: ",JawOD));
StemOD = 23.0;
WrenchThick = 5.0;
HandleLength = 2*JawOD;
HandleWidth = 25.0;
//- Build things
difference() {
linear_extrude(height=WrenchThick,convexity=4) {
hull() { // taper wrench body to handle
circle(d=JawOD);
translate([0.75*JawOD,0,0])
circle(d=HandleWidth);
}
hull() { // handle
translate([0.75*JawOD,0,0])
circle(d=HandleWidth);
translate([HandleLength,0,0])
circle(d=HandleWidth);
}
}
translate([0,0,-Protrusion])
rotate(1*180/NumFlats) { // cosine converts across-flats to circle dia
cylinder(d=WrenchSize/cos(180/NumFlats),h=(WrenchThick + 2*Protrusion),$fn=NumFlats);
}
translate([-StemOD,0,WrenchThick/2])
cube([2*StemOD,StemOD,(WrenchThick + 2*Protrusion)],center=true);
translate([WrenchSize,0,WrenchThick - 3*ThreadThick])
linear_extrude(3*ThreadThick + Protrusion,convexity=10)
text(text=str("TE Headset"),size=8,spacing=1.20,font="Arial",halign="left",valign="center");
}
@ednisley
Copy link
Author

More details on my blog at http://wp.me/poZKh-723

@GitBruno
Copy link

Thank for showing me the convert across-flats and NumFlats trick. Super neat!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment