Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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

This comment has been minimized.

Copy link
Owner Author

commented Sep 11, 2017

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

@GitBruno

This comment has been minimized.

Copy link

commented Dec 19, 2018

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
You can’t perform that action at this time.