module neo8x8(){ color("black") cube([71.12,71.12,1.6]); module iohole(){ difference(){ translate([-.4,3,-.1]) color("gold") cylinder(h=1.75, d=2, $fn=100); translate([-.4,3,-.2]) color("gold") cylinder(h=3, d=1, $fn=100); } } translate([8.9,0,-.01]) iohole(); translate([8.9,3,-.01]) iohole(); translate([8.9,6,-.01]) iohole(); translate([63,65,-.01]) iohole(); translate([63,62,-.01]) iohole(); translate([63,59,-.01]) iohole(); translate([6.5,1.5,0]) rectangular_array(8,8,9) pixel90(); module pixel(){ union(){ difference(){ translate([0, 0, 1.6]) color("white") cube([5,5,1.6]); translate([-.5, -.5, 1.4]) cube([6,1.5,.35]); translate([-.5, 4, 1.4]) cube([6,1.5,.35]); translate([2.5,2.5,2.5]) cylinder ( h=5, r=1.8, $fn=100); } translate([0,0,1.6]) color("white") cube([.4,5,.5]); translate([1.6,0,1.6]) color("white") cube([.4,5,.5]); translate([3.1,0,1.6]) color("white") cube([.4,5,.5]); translate([4.6,0,1.6]) color("white") cube([.4,5,.5]); } } module pixel90(){ rotate(90) pixel(); } module rectangular_array (rows, cols, distance){ for ( i = [0:1:rows-1]){ for ( j = [0:1:cols-1] ) { translate([distance*i, distance*j, 0]) children(); } } } } neo8x8();