18 arch_alpha = atan(arch_height / (arch_width/2));
19 arch_beta = 2*arch_alpha;
20 echo(arch_alpha,arch_beta);
21 arch_in_rad = arch_width/2 / sin(arch_beta);
22 arch_to_chord = arch_in_rad * cos(arch_beta);
24 inner_pbase_thick = 8;
25 echo(inner_pbase_thick);
27 inner_pbase_rad = arch_in_rad * 2;
29 end_thick = arch_thick;
31 holes = [[[ 5 , 5 ], [16 , 21]], // left
32 [[ 18.5, 4.5], [ 4.5, 21]]]; // right
34 module ArchCircle(rad){
35 translate([0,-arch_to_chord])
39 module ArchProfile(pbase){
45 ArchCircle(arch_in_rad + arch_thick);
48 translate([arch_width/2,0])
49 multmatrix([[1,pbase ? -0.75 : 0,0,0],
53 square([end_width, pbase ? pbase_tab : end_thick]);
62 translate([arch_width/2, 50, 0])
66 cylinder(r=hole_dia/2, h=100, $fn=20);
72 ArchCircle(arch_in_rad);
78 linear_extrude(height=arch_breadth) {
85 translate([0,0, arch_breadth - pbase_thick])
86 linear_extrude(height=pbase_thick){
94 translate([0, -inner_pbase_thick
95 - (inner_pbase_rad - arch_in_rad)])
96 ArchCircle(inner_pbase_rad);
106 rotate([0,0,45]) translate([0,0,arch_breadth]) rotate([0,180,0]) Arch();