X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=ksafe-base.scad;h=973ec8d3bd49478493628caf3a4558351e539874;hp=abb74e6ff241326a46b2871e6513c432cf2eb770;hb=f25e2ed27d17f0232bda728d5b4daf4f9e38d113;hpb=6a7dd768726c2903a9b6b97215d7e9c5f4a4d14e diff --git a/ksafe-base.scad b/ksafe-base.scad index abb74e6..973ec8d 100644 --- a/ksafe-base.scad +++ b/ksafe-base.scad @@ -1,6 +1,6 @@ // -*- C -*- -// xxx from actual ksafe +// xxx from actual ksafe, needs slop adding bolt_above = 14.30; bolthole_height = 4.24; wall_thick = 4.50; @@ -15,12 +15,12 @@ web_height = 20; // excluding wall and base thick bolthole_rhs = 20; bolthole_lhs = 20; boltreinf_thick = 6; -anchor_wall_space = 45; +anchor_wall_space = 25; base_thick = 4; space = 25; anchor_thick = 4; anchor_rad = 4; -bevel = 5; +bevel = 8; // ----- calculated ----- @@ -31,6 +31,18 @@ gppB = gppA - [ wall_thick, 0 ]; gppL = [ gppB[0], -(lidinner_thick_allow + space + base_thick) ]; +yw1 = -web_thick/2; +yw2 = yw1 - bolthole_rhs; +yw3 = yw2 - anchor_thick; +yw4 = yw3 - anchor_wall_space; +yw5 = yw4 - wall_thick; +yw6 = -(hsz - cnr_rad + 0.1); + +yw10 = web_thick/2; +yw11 = yw2 + anchor_wall_space; +yw12 = yw11 + wall_thick; +yw13 = -yw6; + // anchor anchor_b = anchor_thick + anchor_rad; @@ -139,9 +151,30 @@ module WebProfile(){ } } +module BaseProfile(){ + polygon([ $xppI, + $xppF, + [ hsz+1, $xppF[1] ], + [ hsz+1, $xppI[1] ] ]); +} + +module SWalls(ymin, ymax, t_bevel) { + upp_app_Vars(t_bevel) { + translate([0,ymin,0]) + mirror([0,1,0]) + rotate([90,0,0]) + linear_extrude(height= ymax-ymin, convexity=10) + for (xm=[0,1]) + mirror([xm,0]) + translate([-hsz, 0]) + children(); + } +} + module KsafeBase(){ + /// corners for (xm=[0,1]) for (ym=[0,1]) { - mirror([xm,0]) mirror([0,ym]) + mirror([xm,0,0]) mirror([0,ym,0]) translate((hsz - cnr_rad) * [1,1]) intersection(){ rotate_extrude(convexity=10) @@ -151,6 +184,14 @@ module KsafeBase(){ cube([50,50,500]); } } + + // side walls and base + SWalls(yw6 , yw4 , bevel ) { UsualProfile(); BaseProfile(); } + SWalls(yw5 , yw4 , a_bevel) { AnchorWallProfile(); BaseProfile(); } + SWalls(yw5 , yw12, a_bevel) { NearAnchorProfile(); BaseProfile(); } + SWalls(yw3 , yw2 , a_bevel) { AnchorProfile(); BaseProfile(); } + SWalls(yw11, yw12, a_bevel) { AnchorWallProfile(); BaseProfile(); } + SWalls(yw11, yw13, bevel ) { UsualProfile(); BaseProfile(); } } module DemoProfiles(){