Index: SOD106A.scad =================================================================== --- SOD106A.scad (revision 37524) +++ SOD106A.scad (revision 37525) @@ -30,8 +30,51 @@ // in any way. // -module part_SOD106A(body_len=4.4, width=2.6, height=2.2, pad_len=1.15, pad_width=1.5, pad_height=1.65) +module part_SOD106A(body_len=4.4, width=2.6, height=2.2, pad_len=1.15, pad_width=1.5, pad_height=1.65, fillet=0) { + module fillet() { + fillet_height = pad_height/3; + fillet_width = pad_len/3; + overall_width = fillet_width + pad_width; + overall_length = pad_len + fillet_width; + + translate([-pad_len/2,0,-pad_height/2]) { + fillet_points = [ + [0,overall_width/2,0], // 0 + [overall_length,overall_width/2,0], // 1 + [overall_length,-overall_width/2,0], // 2 + [0,-overall_width/2,0], // 3 + [0,pad_width/2+fillet_width/2,fillet_height/3], // 4 + [pad_len+fillet_width/2,pad_width/2+fillet_width/2,fillet_height/3], // 5 + [pad_len+fillet_width/2,-pad_width/2-fillet_width/2,fillet_height/3], // 6 + [0,-pad_width/2-fillet_width/2,fillet_height/3], // 7 + [0,pad_width/2+fillet_width/6,2*fillet_height/3], // 8 + [pad_len+fillet_width/6,pad_width/2+fillet_width/6,2*fillet_height/3], // 9 + [pad_len+fillet_width/6,-pad_width/2-fillet_width/6,2*fillet_height/3], // 10 + [0,-pad_width/2-fillet_width/6,2*fillet_height/3], // 11 + [0,pad_width/2,fillet_height], // 12 + [pad_len,pad_width/2,fillet_height], // 13 + [pad_len,-pad_width/2,fillet_height], // 14 + [0,-pad_width/2,fillet_height]]; // 15 + + fillet_faces = [ + [0,4,8,12,15,11,7,3], // 0 + [0,1,5,4], // 1 + [1,2,6,5], // 2 + [7,6,2,3], // 3 + [4,5,9,8], // 4 + [5,6,10,9],// 5 + [10,6,7,11],// 6 + [8,9,13,12],// 7 + [9,10,14,13],// 8 + [15,14,10,11],// 9 + [12,13,14,15],// 10 + [3,2,1,0]];// 11 + + polyhedron(fillet_points, fillet_faces); + } + } + union() { translate([0,width/2,0]) rotate([90,0,0]) @@ -72,14 +115,20 @@ translate([0,0,pad_height/2]) { // terminals color([0.8,0.8,0.8]) { - translate([+body_len/2-pad_len/5, 0, 0]) + translate([+body_len/2-pad_len/5, 0, 0]) { cube([pad_len, pad_width, pad_height], center=true); + if (fillet) + fillet(); + } + translate([-body_len/2+pad_len/5, 0, 0]) { + cube([pad_len, pad_width, pad_height], center=true); + if (fillet) + rotate([0,0,180]) + fillet(); + } } - color([0.8,0.8,0.8]) { - translate([-body_len/2+pad_len/5, 0, 0]) - cube([pad_len, pad_width, pad_height], center=true); - } } + translate([0,0,pad_height/2]) { color([0.95,0.95,0.95]) { translate([-body_len/2.3+pad_len/2, 0, height/2+0.2]) Index: SOD110.scad =================================================================== --- SOD110.scad (revision 37524) +++ SOD110.scad (revision 37525) @@ -30,8 +30,51 @@ // in any way. // -module part_SOD110(body_len=2.0, width=1.3, height=1.5, pad_len=0.5, pad_width=1.0, pad_height=1.6) +module part_SOD110(body_len=2.0, width=1.3, height=1.5, pad_len=0.5, pad_width=1.0, pad_height=1.6, fillet=0) { + module fillet() { + fillet_height = pad_height/3; + fillet_width = pad_len/3; + overall_width = fillet_width + pad_width; + overall_length = pad_len + fillet_width; + + translate([-pad_len/2,0,-pad_height/2]) { + fillet_points = [ + [0,overall_width/2,0], // 0 + [overall_length,overall_width/2,0], // 1 + [overall_length,-overall_width/2,0], // 2 + [0,-overall_width/2,0], // 3 + [0,pad_width/2+fillet_width/2,fillet_height/3], // 4 + [pad_len+fillet_width/2,pad_width/2+fillet_width/2,fillet_height/3], // 5 + [pad_len+fillet_width/2,-pad_width/2-fillet_width/2,fillet_height/3], // 6 + [0,-pad_width/2-fillet_width/2,fillet_height/3], // 7 + [0,pad_width/2+fillet_width/6,2*fillet_height/3], // 8 + [pad_len+fillet_width/6,pad_width/2+fillet_width/6,2*fillet_height/3], // 9 + [pad_len+fillet_width/6,-pad_width/2-fillet_width/6,2*fillet_height/3], // 10 + [0,-pad_width/2-fillet_width/6,2*fillet_height/3], // 11 + [0,pad_width/2,fillet_height], // 12 + [pad_len,pad_width/2,fillet_height], // 13 + [pad_len,-pad_width/2,fillet_height], // 14 + [0,-pad_width/2,fillet_height]]; // 15 + + fillet_faces = [ + [0,4,8,12,15,11,7,3], // 0 + [0,1,5,4], // 1 + [1,2,6,5], // 2 + [7,6,2,3], // 3 + [4,5,9,8], // 4 + [5,6,10,9],// 5 + [10,6,7,11],// 6 + [8,9,13,12],// 7 + [9,10,14,13],// 8 + [15,14,10,11],// 9 + [12,13,14,15],// 10 + [3,2,1,0]];// 11 + + polyhedron(fillet_points, fillet_faces); + } + } + union() { translate([0,0,height/2+(pad_height-height)/2]) { // body @@ -41,14 +84,20 @@ translate([0,0,pad_height/2]) { // terminals color([0.8,0.8,0.8]) { - translate([+body_len/2-pad_len/2, 0, 0]) + translate([+body_len/2-pad_len/2, 0, 0]) { cube([pad_len, pad_width, pad_height], center=true); + if (fillet) + fillet(); + } + translate([-body_len/2+pad_len/2, 0, 0]) { + cube([pad_len, pad_width, pad_height], center=true); + if (fillet) + rotate([0,0,180]) + fillet(); + } } - color([0.8,0.8,0.8]) { - translate([-body_len/2+pad_len/2, 0, 0]) - cube([pad_len, pad_width, pad_height], center=true); - } } + // stripe translate([0,0,pad_height/2]) { color([0.95,0.95,0.95]) { translate([-body_len/4+pad_len/2, 0, pad_height/2-0.05]) @@ -57,4 +106,3 @@ } } } - Index: SOD123.scad =================================================================== --- SOD123.scad (revision 37524) +++ SOD123.scad (revision 37525) @@ -30,7 +30,7 @@ // in any way. // -module part_sod123() +module part_sod123(fillet=0) { A = 1.35 ; D = 1.8 ; @@ -41,7 +41,57 @@ L = 0.25 ; b = 0.71 ; l2 = 0.15 ; + + body_len=E; + width=D; + height=A; + pad_len=L; + pad_width=b; + pad_height= c; + module fillet() { + fillet_height = pad_height/3; + fillet_width = pad_len/3; + overall_width = fillet_width + pad_width; + overall_length = pad_len + fillet_width; + + translate([-pad_len/2,0,-pad_height/2]) { + fillet_points = [ + [0,overall_width/2,0], // 0 + [overall_length,overall_width/2,0], // 1 + [overall_length,-overall_width/2,0], // 2 + [0,-overall_width/2,0], // 3 + [0,pad_width/2+fillet_width/2,fillet_height/3], // 4 + [pad_len+fillet_width/2,pad_width/2+fillet_width/2,fillet_height/3], // 5 + [pad_len+fillet_width/2,-pad_width/2-fillet_width/2,fillet_height/3], // 6 + [0,-pad_width/2-fillet_width/2,fillet_height/3], // 7 + [0,pad_width/2+fillet_width/6,2*fillet_height/3], // 8 + [pad_len+fillet_width/6,pad_width/2+fillet_width/6,2*fillet_height/3], // 9 + [pad_len+fillet_width/6,-pad_width/2-fillet_width/6,2*fillet_height/3], // 10 + [0,-pad_width/2-fillet_width/6,2*fillet_height/3], // 11 + [0,pad_width/2,fillet_height], // 12 + [pad_len,pad_width/2,fillet_height], // 13 + [pad_len,-pad_width/2,fillet_height], // 14 + [0,-pad_width/2,fillet_height]]; // 15 + + fillet_faces = [ + [0,4,8,12,15,11,7,3], // 0 + [0,1,5,4], // 1 + [1,2,6,5], // 2 + [7,6,2,3], // 3 + [4,5,9,8], // 4 + [5,6,10,9],// 5 + [10,6,7,11],// 6 + [8,9,13,12],// 7 + [9,10,14,13],// 8 + [15,14,10,11],// 9 + [12,13,14,15],// 10 + [3,2,1,0]];// 11 + + polyhedron(fillet_points, fillet_faces); + } + } + module lead() color ([0.9, 0.9, 0.9]) { @@ -65,13 +115,21 @@ translate ([He/2 - E/2 - He/2, -D/2, 0]) cube ([E, D, A]) ; - translate ([-He/2, 0, 0]) - lead() ; - - translate ([He/2, 0, 0]) - mirror ([1, 0, 0]) - lead() ; - + translate ([-He/2, 0, 0]) + lead() ; + translate ([He/2, 0, 0]) + mirror ([1, 0, 0]) + lead() ; + if (fillet) { + color ([0.8, 0.8, 0.8]) { + translate([+body_len/2+3*pad_len/2, 0, pad_height/2]) + fillet(); + translate([-body_len/2-3*pad_len/2, 0, pad_height/2]) + rotate([0,0,180]) + fillet(); + } + } + color ([0.5, 0.5, 0.5]) intersection() { Index: SOD323.scad =================================================================== --- SOD323.scad (revision 37524) +++ SOD323.scad (revision 37525) @@ -30,8 +30,58 @@ // in any way. // -module part_sod323() +module part_sod323(fillet=0) { + body_len=1.8; + width=1.2; + height=1.35; + pad_len=0.25; + pad_width=0.35; + pad_height= 0.15; + + module fillet() { + fillet_height = pad_height/3; + fillet_width = pad_len/3; + overall_width = fillet_width + pad_width; + overall_length = pad_len + fillet_width; + + translate([-pad_len/2,0,-pad_height/2]) { + fillet_points = [ + [0,overall_width/2,0], // 0 + [overall_length,overall_width/2,0], // 1 + [overall_length,-overall_width/2,0], // 2 + [0,-overall_width/2,0], // 3 + [0,pad_width/2+fillet_width/2,fillet_height/3], // 4 + [pad_len+fillet_width/2,pad_width/2+fillet_width/2,fillet_height/3], // 5 + [pad_len+fillet_width/2,-pad_width/2-fillet_width/2,fillet_height/3], // 6 + [0,-pad_width/2-fillet_width/2,fillet_height/3], // 7 + [0,pad_width/2+fillet_width/6,2*fillet_height/3], // 8 + [pad_len+fillet_width/6,pad_width/2+fillet_width/6,2*fillet_height/3], // 9 + [pad_len+fillet_width/6,-pad_width/2-fillet_width/6,2*fillet_height/3], // 10 + [0,-pad_width/2-fillet_width/6,2*fillet_height/3], // 11 + [0,pad_width/2,fillet_height], // 12 + [pad_len,pad_width/2,fillet_height], // 13 + [pad_len,-pad_width/2,fillet_height], // 14 + [0,-pad_width/2,fillet_height]]; // 15 + + fillet_faces = [ + [0,4,8,12,15,11,7,3], // 0 + [0,1,5,4], // 1 + [1,2,6,5], // 2 + [7,6,2,3], // 3 + [4,5,9,8], // 4 + [5,6,10,9],// 5 + [10,6,7,11],// 6 + [8,9,13,12],// 7 + [9,10,14,13],// 8 + [15,14,10,11],// 9 + [12,13,14,15],// 10 + [3,2,1,0]];// 11 + + polyhedron(fillet_points, fillet_faces); + } + } + module lead() color ([0.9, 0.9, 0.9]) { @@ -52,25 +102,33 @@ } module case() - translate ([-0.9, -0.7, 0]) - cube ([1.8, 1.4, 1.35]) ; + translate ([-0.9, -0.7, 0]) + cube ([1.8, 1.4, 1.35]) ; - translate ([-0.5-0.9, 0, 0]) - lead() ; - - mirror ([1, 0, 0]) - translate ([-0.5-0.9, 0, 0]) - lead() ; - - color ([0.5, 0.5, 0.5]) - intersection() - { - translate ([-0.7, -5, -5]) - cube ([0.3, 10, 10]) ; + translate ([-0.5-0.9, 0, 0]) + lead() ; + mirror ([1, 0, 0]) + translate ([-0.5-0.9, 0, 0]) + lead() ; + if(fillet) { + color ([0.8, 0.8, 0.8]) { + translate([+body_len/2+3*pad_len/2, 0, pad_height/2]) + fillet(); + translate([-body_len/2-3*pad_len/2, 0, pad_height/2]) + rotate([0,0,180]) + fillet(); + } + } - scale (1.002) - case() ; - } + color ([0.5, 0.5, 0.5]) + intersection() + { + translate ([-0.7, -5, -5]) + cube ([0.3, 10, 10]) ; + + scale (1.002) + case() ; + } color ([0.3, 0.3, 0.3]) case() ; Index: SOD80.scad =================================================================== --- SOD80.scad (revision 37524) +++ SOD80.scad (revision 37525) @@ -30,7 +30,57 @@ // in any way. // -module package_sod80() { +module package_sod80(fillet=0) { + body_len=2.8; + width=1.46; + height=1.46; + pad_len=0.35; + pad_width=1.0; + pad_height= 1.48; + + module fillet() { + fillet_height = pad_height/3; + fillet_width = pad_len/3; + overall_width = fillet_width + pad_width; + overall_length = pad_len + fillet_width; + + translate([-pad_len/2,0,-pad_height/2]) { + fillet_points = [ + [0,overall_width/2,0], // 0 + [overall_length,overall_width/2,0], // 1 + [overall_length,-overall_width/2,0], // 2 + [0,-overall_width/2,0], // 3 + [0,pad_width/2+fillet_width/2,fillet_height/3], // 4 + [pad_len+fillet_width/2,pad_width/2+fillet_width/2,fillet_height/3], // 5 + [pad_len+fillet_width/2,-pad_width/2-fillet_width/2,fillet_height/3], // 6 + [0,-pad_width/2-fillet_width/2,fillet_height/3], // 7 + [0,pad_width/2+fillet_width/6,2*fillet_height/3], // 8 + [pad_len+fillet_width/6,pad_width/2+fillet_width/6,2*fillet_height/3], // 9 + [pad_len+fillet_width/6,-pad_width/2-fillet_width/6,2*fillet_height/3], // 10 + [0,-pad_width/2-fillet_width/6,2*fillet_height/3], // 11 + [0,pad_width/2,fillet_height], // 12 + [pad_len,pad_width/2,fillet_height], // 13 + [pad_len,-pad_width/2,fillet_height], // 14 + [0,-pad_width/2,fillet_height]]; // 15 + + fillet_faces = [ + [0,4,8,12,15,11,7,3], // 0 + [0,1,5,4], // 1 + [1,2,6,5], // 2 + [7,6,2,3], // 3 + [4,5,9,8], // 4 + [5,6,10,9],// 5 + [10,6,7,11],// 6 + [8,9,13,12],// 7 + [9,10,14,13],// 8 + [15,14,10,11],// 9 + [12,13,14,15],// 10 + [3,2,1,0]];// 11 + + polyhedron(fillet_points, fillet_faces); + } + } + // r[adius], h[eight], [rou]n[d] module rounded_cylinder(r,h,n) { rotate_extrude(convexity=1) { @@ -40,6 +90,15 @@ } translate([-1.575,0,0.8]) { + if(fillet) { + color([0.8,0.8,0.8]) { + translate([+body_len+pad_len, 0, -0.06]) + fillet(); + translate([0, 0, -0.06]) + rotate([0,0,180]) + fillet(); + } + } rotate([0,90,0]) { union () { color([1,0.1,0.1]) { @@ -53,7 +112,6 @@ color([0.8,0.8,0.8]) { translate([0,0,-0.35/2]) cylinder(r=0.8, h=0.35); - translate([0,0,0.35/2 + 2.8]) cylinder(r=0.8, h=0.35); } @@ -61,4 +119,3 @@ } } } - Index: SOD87.scad =================================================================== --- SOD87.scad (revision 37524) +++ SOD87.scad (revision 37525) @@ -30,7 +30,57 @@ // in any way. // -module package_sod87() { +module package_sod87(fillet=0) { + body_len=2.9; + width=1.9; + height=1.9; + pad_len=0.3; + pad_width=1.0; + pad_height= 2.05; + + module fillet() { + fillet_height = pad_height/3; + fillet_width = pad_len/3; + overall_width = fillet_width + pad_width; + overall_length = pad_len + fillet_width; + + translate([-pad_len/2,0,-pad_height/2]) { + fillet_points = [ + [0,overall_width/2,0], // 0 + [overall_length,overall_width/2,0], // 1 + [overall_length,-overall_width/2,0], // 2 + [0,-overall_width/2,0], // 3 + [0,pad_width/2+fillet_width/2,fillet_height/3], // 4 + [pad_len+fillet_width/2,pad_width/2+fillet_width/2,fillet_height/3], // 5 + [pad_len+fillet_width/2,-pad_width/2-fillet_width/2,fillet_height/3], // 6 + [0,-pad_width/2-fillet_width/2,fillet_height/3], // 7 + [0,pad_width/2+fillet_width/6,2*fillet_height/3], // 8 + [pad_len+fillet_width/6,pad_width/2+fillet_width/6,2*fillet_height/3], // 9 + [pad_len+fillet_width/6,-pad_width/2-fillet_width/6,2*fillet_height/3], // 10 + [0,-pad_width/2-fillet_width/6,2*fillet_height/3], // 11 + [0,pad_width/2,fillet_height], // 12 + [pad_len,pad_width/2,fillet_height], // 13 + [pad_len,-pad_width/2,fillet_height], // 14 + [0,-pad_width/2,fillet_height]]; // 15 + + fillet_faces = [ + [0,4,8,12,15,11,7,3], // 0 + [0,1,5,4], // 1 + [1,2,6,5], // 2 + [7,6,2,3], // 3 + [4,5,9,8], // 4 + [5,6,10,9],// 5 + [10,6,7,11],// 6 + [8,9,13,12],// 7 + [9,10,14,13],// 8 + [15,14,10,11],// 9 + [12,13,14,15],// 10 + [3,2,1,0]];// 11 + + polyhedron(fillet_points, fillet_faces); + } + } + // r[adius], h[eight], [rou]n[d] module rounded_cylinder(r,h,n) { rotate_extrude(convexity=1) { @@ -40,6 +90,15 @@ } translate([-1.575,0,1.025]) { + if(fillet) { + color([0.8,0.8,0.8]) { + translate([+body_len+pad_len, 0, 0]) + fillet(); + translate([0, 0, 0]) + rotate([0,0,180]) + fillet(); + } + } rotate([0,90,0]) { union () { color([1,0.1,0.1]) { @@ -54,7 +113,7 @@ translate([0,0,-0.3/2]) cylinder(r=1.025, h=0.3); - translate([0,0,0.3/2 + 2.8]) + translate([0,0,0.3/2 + 2.9]) cylinder(r=1.025, h=0.3); } }