X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=wardrobe-hook.scad;h=959e967a78bd316ebb3345f182b8f7bcd00811d3;hp=f8150ad03ab34709e03a1b55b7165b5d62a2426e;hb=e488ccdb7b18fc0b32f7579cce4d384f371e15d9;hpb=39eabcd01fa5e1cb16178a16a464b3fb802cfccc diff --git a/wardrobe-hook.scad b/wardrobe-hook.scad index f8150ad..959e967 100644 --- a/wardrobe-hook.scad +++ b/wardrobe-hook.scad @@ -1,29 +1,7 @@ // -*- C -*- include - -module FArcSegment_mask(beta) { - for (i=[0 : 0.75 : 3]) { - rotate(i*beta/4) - polygon([[0, 0], - [1, 0], - [cos(beta/4), sin(beta/4)]]); - } -} - -module FArcSegment(xc,yc,inrad,outrad,alpha,delta) { - translate([xc,yc]) { - intersection() { - difference() { - circle(r=outrad, $fn=70); - circle(r=inrad, $fn=70); - } - rotate(alpha) scale(outrad*2) { - FArcSegment_mask(delta); - } - } - } -} +include tubeslop = 0.5; tubeheight = 30 + tubeslop; @@ -139,11 +117,15 @@ module SElevation(){ [-1, boty]]); } +module SElevationPlaced(){ + rotate([0,-90,0]) translate([0,0,-100]) linear_extrude(height=200) + SElevation(); +} + module SHookL(){ ///toplevel intersection(){ linear_extrude(height=topwidth) SPlan(); - rotate([0,-90,0]) translate([0,0,-100]) linear_extrude(height=200) - SElevation(); + SElevationPlaced(); } } @@ -160,7 +142,6 @@ tjoin1c = [0, thookcy]; tbend_raw = tangents_intersect_beta(tjoin0c, tjoinrad, tjoin1c, -hookoutrad); -echo(tbend_raw); tbend0 = angle_map_range(tbend_raw, 0); tbend1 = angle_map_range(tbend_raw + 180, -180); @@ -174,12 +155,19 @@ module TPlan(){ FArcSegment(0,shookcy, hookinrad,hookoutrad, tbend1, 270+hookcurl - tbend1); translate(tbend0p) { - rotate(tbend_raw) mirror([0,1]) { - square(size=[mainthick, dist2d(tbend0p,tbend1p)]); + rotate(tbend_raw+180) mirror([1,0]) { + translate([0,-0.1]) square(size=[mainthick, dist2d(tbend0p,tbend1p)+0.2]); } } } +module THookR(){ ///toplevel + intersection(){ + linear_extrude(height=topwidth) TPlan(); + SElevationPlaced(); + } +} + // other toplevels etc. module HookR(){ ////toplevel @@ -190,9 +178,15 @@ module SHookR(){ ////toplevel mirror([1,0,0]) SHookL(); } +module THookL(){ ////toplevel + mirror([1,0,0]) THookR(); +} + module Demo(){ ////toplevel translate([-30,tubeheight,0]) HookL(); translate([ 0,tubeheight,0]) HookR(); translate([ 30, 0,0]) SHookL(); translate([ 60, 0,0]) SHookR(); + translate([ 90, 0,0]) THookL(); + translate([120, 0,0]) THookR(); }