// -*- C -*-
-// xxx
+// xxx from actual ksafe
bolt_above = 4;
wall_thick = 4;
bolthole_height = 4;
bolthole_width = 10;
+main_sz = 30;
+cnr_rad = 10;
+lidinner_thick_allow = 20;
+
+// other parameters
web_thick = 4;
+web_height = 20; // excluding wall and base thick
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;
anchor_rad = 4;
bevel = 15;
-cnr_rad = 10;
// ----- calculated -----
$xppJ = $xppE + wall_thick * [ 1, tan(22.5) ];
$xppI = $xppF + base_thick * [ tan(22.5), 1 ];
+ // must pass a_bevel for t_bevel for these to be valid
+ $gppP = gppA + [0,-1] * lidinner_thick_allow;
+ $gppQ = $gppP + [1,-1] * web_height;
+ $gppR = $xppJ + [ 1, tan(22.5) ] * web_height;
+ $gppS = $xppI + [ tan(22.5), 1 ] * web_height;
+ $gppT = [ $gppQ[0], $xppE[1] ];
+
children();
}
}
}
-module Demo(){
+module WebProfile(){
+ upp_app_Vars(a_bevel){
+ if ($gppR[1] <= $gppP[1]) {
+ polygon([ $gppP,
+ $xppE,
+ $gppT,
+ $gppQ ]);
+ polygon([ $gppP,
+ $xppE,
+ $xppF,
+ $gppS,
+ $gppR ]);
+ } else {
+ polygon([ $gppP,
+ $xppE,
+ $xppF,
+ $gppS,
+ $gppP + web_height * [1,0] ]);
+ }
+ polygon([ $gppS,
+ $xppF,
+ $xppF + [1,0],
+ $gppS + [1,0] ]);
+ }
+}
+
+module DemoProfiles(){
translate([0,0,-2]) color("yellow") AnchorWallProfile();
color("red") AnchorProfile();
translate([0,0,2]) color("black") NearAnchorProfile();
translate([0,0,4]) color("blue") UsualProfile();
+ translate([0,0,-4]) color("pink") WebProfile();
}
-Demo();
+DemoProfiles();