98 lines
2.4 KiB
OpenSCAD
98 lines
2.4 KiB
OpenSCAD
$fn=90;
|
|
|
|
preview=0;
|
|
|
|
handle_diam=19.5;
|
|
handle_len=82.5;
|
|
spacing=3;
|
|
handle_diam2=13.5;
|
|
handle_len2=8.5;
|
|
handle_diam3=10;
|
|
handle_len3=2;
|
|
total_len=180;
|
|
shaft_diam=4;
|
|
box_width=10+4*handle_diam+3*spacing;
|
|
box_length=200;
|
|
tool_ctr=12;
|
|
lid_thickness=2;
|
|
|
|
module cutout()
|
|
{
|
|
rotate([-90,0,0])
|
|
{
|
|
cylinder(d=handle_diam, h=handle_len);
|
|
cylinder(d=shaft_diam, h=total_len);
|
|
}
|
|
|
|
translate([-shaft_diam/2, 0, 0])
|
|
cube([shaft_diam, total_len, handle_diam]);
|
|
|
|
sphere(d=handle_diam);
|
|
|
|
translate([-handle_diam/2, 0, 0])
|
|
cube([handle_diam, handle_len, handle_diam]);
|
|
|
|
cylinder(d=handle_diam, h=handle_diam);
|
|
|
|
translate([0, handle_len, 0])
|
|
{
|
|
rotate([-90,0,0])
|
|
cylinder(d=handle_diam2, h=handle_len2);
|
|
translate([-handle_diam2/2, 0, 0])
|
|
cube([handle_diam2, handle_len2, handle_diam]);
|
|
}
|
|
|
|
translate([0, handle_len+handle_len2, 0])
|
|
{
|
|
rotate([-90,0,0])
|
|
cylinder(d1=handle_diam2, d2=handle_diam3, h=handle_len3);
|
|
}
|
|
}
|
|
|
|
module body()
|
|
{
|
|
difference()
|
|
{
|
|
union()
|
|
{
|
|
cube([box_width, box_length, tool_ctr+4]);
|
|
cube([5, box_length, tool_ctr+handle_diam/2+lid_thickness+1]);
|
|
translate([box_width-5, 0, 0])
|
|
cube([5, box_length, tool_ctr+handle_diam/2+lid_thickness+1]);
|
|
translate([5+handle_diam/2, 40, tool_ctr])
|
|
rotate([90,0,0])
|
|
%cylinder(d=handle_diam, h=handle_diam);
|
|
}
|
|
translate([8, 24-handle_diam/2+handle_len+handle_len2+handle_len3+25, 4])
|
|
cube([box_width-16, 35, handle_diam]);
|
|
for (x=[5+handle_diam/2:handle_diam+spacing:5+handle_diam/2+3*(handle_diam+spacing)])
|
|
translate([x,24-handle_diam/2,tool_ctr])
|
|
cutout();
|
|
translate([1.85, 0, tool_ctr+handle_diam/2+1])
|
|
lid();
|
|
translate([2.15, 0, tool_ctr+handle_diam/2+1])
|
|
lid();
|
|
}
|
|
}
|
|
|
|
module lid()
|
|
{
|
|
translate([0,box_length,0])
|
|
rotate([90,0,0])
|
|
linear_extrude(height = box_length)
|
|
polygon([[0,0], [box_width-4,0], [box_width-4-lid_thickness, lid_thickness], [lid_thickness, lid_thickness], [0,0]]);
|
|
}
|
|
|
|
if (preview==1)
|
|
{
|
|
body();
|
|
translate([2, 0, tool_ctr+handle_diam/2+1])
|
|
lid();
|
|
}
|
|
|
|
else
|
|
{
|
|
body();
|
|
translate([box_width+2, 0, 0])
|
|
lid();
|
|
} |