include ; SQUARE_INNER = 7.8; time = 0; module daylight_spool_mount (top = true, base = true, height = 18.5) { $fn = 60; topHeight = 3.5; difference(){ translate([0, 0, -1.5]) cube([SQUARE_INNER, SQUARE_INNER, 21.5], center= true); for (i = [0:4]) { rotate([0, 0, (i * 90)]){ translate([(SQUARE_INNER / 2) + .4, (SQUARE_INNER / 2) + .4, height / 2]) rotate([0, -15, 45]) cube([2.5, SQUARE_INNER, SQUARE_INNER], center = true); } } } if (top) { difference () { union() { translate([0, 0, (height / 2) + (topHeight / 2)]) cylinder(r = R(SQUARE_INNER), h = topHeight, center = true); translate([0, 0, (height / 2) + (7.5 / 2)]) sphere(R(SQUARE_INNER)); } translate ([0, 0, (height / 2) + 7.5]) cube([10, 10, 2], center = true); } } if (base) { difference () { translate([0, 0, -(height / 2) - (3 / 2) - 3]) cylinder(r = R(16), h = 3, center = true); //translate([0, 0, -14.3]) cube([4, 4, 2], center = true); //notch difference() { translate([0, 0, -14.3]) cylinder(r = R(8), h = 2, center = true); translate([0, 6, -14.3]) cube([8, 8, 2], center = true); } } } } //rotate([0, 0, time]) daylight_spool_mount();