Files
CAD-Projects/SMD_Part_Storage_Rail.scad
2025-02-28 17:06:40 +01:00

44 lines
1.8 KiB
OpenSCAD

cases = [
//Case,thickness+~0.2,Distance between parts,tape width
["0603",1,4,8],
["1206",1.4,4,8],
["SOD80",1.7,4,8]
];
//Selected Package
selected_part_size = "SOD80"; // [ "0603","1206","SOD80"]
//Amount of parts to be stored
parts = 1000; //amount of parts in
//Inner Diameter of filled storage
inner_diameter=16;
//Amount of Storages to fit on Rail
storage_amount=13;
/* [Hidden] */
function selector(item) = cases[search([item], cases)[0]];
active_case = selector(selected_part_size);
tape_thickness = active_case[1];
distance_between_parts = active_case[2];
total_distance = parts*distance_between_parts;
tape_width= active_case[3];
part_width=tape_width+2.4;
outerdiameter=ceil(sqrt(4*tape_thickness*total_distance/(3.1415)+inner_diameter*inner_diameter));
boxdim=outerdiameter+10;
boxdimhalf = boxdim/2;
holder_thickness=part_width*storage_amount+5;
translate([boxdimhalf+4.5,0,0]) {
cube([10,boxdim+18.5,holder_thickness],center=true); //main holder part
}
translate([boxdimhalf-9.45,boxdimhalf-2,0]){
cube([7.6,10,holder_thickness],center=true); //Rear retention nose
}
translate([boxdimhalf-3.25,boxdimhalf-4.25,0])cube([20,6,holder_thickness],center=true);
translate([boxdimhalf-2.8,boxdimhalf-5.8,0]) rotate([0,0,-10]) cube([20,6,holder_thickness],center=true);
translate([boxdimhalf,boxdimhalf-8,0])rotate([0,0,30]) cube([8,15,holder_thickness],center=true);
difference(){
translate([boxdimhalf+4,boxdimhalf+4,0])rotate([0,0,-15]) cube([8,12,holder_thickness],center=true);
translate([boxdimhalf+8,boxdimhalf+9.25,0])cube([15,5,holder_thickness+1],center=true);
}
translate([boxdimhalf-6.5,-boxdimhalf-0.75,0])rotate([0,0,30]) cube([7,15.5,holder_thickness],center=true);
translate([boxdimhalf-1.6131,-boxdimhalf-4.7117,0]) cube([8.05,9,holder_thickness],center=true);