314 lines
9.5 KiB
OpenSCAD
314 lines
9.5 KiB
OpenSCAD
/*
|
|
|
|
dsub(dsubsize, mask = false)
|
|
hdmi_a()
|
|
header_f(pins, height)
|
|
usb_micro()
|
|
uart_micro()
|
|
rj45()
|
|
header(pins)
|
|
encl_header_12()
|
|
micro2pin()
|
|
audio_jack35()
|
|
capacitor(diameter, height)
|
|
ic(size)
|
|
led(ledcolor = "red")
|
|
usbc()
|
|
|
|
*/
|
|
|
|
// hdmi a female
|
|
module hdmi_a() {
|
|
size_x = 14.5;
|
|
size_y = 11.5;
|
|
|
|
translate([0,0,.75])
|
|
union() {
|
|
difference() {
|
|
color("silver") translate([0,0,0]) cube([size_x, size_y, 5.5]);
|
|
color("dimgray") translate([.5,-.1,.5]) cube([13.5, 11, 4.5]);
|
|
color("silver") translate([0,-.1,0]) rotate ([-90,0,0])
|
|
cylinder(d=4, h=13.5,$fn=30);
|
|
color("silver") translate([14.5,-.1,0]) rotate ([-90,0,0])
|
|
cylinder(d=4, h=13.5,$fn=30);
|
|
}
|
|
difference() {
|
|
union() {
|
|
color("silver") translate([0,-.1,0]) rotate ([-90,0,0])
|
|
cylinder(d=4, h=11.5,$fn=30);
|
|
color("silver") translate([14.5,-.1,0]) rotate ([-90,0,0])
|
|
cylinder(d=4, h=11.5,$fn=30);
|
|
}
|
|
color("silver") translate([0,-.2,0]) rotate ([-90,0,0])
|
|
cylinder(d=3, h=13.5,$fn=30);
|
|
color("silver") translate([14.5,-.2,0]) rotate ([-90,0,0])
|
|
cylinder(d=3, h=13.5,$fn=30);
|
|
color("silver") translate([-3,-1,-3]) cube([3,13.5,7.5]);
|
|
color("silver") translate([14.5,-1,-3]) cube([3,13.5,7.5]);
|
|
color("silver") translate([-1,-1,-3]) cube([16.5,13.5,3]);
|
|
}
|
|
color("black") translate([2.5,.5,2.25]) cube([9.25,10.5,1.5]);
|
|
}
|
|
}
|
|
|
|
|
|
// single row female headers
|
|
module header_f(pins, height) {
|
|
|
|
adjust = .01;
|
|
$fn = 90;
|
|
size_x = 2.5;
|
|
size_y = 2.5 * pins;
|
|
union() {
|
|
color("black") cube([size_x, size_y, height]);
|
|
for (i=[1:2.5:size_y]) {
|
|
color("dimgray") translate ([1,i,height-5+adjust]) cube([.64,.64,5]);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// uart micro connector type
|
|
module uart_micro() {
|
|
size_x = 12.5;
|
|
size_y = 5;
|
|
union() {
|
|
difference() {
|
|
union() {
|
|
|
|
difference () {
|
|
color("white") translate([0,0,0]) cube([size_x,size_y,6]);
|
|
color("darkgray") translate([.5,.5,2]) cube([11.5,4,6]);
|
|
}
|
|
}
|
|
color("white") translate([12.5,0,-.5]) cube([2,6,7]);
|
|
color("white") translate([-1,0,-.5]) cube([1,6,7]);
|
|
color("white") translate([-1,5,-.5]) cube([14,2,7]);
|
|
color("darkgray") translate([-1,1.5,2]) cube([14,1,7]);
|
|
}
|
|
for (i=[2.5:2.5:10]) {
|
|
color("silver") translate ([i,3,.5]) cube([.6,.6,5]);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// usb2 micro otg
|
|
module usb_micro() {
|
|
size_x = 7;
|
|
size_y = 4.5;
|
|
union() {
|
|
difference () {
|
|
color("silver") translate([0,0,0]) cube([size_x, size_y, 3.5]);
|
|
color("dimgray") translate([.5,-.1,.5]) cube([6, 3.5, 2.5]);
|
|
color("silver") translate([0,-.1,0]) rotate ([-90,0,0])
|
|
cylinder(d=2.5, h=6.5,$fn=30);
|
|
color("silver") translate([7,-.1,0]) rotate ([-90,0,0])
|
|
cylinder(d=2.5, h=6.5,$fn=30);
|
|
|
|
}
|
|
difference() {
|
|
union() {
|
|
color("silver") translate([0,-.1,0]) rotate ([-90,0,0])
|
|
cylinder(d=2.5, h=4.5,$fn=30);
|
|
color("silver") translate([7,-.1,0]) rotate ([-90,0,0])
|
|
cylinder(d=2.5, h=4.5,$fn=30);
|
|
}
|
|
color("silver") translate([0,-.2,0]) rotate ([-90,0,0])
|
|
cylinder(d=1.25, h=6.5,$fn=30);
|
|
color("silver") translate([7,-.2,0]) rotate ([-90,0,0])
|
|
cylinder(d=1.25, h=6.5,$fn=30);
|
|
|
|
color("silver") translate([-3,-1,-3]) cube([3,6.5,7.5]);
|
|
color("silver") translate([7,-1,-3]) cube([3,6.5,7.5]);
|
|
color("silver") translate([0,-1,-3]) cube([9,6.5,3]);
|
|
color("silver") translate([-1,-1,-3]) cube([9,6.5,3]);
|
|
}
|
|
color("black") translate([1.5,.5,1.25]) cube([4,3.5,1]);
|
|
}
|
|
}
|
|
|
|
|
|
// rj45 single socket
|
|
module rj45(x,y,rotation,side,pcbsize_z) {
|
|
size_x = 15.9;
|
|
size_y = 21.3;
|
|
place(x,y,0,size_x,size_y,rotation,side)
|
|
union() {
|
|
difference () {
|
|
color("lightgray") translate([0,0,0]) cube([size_x, size_y, 13.5]);
|
|
color("darkgray") translate([1.5,-1,1.5]) cube([13, 19.5, 8]);
|
|
color("darkgray") translate([5.5,-2,7]) cube([5, 19.5, 5]);
|
|
}
|
|
color("green") translate([2,-.1,10]) cube([3, 2, 2]);
|
|
color("orange") translate([11,-.1,10]) cube([3, 2, 2]);
|
|
}
|
|
}
|
|
|
|
|
|
// momentary_4.5x4.5x1.5 button
|
|
module momentary45x15() {
|
|
|
|
adjust = .01;
|
|
$fn = 90;
|
|
size_x = 4.5;
|
|
size_y = 4.5;
|
|
size_z = 3.1;
|
|
union() {
|
|
color("black") translate([0,0,0]) cube([size_x,size_y,3]);
|
|
color("silver") translate([0,0,3-adjust]) cube([size_x,size_y,.1]);
|
|
color("black") translate([2.25,2.25,3.1-adjust]) cylinder(d=2.35,h=1.50);
|
|
color("black") translate([.75,.75,3]) sphere(d=.75);
|
|
color("black") translate([.75,3.75,3]) sphere(d=.75);
|
|
color("black") translate([3.75,.75,3]) sphere(d=.75);
|
|
color("black") translate([3.75,3.75,3]) sphere(d=.75);
|
|
}
|
|
}
|
|
|
|
|
|
// single row headers
|
|
module header(pins) {
|
|
|
|
adjust = .01;
|
|
$fn = 90;
|
|
size_x = 2.54;
|
|
size_y = 2.54 * pins;
|
|
union() {
|
|
color("black") translate([0,0,0]) cube([size_x, size_y, 2.5]);
|
|
for (i=[1:2.54:size_y]) {
|
|
color("silver") translate ([1,i,2.5]) cube([.64,.64,5]);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// gpio 12 enclosed header
|
|
module encl_header_12() {
|
|
size_x = 19.5;
|
|
size_y = 5.5;
|
|
union() {
|
|
difference () {
|
|
color("black") translate([0,0,0]) cube([size_x,size_y,6.25]);
|
|
color ("dimgray") translate ([.5,.5,.6]) cube([18.5,4.5,5.75]);
|
|
}
|
|
for (i=[4.5:2:16]) {
|
|
color("silver") translate ([i,1.5,1]) cube([.5,.5,5]);
|
|
color("silver") translate ([i,3.5,1]) cube([.5,.5,5]);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// micro connector type
|
|
module micro2pin() {
|
|
size_x = 7.5;
|
|
size_y = 3.75;
|
|
union() {
|
|
difference () {
|
|
color("white") translate([0,0,0]) cube([size_x,size_y,4.75]);
|
|
color("darkgray") translate([1.5,.5,1]) cube([4.5,2.75,6]);
|
|
color("white") translate([-.5,.75,-.5]) cube([1,2.5,6]);
|
|
color("white") translate([7,.75,-.5]) cube([1,2.5,6]);
|
|
color("darkgray") translate([2.25,-.5,1]) cube([3,2,6]);
|
|
}
|
|
color("silver") translate ([2.75,2,.5]) cube([.6,.6,4]);
|
|
color("silver") translate ([4.5,2,.5]) cube([.6,.6,4]);
|
|
}
|
|
}
|
|
|
|
|
|
// 3.5mm audio plug
|
|
module audio_jack35() {
|
|
|
|
adjust = .01;
|
|
$fn = 90;
|
|
size_x = 6.5;
|
|
size_y = 13.5;
|
|
difference () {
|
|
union() {
|
|
color("dimgray") cube([size_x,size_y,3]);
|
|
color("dimgray") cube([size_x,5.6,4]);
|
|
color("dimgray") translate([size_x/2,0,2.25]) rotate([-90,0,0]) cylinder(d=6, h=size_y);
|
|
}
|
|
color("gray") translate([size_x/2,0,2.25]) rotate([-90,0,0]) cylinder(d=3, h=size_y+adjust);
|
|
}
|
|
}
|
|
|
|
|
|
// can capacitor
|
|
module capacitor(diameter, height) {
|
|
adjust = .01;
|
|
$fn = 90;
|
|
color("dimgray") rotate([0,0,0]) cylinder(d=diameter+.5, h=.5);
|
|
color("silver") translate([0,0,.5]) cylinder(d=diameter+.5, h=.5);
|
|
color("silver") translate([0,0,1]) cylinder(d=diameter, h=height-1);
|
|
}
|
|
|
|
|
|
// ic
|
|
module ic(size) {
|
|
color("dimgray") cube(size);
|
|
}
|
|
|
|
|
|
// d-sub connector
|
|
module dsub(dsubsize, mask = false) {
|
|
|
|
adjust=.01;
|
|
$fn = 90;
|
|
|
|
if(mask == true) {
|
|
union() {
|
|
translate([-1, 1, -.75]) rotate([90,0,0]) slab_r([19,10.5,10], [4,4,4,4]);
|
|
translate([-4, 1, 4.5]) rotate([90,0,0]) cylinder(h=10, d=3);
|
|
translate([21, 1, 4.5]) rotate([90,0,0]) cylinder(h=10, d=3);
|
|
}
|
|
}
|
|
else {
|
|
if(dsubsize[0] == 9 && dsubsize[1] == "female") {
|
|
translate([8.5,0.4,4.5]) rotate([90,0,0]) import("./stl/db9_f.stl");
|
|
}
|
|
if(dsubsize[0] == 9 && dsubsize[1] == "male") {
|
|
translate([8.5,0.4,4.5]) rotate([90,0,0]) import("./stl/db9_m.stl");
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
module led(ledcolor = "red") {
|
|
|
|
color(ledcolor) cube([3,1.5,.4]);
|
|
color("silver") cube([.5,1.5,.5]);
|
|
color("silver") translate([2.5,0,0]) cube([.5,1.5,.5]);
|
|
}
|
|
|
|
|
|
module usbc() {
|
|
|
|
$fn=90;
|
|
adj = .01;
|
|
|
|
// usbc horizontal type
|
|
|
|
size_x = 9;
|
|
size_y = 7;
|
|
dia = 3.5;
|
|
diam = 3.75;
|
|
|
|
rotate([90, 0, 0]) translate([dia/2, dia/2, -size_y]) union() {
|
|
difference () {
|
|
color("silver")
|
|
hull() {
|
|
translate([0,0,0]) cylinder(d=dia,h=size_y);
|
|
translate([size_x-dia,0,0]) cylinder(d=dia,h=size_y);
|
|
}
|
|
color("silver") translate([0,0,1])
|
|
hull() {
|
|
translate([0,0,0]) cylinder(d=3,h=size_y+.2);
|
|
translate([size_x-dia,0,0]) cylinder(d=3,h=size_y+.2);
|
|
}
|
|
}
|
|
color("black") translate([0,-1.2/2,.1]) cube([5.5,1.2,6]);
|
|
}
|
|
}
|