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); } }