15 inner_pbase_thick = 12;
16 inner_pbase_rad_mul = 3;
20 arch_alpha = atan(arch_height / (arch_width/2));
21 arch_beta = 2*arch_alpha;
22 echo(arch_alpha,arch_beta);
23 arch_in_rad = arch_width/2 / sin(arch_beta);
24 arch_to_chord = arch_in_rad * cos(arch_beta);
26 echo(inner_pbase_thick);
28 inner_pbase_rad = arch_in_rad * inner_pbase_rad_mul;
30 end_thick = arch_thick;
32 holes = [[[ 5 , 5 ], [16 , 21]], // left
33 [[ 18.5, 4.5], [ 4.5, 21]]]; // right
35 module ArchCircle(rad){
36 translate([0,-arch_to_chord])
40 module ArchProfile(pbase){
46 ArchCircle(arch_in_rad + arch_thick);
49 translate([arch_width/2,0])
50 multmatrix([[1,pbase ? -0.75 : 0,0,0],
54 square([end_width, pbase ? pbase_tab : end_thick]);
63 translate([arch_width/2, 50, 0])
67 cylinder(r=hole_dia/2, h=100, $fn=20);
73 ArchCircle(arch_in_rad);
79 linear_extrude(height=arch_breadth) {
86 translate([0,0, arch_breadth - pbase_thick])
87 linear_extrude(height=pbase_thick){
95 translate([0, -inner_pbase_thick
96 - (inner_pbase_rad - arch_in_rad)])
97 ArchCircle(inner_pbase_rad);
107 rotate([0,0,45]) translate([0,0,arch_breadth]) rotate([0,180,0]) Arch();