X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=bike-lipo-box.scad;h=e5281cedf9a24fdac8571fad5043ff258c345d4f;hb=a7f05006a381c0e890fd00484f2f20c443aeff8a;hp=850200b498a0c75c579fdcdd45c7b4285913ae50;hpb=cb70e9ce70a09843870323314ebf939cbb9b35f0;p=reprap-play.git diff --git a/bike-lipo-box.scad b/bike-lipo-box.scad index 850200b..e5281ce 100644 --- a/bike-lipo-box.scad +++ b/bike-lipo-box.scad @@ -3,6 +3,7 @@ include include include +include pxp6012_rad = 22.5 / 2 + 0.5; // make circular hole this size in outer wall pxp6012_rad_outer = 32.0 / 2 - 0.5; @@ -16,8 +17,30 @@ s1930_recess = 3; s1930_around = 3; s1930_behind = 3; +totx_inner = 180; +toty_outer = 95; +totz_inner = 28.0; + wallthick = 2.5; +cabledia = 8.7; + +strap_w = 5 + 1; +strap_th = 4; +strap_pillar = 3; +strap_pillard = 5; +strap_over = 2; + +strap_every = 30; + +// calculated + +totx_outer = totx_inner + wallthick*2; +toty_inner = toty_outer - wallthick*2; +totz_outer = totz_inner + wallthick*2; + +sb_box_sz = [totx_outer, totz_outer, toty_inner]; + // origin is at centre on outer face wall // outside is towards positive x // mounting is vertical @@ -118,7 +141,82 @@ module ProfileDemos(){ ////toplevel color("blue") SealingBox_CeilProfile(); color("red") translate([-5,0]) square([1,ts_totz_inner]); } - + +module AtGlands(){ + for (dgy=[-15,-45]) { + translate([totx_inner + wallthick - $sealingbox_cnrrad * .3, + toty_inner + dgy, + totz_inner/2]) + children(); + } +} + +module StrapKeepers(){ + strap_x_tot = strap_w + strap_pillar*2; + + for (sx=[strap_every : strap_every : totx_inner - strap_every]) { + echo("strapkeeper at ",sx); + translate([sx - strap_x_tot, 0, 0]) + difference(){ + translate([0,0, -0.1]) + cube([strap_x_tot, strap_pillard, strap_th + strap_over]); + translate([strap_pillar, -1, 0]) + cube([strap_w, strap_pillard+2, strap_th]); + } + } +} + +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]) + SealingBox_RectBox(); + + translate([switch_x, toty_inner, totz_inner/2]) + rotate([90,0,90]) + S1930_Positive(); + + // keepers for lipo + for (kx= [ 40, 80, 120 ]) { + translate([kx, 40, -1]) + cube([10, 5, 8 +1]); + } + + AtGlands() + GlandPositive(cabledia); + } + + // charging connector + translate([chargingconn_x, + toty_inner - (pxp6012_rad_outer + 5), + 10]) + cylinder(r= pxp6012_rad, h= totz_outer); + + translate([switch_x, toty_inner, totz_inner/2]) + rotate([90,0,90]) + S1930_Negative(); + + AtGlands() + GlandNegative(cabledia); + + translate($sealingbox_cnrrad * [1,1,0] + + [0, toty_inner/2, -wallthick]) + Commitid_Full16_M(); + } +} + +module BoxPrint(){ ////toplevel + rotate([-90,0,0]) + Box(); +} + //TestWall(); //ProfileDemos(); //TestSealBox();