X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=bike-lipo-box.scad;h=69bfe56431fa2c73ac42fe203d0b53aa91031673;hp=c7fc125f06e9780ce65507ebf92f04abc5850cf9;hb=ec88462f1c9599abe3f58ffbe82700580eb271ae;hpb=0645ea4627d392af97c96ad15e1e1d2832eb4c73 diff --git a/bike-lipo-box.scad b/bike-lipo-box.scad index c7fc125..69bfe56 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; @@ -18,21 +19,26 @@ s1930_behind = 3; totx_inner = 180; toty_outer = 95; -totz_outer = 31; +totz_inner = 28.0; wallthick = 2.5; -strap_w = 5; -strap_th = 4; +cabledia = 8.7; + +strap_w = 5 + 1; +strap_th = 4 + 1; strap_pillar = 3; strap_pillard = 5; strap_over = 2; +straps_at_box = [45, 95, 125, 160]; +straps_every = 30; + // calculated totx_outer = totx_inner + wallthick*2; toty_inner = toty_outer - wallthick*2; -totz_inner = totz_outer - wallthick*2; +totz_outer = totz_inner + wallthick*2; sb_box_sz = [totx_outer, totz_outer, toty_inner]; @@ -137,37 +143,64 @@ module ProfileDemos(){ ////toplevel color("red") translate([-5,0]) square([1,ts_totz_inner]); } -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; +module AtGlands(){ + for (dgy=[-15,-45]) { + translate([totx_inner + wallthick - $sealingbox_cnrrad * .3, + toty_inner + dgy, + totz_inner/2]) + children(); + } +} +module StrapKeepers(at){ strap_x_tot = strap_w + strap_pillar*2; + for (sx= at) { + 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]); + } + } +} + +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; + difference(){ union(){ - rotate([90,0,0]) - translate([-wallthick,-wallthick, -toty_inner]) + AtSealingBox() SealingBox_RectBox(); translate([switch_x, toty_inner, totz_inner/2]) rotate([90,0,90]) S1930_Positive(); - // straps for lipo - for (sx= [ 45, 80, 110 ]) { - for (sy= [ 10, 40 ]) { - translate([sx - strap_x_tot, sy, 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]); - } - } + // keepers for lipo + for (kx= [ 40, 80, 120 ]) { + translate([kx, 40, -1]) + cube([10, 5, 8 +1]); } + + AtGlands() + GlandPositive(cabledia); + + translate([0, toty_inner+wallthick, -wallthick]) + rotate([180, 0,0]) + StrapKeepers(straps_at_box); } // charging connector @@ -179,11 +212,52 @@ module Box(){ ////toplevel 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,-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();