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 end_thick = arch_thick;
26 holes = [[[ 5 , 5 ], [16 , 21]], // left
27 [[ 18.5, 4.5], [ 4.5, 21]]]; // right
29 module ArchCircle(rad){
30 translate([0,-arch_to_chord])
34 module ArchProfile(pbase){
40 ArchCircle(arch_in_rad + arch_thick);
43 translate([arch_width/2,0])
44 multmatrix([[1,pbase ? -0.75 : 0,0,0],
48 square([end_width, pbase ? pbase_tab : end_thick]);
57 translate([arch_width/2, 50, 0])
61 cylinder(r=hole_dia/2, h=100, $fn=20);
71 linear_extrude(height=arch_breadth) ArchProfile(false);
72 linear_extrude(height=pbase_thick) hull(){
77 translate([0,0,-1]) linear_extrude(height=100)
78 ArchCircle(arch_in_rad);
85 rotate([0,0,45]) Arch();