Skip to content

Instantly share code, notes, and snippets.

@four0four
Last active July 28, 2022 06:52
Show Gist options
  • Save four0four/6636c29bd6298d2285de23b015c3dde0 to your computer and use it in GitHub Desktop.
Save four0four/6636c29bd6298d2285de23b015c3dde0 to your computer and use it in GitHub Desktop.
openscad safety wire jig
/*[ Bolt properties (Machinery's pp. 1446, 25th ed) ]*/
//Width across flats (S)
bolt_head_width=16; // [13:M8,16:M10,18:M12,21:M14]
//shank nominal diameter
bolt_body_diam=10; //[8:M8,10:M10,12:M12,14:M14]
//bolt head depth
bolt_head_depth=6.6; //[5.5:M8, 6.6:M10, 7.8:M12, 9:M14]
/*[misc.]*/
// clearance for fitment around bolt parts
clearance=0.2;
// safety wire hole diameter (enlarge for sleeve)
drill_dia = 3;
module shank_hold() {
depth=5;
difference() {
cube(size=[depth*2, bolt_head_width*2, bolt_head_width*2], center=true);
rotate([0, 90, 0]) cylinder(h=depth + 1, r=bolt_body_diam/2 + clearance, center=false, $fn=360);
}
}
//shank_hold();
// added an extra "head depth" (3: 1 of plastic, one of bolt head, one of space (or nut))
// this strengthens the drill guide laterally - may need to experiment with growing the guide in the z direction
module head_hold() {
difference() {
translate([bolt_head_depth*1.5, 0, 0]) cube(size=[bolt_head_depth*3, bolt_head_width*2, bolt_head_width*2], center=true);
// openscad cylinders are circumscribed, so the "actual" radius is the width cos(30)
translate([bolt_head_depth, 0, 0]) rotate([0, 90, 0]) cylinder(r = (bolt_head_width/2 + clearance)/cos(30), h = 1000, $fn=6);
// cut for drill guide
translate([bolt_head_depth*1.52, bolt_head_width/3, 0])cylinder(h=900, r=drill_dia/2, center=true, $fn=360);
}
}
head_hold();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment