-module AttachTemplate(){
- hull(){
- polygon([[0, 0],
- [-0.1, 0],
- [-0.1, -cover_ysz],
- [0, -cover_ysz]]);
- translate([attach_cx, -attach_cdy]) rotate([0,0,-attach_ang]) {
- polygon([[-attach_cx, attach_w/2],
- [0, -attach_w/2],
- [attach_straight_len, -attach_w/2],
- [attach_straight_len, attach_w/2]]);
- translate([attach_straight_len, 0])
- circle(r=attach_w/2);
+module ArchProfile(pbase){
+ intersection(){
+ translate([-200,0])
+ square([400,200]);
+ difference(){
+ union(){
+ ArchCircle(arch_in_rad + arch_thick);
+ for (m=[0,1])
+ mirror([m,0])
+ translate([arch_width/2,0])
+ multmatrix([[1,pbase ? -0.75 : 0,0,0],
+ [0,1,0,0],
+ [0,0,1,0],
+ [0,0,0,1]])
+ square([end_width, pbase ? pbase_tab : end_thick]);
+ }