g_fn=32; g_base_h=2; g_base_r=3; g_base_l=10.16; g_base_ly=8.89; g_pin_d=1.5; module led3_support(r) { difference() { union() { hull() { translate([-((g_base_l/2-g_base_r)),-(g_base_ly/2-g_base_r),0]) cylinder(h=g_base_h, r=g_base_r, center=false, $fn=g_fn); translate([-(g_base_l/2-g_base_r),(g_base_ly/2-g_base_r),0]) cylinder(h=g_base_h, r=g_base_r, center=false, $fn=g_fn); translate([(g_base_l/2-g_base_r),-(g_base_ly/2-g_base_r),0]) cylinder(h=g_base_h, r=g_base_r, center=false, $fn=g_fn); translate([(g_base_l/2-g_base_r),(g_base_ly/2-g_base_r),0]) cylinder(h=g_base_h, r=g_base_r, center=false, $fn=g_fn); } cylinder(h=12, d=6, center=false, $fn=g_fn); } translate([0,0,-1]) cylinder(h=14, d=g_pin_d, center=false, $fn=g_fn); translate([-2.5,0,-1]) hull() { cylinder(h=14, d=g_pin_d, center=false, $fn=g_fn); translate(-[1,0,0]) cylinder(h=14, d=g_pin_d, center=false, $fn=g_fn); } translate([-2.54,0,-1]) hull() { cylinder(h=14, d=g_pin_d, center=false, $fn=g_fn); translate(-[1.5-(g_pin_d/2),0,0]) cylinder(h=14, d=g_pin_d, center=false, $fn=g_fn); } translate([2.54,0,-1]) hull() { cylinder(h=14, d=g_pin_d, center=false, $fn=g_fn); translate([1.5-(g_pin_d/2),0,0]) cylinder(h=14, d=g_pin_d, center=false, $fn=g_fn); } translate([0,0,9.5]) hull() { translate(-[4.04-(g_pin_d/2),0,0]) cylinder(h=3, d=g_pin_d, center=false, $fn=g_fn); translate([4.04-(g_pin_d/2),0,0]) cylinder(h=3, d=g_pin_d, center=false, $fn=g_fn); } } } module led2_support(r) { difference() { union() { hull() { translate([-((g_base_l/2-g_base_r)),-(g_base_ly/2-g_base_r),0]) cylinder(h=g_base_h, r=g_base_r, center=false, $fn=g_fn); translate([-(g_base_l/2-g_base_r),(g_base_ly/2-g_base_r),0]) cylinder(h=g_base_h, r=g_base_r, center=false, $fn=g_fn); translate([(g_base_l/2-g_base_r),-(g_base_ly/2-g_base_r),0]) cylinder(h=g_base_h, r=g_base_r, center=false, $fn=g_fn); translate([(g_base_l/2-g_base_r),(g_base_ly/2-g_base_r),0]) cylinder(h=g_base_h, r=g_base_r, center=false, $fn=g_fn); } cylinder(h=12, d=6, center=false, $fn=g_fn); } translate([-1.27,0,-1]) hull() { cylinder(h=14, d=g_pin_d, center=false, $fn=g_fn); translate(-[2.77-(2.27/2),0,0]) cylinder(h=14, d=g_pin_d, center=false, $fn=g_fn); } translate([1.27,0,-1]) hull() { cylinder(h=14, d=g_pin_d, center=false, $fn=g_fn); translate([2.77-(2.27/2),0,0]) cylinder(h=14, d=g_pin_d, center=false, $fn=g_fn); } translate([0,0,9.5]) hull() { translate(-[4.04-(g_pin_d/2),0,0]) cylinder(h=3, d=g_pin_d, center=false, $fn=g_fn); translate([4.04-(g_pin_d/2),0,0]) cylinder(h=3, d=g_pin_d, center=false, $fn=g_fn); } } } module no_led_support() { difference() { hull() { translate([-((g_base_l/2-g_base_r)),-(g_base_ly/2-g_base_r),0]) cylinder(h=g_base_h, r=g_base_r, center=false, $fn=g_fn); translate([((g_base_l/2-g_base_r)),-(g_base_ly/2-g_base_r),0]) cylinder(h=g_base_h, r=g_base_r, center=false, $fn=g_fn); translate([-((g_base_l/2-g_base_r)),(g_base_ly/2-g_base_r),0]) cylinder(h=g_base_h, r=g_base_r, center=false, $fn=g_fn); translate([((g_base_l/2-g_base_r)),(g_base_ly/2-g_base_r),0]) cylinder(h=g_base_h, r=g_base_r, center=false, $fn=g_fn); } translate([0,0,-1]) cylinder(h=g_base_h+2, d=7, center=false, $fn=g_fn); } } difference() { union() { // row 1 for(x = [0 : 1 : 5]) { translate([x * g_base_l, 2 * g_base_ly, 0]) led3_support(); } // row 2 for(x = [0 : 1 : 3]) { translate([x * g_base_l, 1 * g_base_ly, 0]) led3_support(); } for(x = [3 : 1 : 5]) { translate([x * g_base_l, 1 * g_base_ly, 0]) no_led_support(); } // row 3 for(x = [0 : 1 : 1]) { translate([x * g_base_l, 0 * g_base_ly, 0]) led2_support(); } for(x = [2 : 1 : 4]) { translate([x * g_base_l, 0 * g_base_ly, 0]) no_led_support(); } translate([5 * g_base_l, 0 * g_base_ly, 0]) led3_support(); } translate([-6.34,-6.35,-1]) cylinder(h=4, r=6, center=false, $fn=g_fn); translate([-6.34,6.35+(g_base_ly*2),-1]) cylinder(h=4, r=6, center=false, $fn=g_fn); } //union() { // translate([0 * g_base_l, 1 * g_base_ly, 0]) led3_support(); // translate([0 * g_base_l, 0 * g_base_ly, 0]) led2_support(); //}