chiark / gitweb /
digispark-with-cable: from v2
[reprap-play.git] / laptop-sound-cable-hooks.scad
index 0fbf86da946290a638f9864f16de5a3499017015..8cfd468f261a028782507be388aac9916dd3f60d 100644 (file)
@@ -5,13 +5,15 @@ include <utils.scad>
 wall_th = 2;
 hook_th = 4;
 hook_hole = 4;
+hook_w_min = 6;
+hook_hook = 12;
 
-plug_entry_gap = 1.0;
+plug_entry_gap = 2.0;
 
 plug_l_d = [[ 27.78,
-             10.62 + 0.50 ],
+             10.62 + 0.75 ],
            [ 40.88,
-             8.56 + 0.50 ],
+             8.56 + 0.75 ],
            ];
 
 plug_stem = [ 2.72 + 0.50,
@@ -65,7 +67,7 @@ module PlugHookHookPlan(){
            ]);
 }
 
-module PlugHookTonguePlan(){
+module TonguePlan(){
   difference(){
     rectfromto([ -plug_entry_gap - 1, z_hook_min ],
               [ tongue_len, z_laptop_base ]);
@@ -75,6 +77,18 @@ module PlugHookTonguePlan(){
   }
 }
 
+module FarHookPlan(){
+  mirror([1,0,0])
+    TonguePlan();
+
+  rectfromto([ 0, z_hook_min ],
+            [ hook_w_min, palmrest_from_plug_z + 0.1]);
+
+  translate([0, palmrest_from_plug_z])
+    rectfromto([ -hook_hook, 0 ],
+              [ hook_w_min, hook_w_min ]);
+}
+
 module RotateIntersect(n=6){
   intersection_for (r = [0:n-1]) {
     rotate([r/n * 360,0,0])
@@ -95,7 +109,7 @@ module PlugHolder(){
 
        linextr_y_xz(-hook_th/2,
                     +hook_th/2)
-         PlugHookTonguePlan();
+         TonguePlan();
       }
     }
 
@@ -112,7 +126,20 @@ module PlugHolderPrint(){ ////toplevel
   render() PlugHolder();
 }
 
+module FarHookPrint(){ ////toplevel
+  linextr(0, hook_th)
+    FarHookPlan();
+}
+
 module DemoPlan() { ////toplevel
-  translate([0,0,-5]) color("grey") PlugHolderPlan();
+  translate([0,0,-10]) color("grey") PlugHolderPlan();
   PlugMainPlan();
+  translate([0,0,-5]) color("blue") {
+    PlugHookHookPlan();
+    TonguePlan();
+  }
+
+  translate([0,40,0]) {
+    FarHookPlan();
+  }
 }