Index: SOT323.scad =================================================================== --- SOT323.scad (revision 37525) +++ SOT323.scad (revision 37526) @@ -31,8 +31,55 @@ // in any way. // -module sot323() +module sot323(fillet=0) { + pad_len=0.3; + pad_width=0.3; + pad_height= 0.2; + + 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,0]) { + 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 sot323_() { // pin prototype @@ -63,8 +110,18 @@ } } + if (fillet) { + color([0.9, 0.9, 0.9]) { + fillet(); + translate([0,1.45-0.3/2,0]) + fillet(); + translate([-2.03,0.8-0.3/2,0]) + rotate([0,0,180]) + fillet(); + } + } + // match rotation with stock footprint's rotate([0,0,90]) sot323_(); } - Index: SOT323D.scad =================================================================== --- SOT323D.scad (revision 37525) +++ SOT323D.scad (revision 37526) @@ -31,8 +31,55 @@ // in any way. // -module sot323D() +module sot323D(fillet=0) { + pad_len=0.3; + pad_width=0.3; + pad_height= 0.2; + + 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,0]) { + 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 sot323D_() { // pin prototype @@ -63,8 +110,20 @@ } } + if (fillet) { + color([0.9, 0.9, 0.9]) { + rotate([0,0,-90]) + fillet(); + translate([1.45-0.3/2,0,0]) + rotate([0,0,-90]) + fillet(); + translate([0.8-0.3/2,2.03,0]) + rotate([0,0,90]) + fillet(); + } + } + // match rotation with stock footprint's rotate([0,0,0]) sot323D_(); } - Index: SOT325.scad =================================================================== --- SOT325.scad (revision 37525) +++ SOT325.scad (revision 37526) @@ -31,8 +31,55 @@ // in any way. // -module sot325() +module sot325(fillet=0) { + pad_len=0.3; + pad_width=0.3; + pad_height= 0.2; + + 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,0]) { + 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 sot325_() { // pin prototype @@ -65,9 +112,25 @@ } } } + + if (fillet) { + color([0.9, 0.9, 0.9]) { + fillet(); + translate([0,1.45-0.3/2,0]) + fillet(); + translate([-2.03,0,0]) + rotate([0,0,180]) + fillet(); + translate([-2.03,0.8-0.3/2,0]) + rotate([0,0,180]) + fillet(); + translate([-2.03,1.45-0.3/2,0]) + rotate([0,0,180]) + fillet(); + } + } // match rotation with stock footprint's rotate([0,0,90]) sot325_(); } - Index: SOT326.scad =================================================================== --- SOT326.scad (revision 37525) +++ SOT326.scad (revision 37526) @@ -31,8 +31,55 @@ // in any way. // -module sot326() +module sot326(fillet=0) { + pad_len=0.3; + pad_width=0.3; + pad_height= 0.2; + + 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,0]) { + 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 sot326_() { // pin prototype @@ -53,7 +100,7 @@ color([0.9, 0.9, 0.9]) { translate([0.43,0.4,0.35-0.3/2]) pin(0.6, 0.4, 0.3); - translate([0.43,0.4,1.0-0.3/2]) + translate([0.43,0.4,1.0-0.3/2]) pin(0.6, 0.4, 0.3); translate([0.43,0.4,1.65-0.3/2]) pin(0.6, 0.4, 0.3); @@ -69,8 +116,25 @@ } } + if (fillet) { + color([0.9, 0.9, 0.9]) { + fillet(); + translate([0,0.8-0.3/2,0]) + fillet(); + translate([0,1.45-0.3/2,0]) + fillet(); + translate([-2.03,0,0]) + rotate([0,0,180]) + fillet(); + translate([-2.03,0.8-0.3/2,0]) + rotate([0,0,180]) + fillet(); + translate([-2.03,1.45-0.3/2,0]) + rotate([0,0,180]) + fillet(); + } + } // match rotation with stock footprint's rotate([0,0,90]) sot326_(); } - Index: SOT89.scad =================================================================== --- SOT89.scad (revision 37525) +++ SOT89.scad (revision 37526) @@ -31,9 +31,55 @@ // in any way. // +module sot89(fillet=0) +{ + pad_len=1.0; + pad_width=0.48; + pad_height= 0.4; -module sot89() -{ + 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,0]) { + 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 sot89_() { rotate([0,0,90]) { translate([1.55,-0.5,0]) { @@ -62,5 +108,14 @@ } } sot89_(); + if(fillet) { + color([0.9, 0.9, 0.9]) { + translate([0,0.05,0]) + fillet(); + translate([0,1.55,0]) + fillet(); + translate([0,3.05,0]) + fillet(); + } + } } -