chiark / gitweb /
fairphone-case: wip lanyard, demo the entry profile etc.
[reprap-play.git] / fairphone-case.scad
index a79983903e84f54963e1d80c9bb3560a39cacd10..1ed4614e5c0f5f0a870617de6b9e6ec03217fc16 100644 (file)
@@ -452,12 +452,16 @@ ly_r = lanyard_half_dia / 2;
 ly_rc = ly_r * 2;
 
 ly_theta = -atan2vector(epp2i - epp1);
+ly_o = epp2i + 3 * ly_r * unitvector2d(epp1 - epp2i);
 
 max_case_bottom_edge_thickness =
   case_th_bottom
   + sin(ly_theta) * (epp2i-epp2o)[0];
 
-ly_re = 10; // xxx
+ly_q_z = -(ly_rc + ly_r);
+ly_re = max_case_bottom_edge_thickness - (-ly_q_z);
+
+ly_oec_y = lanyard_entry_rel_breadth * ly_r;
 
 // prop recess in case
 
@@ -566,10 +570,10 @@ module LanyardEntryOuterProfile(){
 }
 
 module LanyardEntry(){
-  q_z = -(ly_rc + ly_r);
-  d_x = -ly_rc;
+  q_z = ly_q_z;
+  oec_y = ly_oec_y;
 
-  oec_y = lanyard_entry_rel_breadth * ly_r;
+  d_x = -ly_rc;
 
   translate([d_x, 0, q_z]) {
     intersection(){
@@ -1659,13 +1663,15 @@ module DemoProfiles(){ ////toplevel
   %EdgeProfile();
   KeeperProfile();
   translate([0,0,-1]) color("black") KeeperProfile(1);
-  color("purple") translate(epp2i)
-    rotate(-ly_theta) {
-    translate(lanyard_half_dia * 0.5 * [-3,-1])
-      LanyardLanyardProfile();
-    translate(lanyard_half_dia * 0.5 * [-3,+1])
-      translate([0,-1] * case_th_side)
-      LanyardLanyardProfile(true);
+  translate(ly_o){
+    rotate(-ly_theta){
+      translate([0,0,+1]) color("purple") LanyardMainChannelProfile();
+      translate([0,0,+2]) color("red") LanyardCurveChannelProfile();
+      translate([0, ly_q_z]){
+       translate([0,0,-1]) color("blue") LanyardEntryChannelProfile();
+       translate([ly_oec_y,0,-2]) color("black") LanyardEntryOuterProfile();
+      }
+    }
   }
   translate([0,0,-5]) color("white") translate(epp2i)
     rotate(-ly_theta)