From c74808497ebbffdc448f4d5dfc72e91adc6ff547 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Tue, 31 May 2022 18:23:39 +0100 Subject: [PATCH] laptop-sound-cable-hooks: wip Signed-off-by: Ian Jackson --- laptop-sound-cable-hooks.scad | 48 ++++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/laptop-sound-cable-hooks.scad b/laptop-sound-cable-hooks.scad index c32b97d..9a22ed4 100644 --- a/laptop-sound-cable-hooks.scad +++ b/laptop-sound-cable-hooks.scad @@ -3,6 +3,8 @@ include wall_th = 2; +hook_th = 4; +hook_hole = 4; plug_l_d = [[ 27.78, 10.62 + 0.50 ], @@ -13,6 +15,23 @@ plug_l_d = [[ 27.78, plug_stem = [ 2.72 + 0.50, 5.20 + 0.50 ]; +palmrest_from_plug_z = 3.98; +laptop_th = 16.31 + 0.75; + +tongue_len = 50; + +// calculated + + +hook_th_plug_holder = + plug_l_d[0][1]/2 + wall_th * sin(22.5); + +hook_tongue_h = hook_hole + wall_th*2; + +plug_hook_z_laptop_base = palmrest_from_plug_z - laptop_th; +plug_hook_z_min = palmrest_from_plug_z - hook_tongue_h; +plug_hook_x_min = -plug_l_d[len(plug_l_d)-1][0] - wall_th; + module PlugMainPlan() { for (l_d = plug_l_d) { l = l_d[0]; @@ -32,9 +51,14 @@ module PlugHolderPlan() { } } -module DemoPlan() { - translate([0,0,-5]) color("grey") PlugHolderPlan(); - PlugMainPlan(); +module PlugHookHookPlan(){ + polygon([ [ plug_hook_x_min, 0 ], + [ plug_hook_x_min + -plug_hook_z_min, plug_hook_z_min ], + [ tongue_len, plug_hook_z_min ], + [ tongue_len, plug_hook_z_laptop_base ], + [ 0, plug_hook_z_laptop_base ], + [ 0, 0 ], + ]); } module RotateIntersect(n=6){ @@ -46,8 +70,14 @@ module RotateIntersect(n=6){ module PlugHolder(){ difference(){ - RotateIntersect(8) - PlugHolderPlan(); + union(){ + RotateIntersect(8) + PlugHolderPlan(); + + linextr_y_xz(-hook_th_plug_holder, + +hook_th_plug_holder) + PlugHookHookPlan(); + } RotateIntersect(6) PlugMainPlan(); @@ -58,5 +88,11 @@ module PlugHolder(){ } } +module DemoPlan() { + translate([0,0,-5]) color("grey") PlugHolderPlan(); + PlugMainPlan(); +} + //DemoPlan(); -render() PlugHolder(); +PlugHookHookPlan(); +//render() PlugHolder(); -- 2.30.2