chiark / gitweb /
ksafe-base: wip, $xpp
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 30 Oct 2018 17:26:58 +0000 (17:26 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 30 Oct 2018 17:26:58 +0000 (17:26 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
ksafe-base.scad

index b21b693..24805a7 100644 (file)
@@ -26,46 +26,50 @@ appM = gppL + anchor_b * [1,1];
 
 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);
     }
-    translate(appM) circle(r= anchor_rad);
   }
 }