X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=ksafe-base.scad;h=b21b6939f94952fa26bd66ed445b3d8f3c8b79b1;hp=b2536af81f05fa49f37732f7a265229a73b7b18c;hb=91296712544fb62972b6b094d6aab25a078acde4;hpb=c5b9f398993c756ff4446a2ef09c66aa8d58d662 diff --git a/ksafe-base.scad b/ksafe-base.scad index b2536af..b21b693 100644 --- a/ksafe-base.scad +++ b/ksafe-base.scad @@ -10,24 +10,69 @@ lidinner_thick_allow = 20; space = 25; anchor_thick = 4; anchor_rad = 4; -minbevel = space/2; +bevel = 15; -// calculated +// ----- calculated ----- -uppA = [0,0]; -uppB = uppA - [ wall_thick, 0 ]; +gppA = [0,0]; +gppB = gppA - [ wall_thick, 0 ]; + +gppL = [ gppB[0], -(lidinner_thick_allow + space + base_thick) ]; + +// anchor -uppL = [ uppB[0], -(lidinner_thick_allow + space + base_thick) ]; anchor_b = anchor_thick + anchor_rad; -uppM = uppL + anchor_b * [1,1]; +appM = gppL + anchor_b * [1,1]; + +a_bevel = 2 * anchor_b * (1 + sqrt(0.5)); -bevel = max(minbevel, 2 * anchor_b * (1 + sqrt(0.5))); -uppE = uppL + bevel * [0,1]; -uppF = uppL + bevel * [1,0]; +module upp_app_Profile(t_bevel){ + xppE = gppL + t_bevel * [0,1]; + xppF = gppL + t_bevel * [1,0]; + + xppJ = xppE + wall_thick * [ 1, tan(22.5) ]; + xppI = xppF + base_thick + [ tan(22.5), 1 ]; + + polygon([ gppA, + gppB, + xppE, + xppF, + xppF + [1,0], + xppI + [1,0], + xppJ ]); +} -uppJ = uppE + wall_thick * [ 1, tan(22.5) ]; -uppI = uppF + base_thick + [ tan(22.5), 1 ]; -uppH = upp module UsualProfile(){ - + upp_app_Profile(bevel); +} + +module NearAnchorProfile(){ + upp_app_Profile(a_bevel); +} + +module AnchorProfile(){ + xppE = gppL + t_bevel * [0,1]; + xppF = gppL + t_bevel * [1,0]; + + upp_app_Profile(a_bevel); + + difference(){ + hull(){ + polygon([ xppE, + xppF, + xppF + [0,1], + xppE + [1,0] ]); + translate(appM) circle(r= anchor_b); + } + translate(appM) circle(r= anchor_rad); + } +} + +module Demo(){ + color("red") AnchorProfile(); + translate([0,0,2]) color("black") NearAnchorProfile(); + color("blue") UsualProfile(); +} + +Demo();