Files
spoolholder/spoolholder.scad
2018-05-14 10:46:10 -07:00

96 lines
1.5 KiB
OpenSCAD

od=70;
id=9.5;
len=80;
// cut in half...uncomment middle block for full length
module truss()
{
polygon([[od/2-3,0],
[id/2,len/4],
[od/2-3,len/2],
// [id/2,3*len/4],
// [od/2-3,len],
// [od/2,len],
// [id/2+3,3*len/4],
[od/2,len/2],
[id/2+3,len/4],
[od/2,0]
]);
}
module end_spoke()
{
linear_extrude(3, convexity=10)
polygon([[-1.5,id/2],
[1.5,id/2],
[1.5,od/2],
[-1.5,od/2]]);
}
//difference()
//{
union() // main body
{
linear_extrude(len/2, convexity=10)
{
difference()
{
circle(d=od, $fn=90);
circle(d=od-4, $fn=90);
}
difference()
{
circle(d=id+4, $fn=90);
circle(d=id, $fn=90);
}
}
// diagonal spokes
translate([0,1.5,0])
rotate([90,0,0])
linear_extrude(3, convexity=10)
truss();
translate([-1.5,0,0])
rotate([90,0,90])
linear_extrude(3, convexity=10)
truss();
translate([0,-1.5,0])
rotate([90,0,180])
linear_extrude(3, convexity=10)
truss();
translate([1.5,0,0])
rotate([90,0,-90])
linear_extrude(3, convexity=10)
truss();
}
// // quick hack: cut in half so we can add flange
// translate([0,0,len/2])
// linear_extrude(len/2+1)
// circle(d=od+1, $fn=90);
//}
// flange
linear_extrude(2, convexity=10)
difference()
{
circle(d=od+20, $fn=90);
circle(d=od, $fn=90);
}
// spokes to support the flange
end_spoke();
rotate([0,0,90])
end_spoke();
rotate([0,0,180])
end_spoke();
rotate([0,0,-90])
end_spoke();