X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=bike-lipo-box.scad;h=af167ff18f89043d007722788e75ab5e5e8829b7;hb=ba7cb05a57c78ed29fddd5a078336c397ff5b2fb;hp=e5281cedf9a24fdac8571fad5043ff258c345d4f;hpb=a7f05006a381c0e890fd00484f2f20c443aeff8a;p=reprap-play.git diff --git a/bike-lipo-box.scad b/bike-lipo-box.scad index e5281ce..af167ff 100644 --- a/bike-lipo-box.scad +++ b/bike-lipo-box.scad @@ -19,19 +19,25 @@ s1930_behind = 3; totx_inner = 180; toty_outer = 95; -totz_inner = 28.0; +totz_inner = 27.0; wallthick = 2.5; cabledia = 8.7; strap_w = 5 + 1; -strap_th = 4; +strap_th = 4 + 1; strap_pillar = 3; strap_pillard = 5; strap_over = 2; -strap_every = 30; +lipokeeper_w = 10; +lipokeeper_h = 8; +lipokeeper_d_min = 2; +lipokeeper_slope = 0.75; + +straps_at_box = [45, 95, 125, 160]; +straps_every = 30; // calculated @@ -151,10 +157,10 @@ module AtGlands(){ } } -module StrapKeepers(){ +module StrapKeepers(at){ strap_x_tot = strap_w + strap_pillar*2; - for (sx=[strap_every : strap_every : totx_inner - strap_every]) { + for (sx= at) { echo("strapkeeper at ",sx); translate([sx - strap_x_tot, 0, 0]) difference(){ @@ -166,17 +172,22 @@ module StrapKeepers(){ } } +chargingconn_x = pxp6012_rad_outer + 1 + $sealingbox_cnrrad; +switch_x = chargingconn_x + pxp6012_rad_outer + + s1930_y_outer/2 + s1930_around; + +module AtSealingBox(){ + rotate([90,0,0]) + translate([-wallthick,-wallthick, -toty_inner]) + children(); +} + module Box(){ ////toplevel $sealingbox_sz = sb_box_sz; - chargingconn_x = pxp6012_rad_outer + 1 + $sealingbox_cnrrad; - switch_x = chargingconn_x + pxp6012_rad_outer - + s1930_y_outer/2 + s1930_around; - difference(){ union(){ - rotate([90,0,0]) - translate([-wallthick,-wallthick, -toty_inner]) + AtSealingBox() SealingBox_RectBox(); translate([switch_x, toty_inner, totz_inner/2]) @@ -186,11 +197,20 @@ module Box(){ ////toplevel // keepers for lipo for (kx= [ 40, 80, 120 ]) { translate([kx, 40, -1]) - cube([10, 5, 8 +1]); + hull(){ + cube([lipokeeper_w, lipokeeper_d_min, lipokeeper_h +1]); + cube([lipokeeper_w, + lipokeeper_d_min + lipokeeper_h / lipokeeper_slope, + 1]); + } } AtGlands() GlandPositive(cabledia); + + translate([0, toty_inner+wallthick, -wallthick]) + rotate([180, 0,0]) + StrapKeepers(straps_at_box); } // charging connector @@ -213,12 +233,41 @@ module Box(){ ////toplevel } module BoxPrint(){ ////toplevel - rotate([-90,0,0]) + rotate([-90,0,-90]) Box(); } +module Lid(){ ////toplevel + $sealingbox_sz = sb_box_sz; + difference(){ + union(){ + AtSealingBox() + SealingBox_RectLid(); + translate([0, -wallthick, -SealingBox_lidbigger()]) + mirror([0,0,1]) + StrapKeepers([ straps_every : straps_every + : totx_inner-straps_every ]); + } + + translate($sealingbox_cnrrad * [1,0,1]) + rotate([90,0,0]) + Commitid_Full16_M(); + } +} + +module LidPrint(){ ////toplevel + rotate([90,0,-90]) + Lid(); +} + +module Demo(){ ////toplevel + color("blue") Box(); + color("red") Lid(); +} + //TestWall(); //ProfileDemos(); //TestSealBox(); //TestSealLid(); //FArcSegment_mask(350); +//StrapKeepers();