X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=salter-scale-hook.scad;h=3a8cfa354c0ca1642c4415a734a2b2da4251efec;hb=bacf53e7026a98044bda5a66a5e175f52d10127b;hp=e67ed73765f7c10278b2ce88b547223d5a152967;hpb=4ab564dfc73ffe3fbd679c1d161cdc036b688454;p=reprap-play.git diff --git a/salter-scale-hook.scad b/salter-scale-hook.scad index e67ed73..3a8cfa3 100644 --- a/salter-scale-hook.scad +++ b/salter-scale-hook.scad @@ -9,7 +9,8 @@ screw_head_dia = 8.2 + 1.0; rod_offset = 14 + 2; mainheight = 25; width = 40; -rearthick = 3; +rearthick = 4; +screw_head_depth = 2; // calculated @@ -19,6 +20,13 @@ ymin = yminc-thick/2; ymaxc = mainheight; ymax = mainheight+thick/2; +cutdepth = rod_offset - rod_dia/2 - rearthick; + +cut_z0 = screw_head_dia/2; +cut_z1 = width/2 - rearthick; + +cutslopez = cutdepth * 0.5; + module C() { circle(r = thick/2, $fn=30); } @@ -42,11 +50,59 @@ module Profile() { } module CutProfile(){ -// rectfromto([ + hull(){ + for (x = [rod_dia/2 + thick/2, 30]) { + for (y= [yminc,ymaxc] ) { + translate([x,y]) circle(r = (thick-rearthick)/2, $fn=20); + } + } + } } -module Demo(){ +module ProfileDemo(){ Profile(); + color("red") translate([0,0,1]) CutProfile(); +} + +module Cut(less){ + translate([0,0, cut_z0 + less]) + linear_extrude(height = cut_z1 - cut_z0 - less*2) + CutProfile(); +} + +module ScrewHole(){ + xd = (screw_head_dia-screw_dia)/2; + translate([0,0,-50]) + cylinder(h=100, r= screw_dia/2, $fn=20); + hull(){ + translate([0,0,-xd]) + cylinder(h=1, r= screw_dia/2, $fn=50); + cylinder(h=20, r= screw_head_dia/2, $fn=50); + } +} + +module Hook(){ + difference(){ + translate([0,0, -width/2]) + linear_extrude(height=width) Profile(); + + for (m=[0,1]) { + mirror([0,0,m]) { + hull(){ + Cut(cutslopez); + translate([cutdepth,0,0]) Cut(0); + } + } + } + + translate([rod_dia/2 + screw_head_depth, + ymaxc - screw_head_dia, + 0]) { + rotate([0,-90,0]) + ScrewHole(); + } + } } -Demo(); +//ProfileDemo(); +Hook();