// -*- C -*- arch_height = 24; arch_width = 75; end_width = 25; arch_thick = 5; // computed arch_alpha = atan(arch_height / (arch_width/2)); arch_beta = 2*arch_alpha; echo(arch_alpha,arch_beta); arch_in_rad = arch_width/2 / sin(arch_beta); arch_to_chord = arch_in_rad * cos(arch_beta); //arch_to_chord = (arch_width/2)*(arch_width/2)/arch_height; //arch_in_rad = arch_to_chord + arch_height; //arch_in_rad2 = sqrt(arch_to_chord*arch_to_chord + // (arch_width/2)*(arch_width/2)); //echo(arch_in_rad, arch_in_rad2); module ArchProfile(){ intersection(){ translate([-200,0]) square([400,200]); translate([0,-arch_to_chord]){ difference(){ circle(arch_in_rad + arch_thick, $fa=0.1); circle(arch_in_rad, $fa=0.1); } } } %square([arch_width/2,arch_height]); } ArchProfile();