From 8e8e53ea2178b293dee065684680b6cf4a7ec45f Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 15 Feb 2014 19:50:29 +0000 Subject: [PATCH] wardrobe-hook: prototype --- wardrobe-hook.scad | 47 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 9 deletions(-) diff --git a/wardrobe-hook.scad b/wardrobe-hook.scad index e43822e..1f13834 100644 --- a/wardrobe-hook.scad +++ b/wardrobe-hook.scad @@ -46,7 +46,7 @@ mainoutrad = tuberad + mainthick; hookoutrad = hookinrad + hookwidth; hookcy = -(stemlen - hookoutrad); -eltop = [topwidth/2, -tuberad + tubeheight + mainthick + 1]; +eltop = [topwidth/2, -tuberad + tubeheight + mainthick + 0.1]; elmid = [topwidth/2, -tuberad]; ellow = tangent_intersect_b([0,hookcy], hookinrad, elmid); ellowextra = 180 - tangent_intersect_beta([0,hookcy], hookinrad, elmid); @@ -65,7 +65,9 @@ module ElevationCore(){ FArcSegment(0, hookcy, hookinrad, hookoutrad, 180 - ellowextra, 90 + hookcurl); - translate([-hookoutrad*sqrt(0.5), -(stemlen+10)]) mirror([1,0]) + translate([-hookoutrad*sqrt(0.5), + hookcy - hookoutrad*sqrt(0.5) + 0.1]) + mirror([1,0]) square(center=false, size=[topwidth, stemlen + tubeheight + 20]); polygon([[-hookoutrad, ellow[1]], reflect_in_y(eltop), @@ -74,11 +76,38 @@ module ElevationCore(){ ellow]); } -intersection(){ - translate([0,1, -(topwidth+10)/2]) - linear_extrude(height=topwidth+10) Plan(); - translate([50,0]) - rotate([0,-90,0]) - linear_extrude(height=100) - ElevationCore(); +// after here is all 3D + +module Primary(){ + intersection(){ + translate([0,0, -(topwidth+10)/2]) + linear_extrude(height=topwidth+10) Plan(); + translate([50,0]) + rotate([0,-90,0]) + linear_extrude(height=100) + ElevationCore(); + } +} + +module PlaneAbove(){ + translate([-100,-100,0]) cube(center=false,size=[200,200,200]); } + +taperangle = -270 + tangent_intersect_beta([-hookcy, 0], + hookoutrad, + [-eltop[1], -eltop[0]]); +module Hook(){ ////toplevel + difference(){ + rotate([taperangle,0,0]) + translate([0,-eltop[1],0]) + Primary(); + translate([0,0,topwidth/2]) + rotate([taperangle*2,0,0]) + PlaneAbove(); + translate([0,0,-topwidth/2]) + mirror([0,0,1]) PlaneAbove(0); + } +} + +//ElevationCore(); +Hook(); -- 2.30.2