From c1b245c859354fbb1d1da483babb82f8674d2d41 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 23 Feb 2014 13:18:06 +0000 Subject: [PATCH] wardrobe-hook: frontbackly version: wip assing()ish, before revert --- wardrobe-hook.scad | 74 ++++++++++++++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 25 deletions(-) diff --git a/wardrobe-hook.scad b/wardrobe-hook.scad index 2636947..7e26976 100644 --- a/wardrobe-hook.scad +++ b/wardrobe-hook.scad @@ -33,7 +33,7 @@ mainthick = 4; clipthick = 2; clipang = 135; -stemlen = 40; +$stemlen = 40; topwidth = 20; @@ -42,39 +42,55 @@ hookcurl = 60; hookwidth = 4; tuberad = tubewidth/2; -bend = atan(tuberad/stemlen); mainoutrad = tuberad + mainthick; hookoutrad = hookinrad + hookwidth; -hookcy = -(stemlen - hookoutrad); +$hookcy = -($stemlen - hookoutrad); -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); +$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); + +$bend = 0; + +module Howly(acrossly_x, frontbackly_x){ + if (acrossly_x >= 0) { + translate([acrossly_x,0,0]) + assign($bend = atan(tuberad/$stemlen), + $frontbackly = 0) + child(); + } + if (frontbackly_x >= 0) { + translate([frontbackly_x,0,0]) + assign($bend = 0, + $frontbackly = 1) + child(); + } +} module Plan(){ dy = tubeheight - tuberad*2; FArcSegment(0, dy, tuberad, mainoutrad, -1, 181); - FArcSegment(0, 0, tuberad, mainoutrad, -bend, bend+1); + FArcSegment(0, 0, tuberad, mainoutrad, -$bend, $bend+1); translate([tuberad, 0]) square(center=false, size=[mainthick,dy]); FArcSegment(0, 0, tuberad, tuberad + clipthick, 360-clipang, clipang+1); - rotate(-bend) translate([tuberad, 0]) mirror([0,1]) - square(center=false, size=[mainthick, stemlen/cos(bend)]); + rotate(-$bend) translate([tuberad, 0]) mirror([0,1]) + square(center=false, size=[mainthick, $stemlen/cos($bend)]); } module ElevationCore(){ - FArcSegment(0, hookcy, hookinrad, hookoutrad, - 180 - ellowextra, - 90 + hookcurl + ellowextra); + FArcSegment(0, $hookcy, hookinrad, hookoutrad, + 180 - $ellowextra, + 90 + hookcurl + $ellowextra); translate([-hookoutrad*sqrt(0.5), - hookcy - hookoutrad*sqrt(0.5) + 0.1]) + $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), - eltop, - elmid, - ellow]); + square(center=false, size=[topwidth, $stemlen + tubeheight + 20]); + polygon([[-hookoutrad, $ellow[1]], + reflect_in_y($eltop), + $eltop, + $elmid, + $ellow]); } // after here is all 3D @@ -94,13 +110,13 @@ module PlaneAbove(){ translate([-100,-100,0]) cube(center=false,size=[200,200,200]); } -taperangle = -270 + tangent_intersect_beta([-hookcy, 0], +taperangle = -270 + tangent_intersect_beta([-$hookcy, 0], hookoutrad, - [-eltop[1], -eltop[0]]); + [-$eltop[1], -$eltop[0]]); module Hook(){ ////toplevel difference(){ rotate([taperangle,0,0]) - translate([0,-eltop[1],0]) + translate([0,-$eltop[1],0]) Primary(); translate([0,0,topwidth/2]) rotate([taperangle*2,0,0]) @@ -114,5 +130,13 @@ module RightHook(){ ////toplevel mirror([1,0,0]) Hook(); } -//ElevationCore(); -RightHook(); +module Bothly() { + Acrossly() child(0); + translate([70,0,0]) Frontbackly() child(0); +} + +Howly(0,70) { + Plan(); + //ElevationCore(); + //RightHook(); +} -- 2.30.2