Files
smd_parametric_magazines_op…/smd_magazine.scad
2022-10-25 23:39:02 -07:00

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]);