Files
tolerance_test/test.scad

61 lines
1.4 KiB
OpenSCAD

$fn=90;
tol=0.4;
ht=10;
diam=15;
difference()
{
difference()
{
rotate_extrude()
{
difference()
{
// basic shape
square([diam/2-tol,ht]);
// bottom chamfer
polygon([[diam/2-tol,0],[diam/2-tol,.5],[diam/2-0.5-tol,0]]);
// top chamfer
polygon([[diam/2-tol,ht],[diam/2-tol,ht-.5],[diam/2-0.5-tol,ht]]);
// retention ring
polygon([[diam/2-tol,ht/2+1+tol],[diam/2-tol,ht/2+2+tol],[diam/2-tol-1,ht/2+1+tol],[diam/2-tol-1,ht/2-1-tol],[diam/2-tol,ht/2-2-tol],[diam/2-tol,ht/2-1-tol]]);
}
}
// label
translate([0,0,ht-0.6])
linear_extrude(0.6, convexity=10)
text(text=str(tol), size=4, halign="center", valign="center");
}
// hole (for rotation with screwdriver bit)
cylinder(d=7.8, h=ht-2, $fn=6);
}
intersection()
{
rotate_extrude()
translate([diam/2,0])
{
difference()
{
// basic shape
square([4,ht]);
// bottom chamfer
polygon([[0,0],[.5,0],[0,.5]]);
// top chamfer
polygon([[0,ht],[.5,ht],[0,ht-.5]]);
}
// retention ring
polygon([[0,ht/2+2],[-1,ht/2+1],[-1,ht/2-1],[0,ht/2-2]]);
}
// make the outer body hexagonal for better grip
cylinder(d=diam+8, h=ht, $fn=6);
}