15 plug_stem = [ 2.72 + 0.50,
18 palmrest_from_plug_z = 3.98;
19 laptop_th = 16.31 + 0.75;
27 plug_l_d[0][1]/2 + wall_th * sin(22.5);
29 hook_tongue_h = hook_hole + wall_th*2;
31 plug_hook_z_laptop_base = palmrest_from_plug_z - laptop_th;
32 plug_hook_z_min = palmrest_from_plug_z - hook_tongue_h;
33 plug_hook_x_min = -plug_l_d[len(plug_l_d)-1][0] - wall_th;
35 module PlugMainPlan() {
36 for (l_d = plug_l_d) {
39 rectfromto([ -l, -d/2 ],
44 module PlugHolderPlan() {
50 rectfromto([-100,-100], [-0.1,+100]);
54 module PlugHookHookPlan(){
55 polygon([ [ plug_hook_x_min, 0 ],
56 [ plug_hook_x_min + -plug_hook_z_min, plug_hook_z_min ],
57 [ tongue_len, plug_hook_z_min ],
58 [ tongue_len, plug_hook_z_laptop_base ],
59 [ 0, plug_hook_z_laptop_base ],
64 module RotateIntersect(n=6){
65 intersection_for (r = [0:n-1]) {
66 rotate([r/n * 360,0,0])
67 linextr(-100,100) children(0);
77 linextr_y_xz(-hook_th_plug_holder,
85 linextr(-plug_stem[1]/2, 100)
86 rectfromto([ -100, -plug_stem[0]/2 ],
87 [ +100, +plug_stem[0]/2 ]);
92 translate([0,0,-5]) color("grey") PlugHolderPlan();
98 //render() PlugHolder();