X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=steamer-handle-clip.scad;h=5001861578afbf0c7bc82c4d395ef959f5a8d340;hp=0351a96f2c28af0421793670655988d48b8d12e8;hb=HEAD;hpb=d450221a88f5f26dd30163822737598ad63f4980 diff --git a/steamer-handle-clip.scad b/steamer-handle-clip.scad index 0351a96..5001861 100644 --- a/steamer-handle-clip.scad +++ b/steamer-handle-clip.scad @@ -1,23 +1,50 @@ // -*- C -*- include +include -width = 20; +width = 30 - 2; cup = 2.5; -jaw = 32.36 - 2.00; +jaw = 32.36 - 2.00 - 2.00 - 3.00; +th = 3.0; +l = 15; a = cup; b = width/2; alpha = atan2(a, b); c = vectorlen2d([a, b]); -r = c / (2*tan(2*alpha)); +r = a / (1 - cos(2*alpha)); C = [0, a-r]; -module Thing() { - translate(C) - circle(r=r); -// translate([0, -20]) -// square(center=true, [width, 40]); +$fa = 1; + +module HalfBaseline() { + intersection(){ + translate(C + [0, jaw/2]) + circle(r=r); + rectfromto([ -width/2, -1, ], + [ width/2, jaw ]); + } +} + +module Baseline(){ + HalfBaseline(); + mirror([0,1]) HalfBaseline(); +} + +module Plan(){ + difference(){ + offset(delta=th) Baseline(); + Baseline(); + rectfromto([-width, -jaw/2], + [0, jaw/2]); + } +} + +module Thing(){ + linextr(0,l) Plan(); } +//HalfPlan(); +//Plan(); Thing();