chiark / gitweb /
fairphone-case: make catch catchier
[reprap-play.git] / shelf-label-holder.scad
index 42da91f4728c37aba571c053742cd57e3f7a2348..8353d7e470f9fdc376a54e165210ac490895d303 100644 (file)
@@ -1,8 +1,22 @@
 // -*- C -*-
 
 prong_nomdepth = 15;
-prong_curverad = 15;
-prong_thick = 1.0;
+prong_curverad = 30;
+prong_thick = 0.7;
+prong_maxdepth = 18;
+
+front_thick = 2.5;
+
+//nom_shelf = 14.54 + 0.5;
+nom_shelf = 20.315 + 0.5;
+
+interference = 0.75;
+
+length = 60;
+
+// calculated
+
+interference_angle = atan2(interference, prong_nomdepth);
 
 module ProngElevationUnrotated(){
   intersection(){
@@ -17,4 +31,35 @@ module ProngElevationUnrotated(){
   }
 }
 
-ProngElevationUnrotated();
+module Elevation(){
+  difference(){
+    union(){
+      rotate(-interference_angle)
+       ProngElevationUnrotated();
+      translate([0, -nom_shelf])
+       mirror([0,1])
+       rotate(-interference_angle)
+       ProngElevationUnrotated();
+      translate([-10, -nom_shelf - prong_thick/2])
+       square([10, nom_shelf + prong_thick]);
+    }
+    mirror([1,0])
+      translate([ front_thick, -100 ])
+      square([ 50, 200 ]);
+  }
+}
+
+module Main(){
+  linear_extrude(height=length)
+    Elevation();
+}
+
+module Print(){
+  rotate([0,-90,0])
+    Main();
+}
+
+//ProngElevationUnrotated();
+//Elevation();
+Main();
+//Print();