|
|
|
|
|
|
|
wall = 2.0;
|
|
|
|
tolerance = 0.4;
|
|
|
|
|
|
|
|
width=4+65.0+4;
|
|
|
|
length=30.0+33.0;
|
|
|
|
height=14.0;
|
|
|
|
|
|
|
|
$fn=50;
|
|
|
|
|
|
|
|
|
|
|
|
holes_x=58.0;
|
|
|
|
holes_y=23.0;
|
|
|
|
|
|
|
|
hdmi_y_space = 33.0;
|
|
|
|
|
|
|
|
module base(x, y, z, thick, bottom_thick) {
|
|
|
|
translate([0,0,-bottom_thick])
|
|
|
|
difference() {
|
|
|
|
minkowski() {
|
|
|
|
cube([x,y,z]);
|
|
|
|
cylinder(r=thick,h=0.1);
|
|
|
|
}
|
|
|
|
translate([thick,thick,bottom_thick]) minkowski() {
|
|
|
|
cube([x-2*thick,y-2*thick,z+2]);
|
|
|
|
cylinder(r=thick,h=0.1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
module holes(r, h) {
|
|
|
|
translate([0,0,0]) cylinder(r=r,h=h);
|
|
|
|
translate([holes_x,0,0]) cylinder(r=r,h=h);
|
|
|
|
translate([0,holes_y,0]) cylinder(r=r,h=h);
|
|
|
|
translate([holes_x,holes_y,0]) cylinder(r=r,h=h);
|
|
|
|
}
|
|
|
|
|
|
|
|
module screw() {
|
|
|
|
cylinder(r=2.6/2,h=10);
|
|
|
|
cylinder(r=7/2, h=2);
|
|
|
|
}
|
|
|
|
|
|
|
|
difference() {
|
|
|
|
union() {
|
|
|
|
translate([-4-3.5+wall,-hdmi_y_space+wall,0]) base(width-2*wall, length-2*wall, 14/2, 2*wall, wall);
|
|
|
|
holes(3.5, 1.0);
|
|
|
|
holes(2.0/2, 14/2);
|
|
|
|
translate([wall+tolerance-4-3.5,wall+tolerance-hdmi_y_space,0]) base(width-2*wall-2*tolerance, length-2*wall-2*tolerance, 14/2+2, wall);
|
|
|
|
}
|
|
|
|
|
|
|
|
translate([12.4-3.5,-hdmi_y_space-1+(20/2),(13/2)-1.2]) {
|
|
|
|
cube([22,20,13], center=true);
|
|
|
|
translate([0,-2*wall,0]) cube([17.5,20,9], center=true);
|
|
|
|
}
|
|
|
|
translate([41.4-3.5,-30,(13/2)-1.2]) rotate([90,0,0]) {
|
|
|
|
cylinder(r=3.0/2+tolerance,h=10);
|
|
|
|
translate([0,5/2,5]) cube([3.0+2*tolerance,5,10], center=true);
|
|
|
|
}
|
|
|
|
|
|
|
|
// led1 +22.5
|
|
|
|
translate([22.5-3.5,+35,(13/2)-2]) rotate([90,0,0]) {
|
|
|
|
cylinder(r=5.0/2+tolerance,h=10);
|
|
|
|
translate([0,5/2,5]) cube([5.0+2*tolerance,5,10], center=true);
|
|
|
|
}
|
|
|
|
// led2 +45
|
|
|
|
translate([45-3.5,+35,(13/2)-2]) rotate([90,0,0]) {
|
|
|
|
cylinder(r=5.0/2+tolerance,h=10);
|
|
|
|
translate([0,5/2,5]) cube([5.0+2*tolerance,5,10], center=true);
|
|
|
|
}
|
|
|
|
|
|
|
|
translate([-7.2,1.4,0]) cube([3,20,10]);
|
|
|
|
translate([width-10.8,1.4,0]) cube([3,20,10]);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//translate([-3-3.5+2,-hdmi_y_space+length-2,-0.2]) screw();
|
|
|
|
|
|
|
|
|
|
|
|
%translate([0,80,0]) mirror([0,1,0]) difference() {
|
|
|
|
union() {
|
|
|
|
translate([-4-3.5,-hdmi_y_space,0]) base(width, length, 14/2, wall, wall);
|
|
|
|
difference() {
|
|
|
|
holes(3.5, 14/2);
|
|
|
|
translate([0,0,3]) holes(2.0/2+tolerance, 14/2);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
translate([12.4-3.5,-hdmi_y_space-1+(20/2),(13/2)-1.2]) {
|
|
|
|
cube([22,20,13], center=true);
|
|
|
|
translate([0,-2*wall,0]) cube([17.5,20,9], center=true);
|
|
|
|
}
|
|
|
|
translate([41.4-3.5,-30,(13/2)-1.2]) rotate([90,0,0]) {
|
|
|
|
cylinder(r=3.0/2+tolerance,h=10);
|
|
|
|
translate([0,5/2,0]) cube([3.0+2*tolerance,5,10], center=true);
|
|
|
|
}
|
|
|
|
|
|
|
|
// led1 +22.5
|
|
|
|
translate([22.5-3.5,+35,(13/2)-2]) rotate([90,0,0]) {
|
|
|
|
cylinder(r=5.0/2+tolerance,h=10);
|
|
|
|
translate([0,5/2,5]) cube([5.0+2*tolerance,5,10], center=true);
|
|
|
|
}
|
|
|
|
// led2 +45
|
|
|
|
translate([45-3.5,+35,(13/2)-2]) rotate([90,0,0]) {
|
|
|
|
cylinder(r=5.0/2+tolerance,h=10);
|
|
|
|
translate([0,5/2,5]) cube([5.0+2*tolerance,5,10], center=true);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|