X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=wardrobe-hook.scad;h=ecb1b12b66cb572fdee4cb0e126a41b1e9384251;hb=f57afd91759a049296c6d454b2e3a2b46a5560f7;hp=8658bf84ac362291303506d3ea2ddf62aac3da48;hpb=4427d1a53d871980eedadc52cd1767d29f3dacb4;p=reprap-play.git diff --git a/wardrobe-hook.scad b/wardrobe-hook.scad index 8658bf8..ecb1b12 100644 --- a/wardrobe-hook.scad +++ b/wardrobe-hook.scad @@ -1,5 +1,7 @@ // -*- C -*- +include + module FArcSegment_mask(beta) { for (i=[0 : 0.75 : 3]) { rotate(i*beta/4) @@ -32,9 +34,22 @@ clipang = 120; stemlen = 50; +topwidth = 30; + +hookinrad = 7.5; +hookcurl = 60; +hookwidth = 4; + tuberad = tubewidth/2; bend = atan(tuberad/stemlen); mainoutrad = tuberad + mainthick; +hookoutrad = hookinrad + hookwidth; +hookcy = -(stemlen - hookoutrad); + +eltop = [topwidth/2, -tuberad + tubeheight + mainthick + 1]; +elmid = [topwidth/2, -tuberad]; +ellow = tangent_intersect_b([0,hookcy], hookinrad, elmid); +ellowextra = 180 - tangent_intersect_beta([0,hookcy], hookinrad, elmid); module Plan(){ dy = tubeheight - tuberad*2; @@ -46,6 +61,19 @@ module Plan(){ square(center=false, size=[mainthick, stemlen/cos(bend)]); } -Plan(); +module ElevationCore(){ + FArcSegment(0, hookcy, hookinrad, hookoutrad, + 180 - ellowextra, + 90 + hookcurl); + translate([-hookoutrad*sqrt(0.5), -(stemlen+10)]) mirror([1,0]) + square(center=false, size=[topwidth, stemlen + tubeheight + 20]); + polygon([[-hookoutrad, ellow[1]], + reflect_in_y(eltop), + eltop, + elmid, + ellow]); +} -//FArcSegment(0, 20, 20,30, 20,160); +Plan(); +translate([50,0]) + ElevationCore();