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,
]);
}
-module PlugHookTonguePlan(){
+module TonguePlan(){
difference(){
rectfromto([ -plug_entry_gap - 1, z_hook_min ],
[ tongue_len, z_laptop_base ]);
}
}
+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])
linextr_y_xz(-hook_th/2,
+hook_th/2)
- PlugHookTonguePlan();
+ TonguePlan();
}
}
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();
+ }
}