// -*- C -*-
-// xxx
+// xxx from actual ksafe
bolt_above = 4;
wall_thick = 4;
bolthole_height = 4;
bolthole_width = 10;
-base_thick = 5;
+main_sz = 30;
+cnr_rad = 10;
+
+// other parameters
+web_thick = 4;
+bolthole_rhs = 20;
+bolthole_lhs = 20;
+boltreinf_thick = 6;
+anchor_wall_space = 45;
+base_thick = 4;
lidinner_thick_allow = 20;
space = 25;
anchor_thick = 4;
a_bevel = 2 * anchor_b * (1 + sqrt(0.5));
-module upp_app_Profile(t_bevel){
- xppE = gppL + t_bevel * [0,1];
- xppF = gppL + t_bevel * [1,0];
+module upp_app_Vars(t_bevel){
+ $xppE = gppL + t_bevel * [0,1];
+ $xppF = gppL + t_bevel * [1,0];
- xppJ = xppE + wall_thick * [ 1, tan(22.5) ];
- xppI = xppF + base_thick + [ tan(22.5), 1 ];
+ $xppJ = $xppE + wall_thick * [ 1, tan(22.5) ];
+ $xppI = $xppF + base_thick * [ tan(22.5), 1 ];
+ children();
+}
+
+module upp_app_Profile(){
polygon([ gppA,
gppB,
- xppE,
- xppF,
- xppF + [1,0],
- xppI + [1,0],
- xppJ ]);
+ $xppE,
+ $xppF,
+ $xppF + [1,0],
+ $xppI + [1,0],
+ $xppJ ]);
}
module UsualProfile(){
- upp_app_Profile(bevel);
+ upp_app_Vars(bevel) upp_app_Profile();
}
module NearAnchorProfile(){
- upp_app_Profile(a_bevel);
+ upp_app_Vars(a_bevel) upp_app_Profile();
}
module AnchorProfile(){
- xppE = gppL + t_bevel * [0,1];
- xppF = gppL + t_bevel * [1,0];
-
- upp_app_Profile(a_bevel);
-
- difference(){
- hull(){
- polygon([ xppE,
- xppF,
- xppF + [0,1],
- xppE + [1,0] ]);
- translate(appM) circle(r= anchor_b);
+ upp_app_Vars(a_bevel) {
+
+ upp_app_Profile();
+
+ difference(){
+ hull(){
+ polygon([ $xppE,
+ $xppF,
+ $xppF + [0,1],
+ $xppE + [1,0] ]);
+ translate(appM) circle(r= anchor_b);
+ }
+ translate(appM) circle(r= anchor_rad);
+ }
+ }
+}
+
+module AnchorWallProfile(){
+ UsualProfile();
+ NearAnchorProfile();
+ hull(){
+ for (bev = [bevel, a_bevel]) {
+ upp_app_Vars(bev) {
+ polygon([ $xppE,
+ $xppF,
+ $xppI,
+ $xppJ ]);
+ }
}
- translate(appM) circle(r= anchor_rad);
}
}
-module Demo(){
+module DemoProfiles(){
+ translate([0,0,-2]) color("yellow") AnchorWallProfile();
color("red") AnchorProfile();
translate([0,0,2]) color("black") NearAnchorProfile();
- color("blue") UsualProfile();
+ translate([0,0,4]) color("blue") UsualProfile();
}
-Demo();
+DemoProfiles();