76 lines
2.5 KiB
OpenSCAD
76 lines
2.5 KiB
OpenSCAD
tape_width=8;
|
|
tape_thickness=1.5;
|
|
overall_depth=50;
|
|
overall_height=60;
|
|
tolerance=0.4;
|
|
|
|
overall_width=tape_width+2+tolerance;
|
|
|
|
difference()
|
|
{
|
|
// main body
|
|
cube([overall_width, overall_depth, overall_height]);
|
|
|
|
// tape well
|
|
translate([1, overall_depth/2, overall_height/2])
|
|
rotate([0, 90, 0])
|
|
cylinder(d=overall_depth-4, h=1+tape_width+tolerance, $fn=360);
|
|
|
|
// chamfered hole for lid
|
|
translate([0, overall_depth/2, overall_height/2])
|
|
rotate([0, 90, 0])
|
|
rotate_extrude($fn=360) // chamfer tool
|
|
polygon([[0, 0], [8, 0], [7.5, .5], [8, 1], [0, 1]]);
|
|
|
|
// parts window on top
|
|
translate([1+tolerance/2, 8, overall_height-1-tape_thickness-tolerance])
|
|
cube([1+tape_width+tolerance, 17, 1+tape_thickness+tolerance]);
|
|
|
|
// tape slot at front
|
|
translate([1, 0, overall_height-1-tape_thickness-tolerance])
|
|
cube([tape_width+tolerance, overall_depth/2, tape_thickness+tolerance]);
|
|
|
|
// 15 mm radius at upper back
|
|
translate([0, overall_depth-15, overall_height-15])
|
|
rotate([90, 0, 90])
|
|
difference()
|
|
{
|
|
cube([15, 15, 2+tape_width+tolerance]);
|
|
cylinder(r=15, h=2+tape_width+tolerance, $fn=360);
|
|
}
|
|
|
|
// tape path to well
|
|
translate([1, overall_depth/2, overall_height-(overall_depth-4)/2-1])
|
|
rotate([90, 0, 90])
|
|
difference()
|
|
{
|
|
cylinder(d=overall_depth-4, h=1+tape_width+tolerance, $fn=360);
|
|
translate([0, tape_thickness+tolerance, 0])
|
|
cylinder(d=overall_depth-4-(tape_thickness+tolerance)*4, h=1+tape_width+tolerance, $fn=360);
|
|
translate([-(overall_depth-4)/2, -(overall_depth-4)/2, 0])
|
|
{
|
|
cube([(overall_depth-4)/2, overall_depth-4, 1+tape_width+tolerance]);
|
|
cube([overall_depth-4, (overall_depth-4)/2, 1+tape_width+tolerance]);
|
|
}
|
|
translate([0, (overall_depth-4)/2-4, tape_width+tolerance])
|
|
cube([4, 4, 4]);
|
|
}
|
|
translate([1, overall_depth-5, overall_height/2])
|
|
cube([1+tape_width+tolerance, 3, (overall_height-overall_depth)*.75]);
|
|
|
|
// film slot at top rear
|
|
translate([overall_width-1, 25, overall_height])
|
|
rotate([0,-90,0])
|
|
linear_extrude(tape_width+tolerance, convexity=10)
|
|
polygon([[0,0],[-3,overall_depth-25], [5,overall_depth-25],[3,0], [0,0]]);
|
|
|
|
}
|
|
|
|
// film slot at top rear
|
|
translate([0, overall_depth-10, overall_height-1])
|
|
cube([2+tape_width+tolerance, 3, 1]);
|
|
translate([0, overall_depth-10, overall_height-5])
|
|
cube([1, 3, 5]);
|
|
translate([overall_width-1, overall_depth-10, overall_height-5])
|
|
cube([1, 3, 5]);
|