diff --git a/footprints/micro-sd/micro-sd-schd3a0100.3dshapes/SCHD3A0100.scad b/footprints/micro-sd/micro-sd-schd3a0100.3dshapes/SCHD3A0100.scad new file mode 100644 index 0000000..25db43f --- /dev/null +++ b/footprints/micro-sd/micro-sd-schd3a0100.3dshapes/SCHD3A0100.scad @@ -0,0 +1,112 @@ +dim=[12.43,16.8,1.7]; // base dimensions +above=0.1; // base above the PCB clearance +color_base=[0.2,0.1,0.1]; + +// 2 small pins (small) GND +dim_pin_small=[1.1,0.4,0.1]; +pos_pin_small=[ + [-dim[0]/2-dim_pin_small[0]/2,dim[1]/2-2.75,0.05], + [ dim[0]/2+dim_pin_small[0]/2,dim[1]/2-14.45,0.05] +]; + +// mounting 4 side pins (big) +dim_pin_big=[1.1,1.4,0.1]; +pos_pin_big=[ + [-dim[0]/2-dim_pin_big[0]/2,dim[1]/2-4.45,0.05], + [ dim[0]/2+dim_pin_big[0]/2,dim[1]/2-4.45,0.05], + [-dim[0]/2-dim_pin_big[0]/2,dim[1]/2-12.75,0.05], + [ dim[0]/2+dim_pin_big[0]/2,dim[1]/2-12.75,0.05] +]; + +// Pins for signal solder contacts +pin_th = 0.1; // Thickness +pin_W = 0.4; // Pin width +pin_L = 7.3; // Total Length +pin_H = 0.3+pin_th/2; // Pin height (from bottom to top) +pin_l = 0.4; // Length of the bottom part +pin_a = 115; // Bending angle + +pin_pitch = 1.1; +pin_count = 8; + +color_pin="white"; + +// Bent pin +// _L - whole pin length +// _l - length of bottom part +// _H - whole pin height +// _th - pin thickness +// _a - bending angle +// _W - pin width +module pin(_L,_l,_H,_th,_a,_W) +{ + // Internal variables + _d1 = _th*sin(_a) / (1-cos(_a)); + _d2 = (_th-_H)*cos(_a) / sin(_a); + + rotate([90,0,90]) + // Extrude the following polygon + linear_extrude(height = _W, center = true, convexity = 10, twist = 0) + polygon([[0,0], + [_l,0], + [_l+_d2,_H-_th], + [_L,_H-_th], + [_L,_H], + [_l+_d2-_d1,_H], + [_l-_d1,_th], + [0,_th]]); +} + +// Array of pins +// _cnt - number of pins +// _distance - distance between pin centres +module pins_array(_cnt, _distance) +{ + if (_cnt>0) + color(color_pin) + { + for (_i = [0:_cnt-1]) + { + translate([_distance*_i,0,0]) + pin(pin_L,pin_l,pin_H,pin_th,pin_a,pin_W); + } + } +} + + +module SCHD3A100() +{ + translate([0,0,dim[2]/2+above]) + difference() + { + color(color_base) + cube(dim, center=true); + // cut SD card area + translate([0,0,dim[2]/2-1/2+0.01]) + color(color_base) + cube([11,15,1],center=true); + // cut pin soldering area + translate([-1.3/2,dim[1]/2-10.15,0]) + color(color_base) + cube([8.9,2,4],center=true); + // cut pin spring area + translate([-1.3/2,dim[1]/2-5,0]) + color(color_base) + cube([8.9,6,4],center=true); + } + + for(i=[0:len(pos_pin_big)-1]) + translate(pos_pin_big[i]) + color(color_pin) + cube(dim_pin_big,center=true); + + for(i=[0:len(pos_pin_small)-1]) + translate(pos_pin_small[i]) + color(color_pin) + cube(dim_pin_small,center=true); + + translate([3.2-(pin_count-1)*pin_pitch,-1.9,0]) + pins_array(pin_count, pin_pitch); +} + +SCHD3A100(); diff --git a/footprints/micro-sd/micro-sd-schd3a0100.3dshapes/SCHD3A100.scad b/footprints/micro-sd/micro-sd-schd3a0100.3dshapes/SCHD3A100.scad deleted file mode 100644 index 4de3f97..0000000 --- a/footprints/micro-sd/micro-sd-schd3a0100.3dshapes/SCHD3A100.scad +++ /dev/null @@ -1,53 +0,0 @@ -dim=[12.43,16.8,1.7]; // base dimensions -above=0.0; // base above the PCB clearance -color_base=[0.2,0.1,0.1]; - -dim_pin_small=[1.1,0.4,0.1]; -pos_pin_small=[ - [-dim[0]/2-dim_pin_small[0]/2,dim[1]/2-2.75,0.05], - [ dim[0]/2+dim_pin_small[0]/2,dim[1]/2-14.45,0.05] -]; - -dim_pin_big=[1.1,1.4,0.1]; -pos_pin_big=[ - [-dim[0]/2-dim_pin_big[0]/2,dim[1]/2-4.45,0.05], - [ dim[0]/2+dim_pin_big[0]/2,dim[1]/2-4.45,0.05], - [-dim[0]/2-dim_pin_big[0]/2,dim[1]/2-12.75,0.05], - [ dim[0]/2+dim_pin_big[0]/2,dim[1]/2-12.75,0.05] -]; -color_pin="white"; - -module SCHD3A100() -{ - translate([0,0,dim[2]/2+above]) - difference() - { - color(color_base) - cube(dim, center=true); - // cut SD card area - translate([0,0,dim[2]/2-1/2+0.01]) - color(color_base) - cube([11,15,1],center=true); - // cut pin soldering area - translate([-1.3/2,dim[1]/2-10.15,0]) - color(color_base) - cube([8.9,2,4],center=true); - // cut pin spring area - translate([-1.3/2,dim[1]/2-5,0]) - color(color_base) - cube([8.9,6,4],center=true); - } - - for(i=[0:len(pos_pin_big)-1]) - translate(pos_pin_big[i]) - color(color_pin) - cube(dim_pin_big,center=true); - - for(i=[0:len(pos_pin_small)-1]) - translate(pos_pin_small[i]) - color(color_pin) - cube(dim_pin_small,center=true); - -} - -SCHD3A100();