X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=wardrobe-hook.scad;h=7f29082cb2e736dc6cb840a203c8012faf0e28c0;hp=b247bd0bcdb20c02986af33e949ad48aefbf3eec;hb=3f431f5e5f72cc88127a70888575f9a18d2c871a;hpb=b04d1628ce81bb99bd50f1680203902eac01e032 diff --git a/wardrobe-hook.scad b/wardrobe-hook.scad index b247bd0..7f29082 100644 --- a/wardrobe-hook.scad +++ b/wardrobe-hook.scad @@ -5,12 +5,12 @@ module FArcSegment_mask(beta) { rotate(i*beta/4) polygon([[0, 0], [1, 0], - [cos(beta), sin(beta)]]); + [cos(beta/4), sin(beta/4)]]); } } module FArcSegment(xc,yc,inrad,outrad,alpha,delta) { - translate(xc,yc) { + translate([xc,yc]) { intersection() { difference() { circle(r=outrad); @@ -23,4 +23,48 @@ module FArcSegment(xc,yc,inrad,outrad,alpha,delta) { } } -FArcSegment(10,10, 20,30, 20,10); +tubeheight = 30; +tubewidth = 15; +mainthick = 4; + +clipthick = 2; +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; + +eltopx = topwidth/2; +eltopy = -tuberad + tubeheight + mainthick + 1; +elmidx = topwidth/2; +elmidy = -tuberad; + +module Plan(){ + dy = tubeheight - tuberad*2; + FArcSegment(0, dy, tuberad, mainoutrad, -1, 181); + 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)]); +} + +module Elevation(){ + FArcSegment(0, -hookcy, hookinrad, hookoutrad, 180, 90+hookcurl); + translate([-hookoutrad*sqrt(0.5), -(stemlen+10)]) mirror([1,0]) + square(center=false, size=[topwidth, stemlen + tubeheight + 20]); +} + +Plan(); +translate([50,0]) + Elevation();