tower_over_max_z = tower_frontheight + tower_overhang * cos(tower_over_angle);
tower_total_max_z = tower_over_max_z + vert_space_inside + led_depth;
tower_rearwall_y = -(backfront_space_inside + tower_wall_thick);
-
+led_head_y = tower_over_max_y/2;
+led_head_z = tower_frontheight + tower_overhang*sin(tower_over_angle)/2;
backfront_mate_extra = (backfront_mate_size - (-tower_rearwall_y));
module TowerWallCrossSection(){
[-tower_rearwall_y, tower_total_max_z],
[-tower_rearwall_y, 0],
[-tower_rearwall_y, -tower_base_height],
- [-backfront_mate_extra, -tower_base_height]]);
+ [-backfront_mate_extra, -tower_base_height]],
+ convexity=5);
}
module TowerWallSomeEdge(front){
intersection(){
TowerWallCrossSection();
union(){
- translate([-tower_over_max_y/2,
- tower_frontheight + tower_overhang*sin(tower_over_angle)/2])
+ translate([-led_head_y, led_head_z])
circle(r = led_depth);
TowerWallSomeEdge(true);
translate([-50, -50])
TowerWallCrossSection();
union(){
intersection(){
- translate([0,-10]) square([100, 10+tower_frontheight]);
+ translate([0,-10]) square([100, 10+led_head_z]);
TowerWallSomeEdge(false);
}
TowerBulkCrossSection();
}
}
+module LedHole(){
+ translate([0, led_head_y, led_head_z])
+ rotate([90 + led_angle])
+ translate([0,0,-10])
+ cylinder(r=led_dia/2, h=led_depth+0.1+10, $fn=30);
+}
+
module Tower(){
difference(){
TowerMain();
+ LedHole();
}
}