chiark / gitweb /
pattress-boxes-3-cover: Sort out toplevels
[reprap-play.git] / pandemic-quarantines.scad
index e9b9eaa579d04bda6306d064d2e85cecf7588a9d..834d128dc833e9107ccaedd61d0d64282658d82c 100644 (file)
@@ -3,16 +3,23 @@
 prisml = 13;
 triedge = 13;
 
+etchdepth = 1.0;
+
 figboxsize = 13;
 
-module Number(depth) {
+// calculated
+
+triheight = triedge / 2 * sqrt(3);
+tricentre = triedge / 2 * tan(30);
+
+module Number(number) {
   translate([-figboxsize/2, -figboxsize/2])
-    import(file=str("pandemic-quarantine-l",depth,".dxf"), convexity=100);
-}  
+    import(file=str("pandemic-quarantine-l",number,".dxf"), convexity=100);
+}
 
 module FaceTriangle(){
   x = triedge / 2;
-  y = triedge / 2 * sqrt(3);
+  y = triheight;
   polygon([[-x,  0],
           [ 0,  y],
           [ x,  0]]);
@@ -24,4 +31,35 @@ module Body(){
     linear_extrude(height=prisml) FaceTriangle();
 }
 
-Body();
+module NumberCut(number){
+  translate([0,0, -etchdepth])
+    linear_extrude(height= etchdepth + 1)
+    Number(number);
+}
+
+module Etchings(){
+  for (rot=[0,180]) {
+    rotate([0,0, rot])
+      translate([0, -prisml/2, triedge * 0.3])
+      rotate([90, 0, 0])
+      NumberCut(2);
+  }
+  for (rot=[0,120,240]) {
+    translate([0,0, tricentre])
+      rotate([0, rot, 0])
+      translate([0,0, -tricentre])
+      rotate([0,180,0])
+      rotate([0,0, rot==240 ? 90 : -90])
+      NumberCut(1);
+  }
+}
+
+module Counter(){
+  difference(){
+    Body();
+    Etchings();
+  }
+}
+
+Counter();
+//NumberCut(1);