X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=ksafe-base.scad;h=c2e2704557e494b15ffc4097faf3e6a8122b13b7;hp=9ea0ccd8e4ff62750f498d2ec359d4f9aa9a393e;hb=f1824fce4c0b4420e0ba377d8d8a4e43e42e4a7d;hpb=7d13858e272e66436e9bc132c41e7ab64e6c584a diff --git a/ksafe-base.scad b/ksafe-base.scad index 9ea0ccd..c2e2704 100644 --- a/ksafe-base.scad +++ b/ksafe-base.scad @@ -4,10 +4,11 @@ bolt_above = 8.50 - 0.50; bolthole_height = 4.24 + 1.00; wall_thick = 4.50; -bolthole_width = 16.62 + 2.00; -main_sz = 150.56 + 0.75; -cnr_rad = 13.5; // approx +bolthole_width = 16.62 + 1.00; +main_sz = 149.06 - 0.25; +cnr_rad = 19.5; lidinner_thick_allow = 20.78 + 0.50; +display_width = 69.81 - 0.50; dpp3 = [ -5.5, 8.5 ]; dpp2 = [ -11.0, 7.0 ]; @@ -31,17 +32,19 @@ thumbslot_depth = 5.0; thumbslot_width = 15.0; thumbslot_between = 10; ksafecover_lip = 4.62; -display_width = 69.81 - 0.50; +display_rhs_secs = 15; dcover_endthick = 3.0; dcover_mainthick = 5.0; dcover_slop_height = 0.35; dcover_slop_depth = 0.25; dcover_slop_inside = 1.50; dcover_commonvertoff = 0.00; // slop_height or slop_inside is added too +dcover_edge_gap_more_width = 2.0; // each side // ----- calculated ----- hsz = main_sz/2; +cut = main_sz + 20; gppA = [0,0]; gppB = gppA - [ wall_thick, 0 ]; @@ -61,17 +64,17 @@ yw12 = yw11 + wall_thick; yw13 = -yw6; cpp1 = dpp1 + [ dcover_slop_depth, dcover_slop_height ]; -cpp2 = dpp2 + [ -dcover_slop_depth, dcover_slop_height ]; +cpp2 = [ dpp2[0] - dcover_slop_depth, dpp3[1] + dcover_slop_height ]; cppH = cpp1 + [ 0, dcover_endthick ]; cppA = [ cpp2[0], dpp3[1] + dcover_slop_inside ]; cppK = cppA + [ 0, dcover_mainthick ]; cppZ = [ -ksafecover_lip, -dcover_commonvertoff ]; cppD = cppZ + [ 0, -dcover_slop_inside ]; -cppE = cppD + [ 0, -dcover_mainthick ]; cppC = [ dcover_slop_inside, cppD[1] ]; cppF = cppC + dcover_mainthick * [1,-1]; cppB = [ cppC[0], cppA[1] ]; cppG = [ cppF[0], cppK[1] ]; +cppE = [ cppD[0], cppF[1] - (cppF[0] - cppD[0]) ]; // anchor @@ -270,15 +273,34 @@ module Box(){ rotate([0,0,90]) SWalls(yw6, yw13, bevel) UsualProfile(); } +module DCover(){ ////toplevel + translate([ -display_width/2, -hsz, 0 ]) + rotate([0,90,0]) + rotate([0,0,90]) + linear_extrude( display_width - display_rhs_secs, convexity = 10) + DCoverProfile(); +} + +module DCoverSupportAllowance(){ + translate([0, -hsz, 0]) + cube(center=true, + [ display_width + 2 * dcover_edge_gap_more_width, + wall_thick * 2, + dcover_slop_inside * 2 + 0.01 ]); +} + +module BoltHoles(){ + translate([0,0, -(bolt_above + 0.5 * bolthole_height)]) + cube(center=true, [ cut, bolthole_width, bolthole_height ]); +} + module KsafeBase(){ ////toplevel - cut = main_sz + 20; + DCover(); difference(){ Box(); - // bolt holes - translate([0,0, -bolt_above -0.5 * bolthole_height]) - cube(center=true, [ cut, bolthole_width, bolthole_height ]); + BoltHoles(); // string slot translate([ -cut, @@ -298,6 +320,8 @@ module KsafeBase(){ ////toplevel cut, thumbslot_depth+1 ]); } + + DCoverSupportAllowance(); } } @@ -318,6 +342,22 @@ module RimTest(){ ////toplevel } } +module DCoverTest(){ ////toplevel + intersection(){ + difference(){ + union(){ + Box(); + DCover(); + } + DCoverSupportAllowance(); + BoltHoles(); + } + translate([0,0,60]) + cube(center=true, [ main_sz*2, main_sz*2, + 2 * (60 + 10) ]); + } +} + module BoltTest(){ ////toplevel dy = 0.5 * (bolthole_width+4); intersection(){