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=6056d61304db0732715ff7caf9d77d3a4c11a640;hp=c1322857c9c0251d8e72e0b32a167c4cc01a8bbc;hb=2cbfe8e17ae89257bce84a58c340fa90bca555d9;hpb=8a43508c67edd0f64208fc190a7f88c5cd655e40 diff --git a/bike-lipo-box.scad b/bike-lipo-box.scad index c132285..6056d61 100644 --- a/bike-lipo-box.scad +++ b/bike-lipo-box.scad @@ -1,8 +1,9 @@ // -*- C -*- include +include -pxp6012_rad = 22.5 / 2 + 0.5; +pxp6012_rad = 22.5 / 2 + 0.5; // make circular hole this size in outer wall pxp6012_rad_outer = 32.0 / 2 - 0.5; s1930_y = 30.2 + 0.2; @@ -12,11 +13,30 @@ s1930_x_outer = 27.6 + 0.2; s1930_recess = 3; s1930_around = 3; +s1930_behind = 3; + +wallthick = 2.5; + +// origin is at centre on outer face wall +// outside is towards positive x +// mounting is vertical +module S1930_Positive(){ + d = s1930_recess + s1930_behind; + translate([-d/2, 0,0]) + cube([d, + s1930_x_outer + s1930_around, + s1930_y_outer + s1930_around], center=true); +} +module S1930_Negative(){ + cube([60, s1930_x, s1930_y], + center=true); + translate([1, 0,0]) + cube([s1930_recess*2+2, s1930_x_outer, s1930_y_outer], + center=true); +} -wallthick = 3.0; - -module TestWall(){ - sw_ctr = [25, 0, 25]; +module TestWall(){ ////toplevel + sw_ctr = [25, wallthick, 25]; rotate([0,0,-90]){ difference(){ @@ -36,58 +56,71 @@ module TestWall(){ difference(){ union(){ cube([50, wallthick, 50]); - translate(sw_ctr) { - rotate([90,0,0]) - cube([s1930_x_outer + s1930_around, - s1930_y_outer + s1930_around, - s1930_recess*2], - center=true); - } + translate(sw_ctr) + rotate([0,0,90]) + S1930_Positive(); } translate(sw_ctr) { - rotate([90,0,0]) { - cube([s1930_x, s1930_y, 10], center=true); - translate([0,0, -5]) - cube([s1930_x_outer, s1930_y_outer, 10], center=true); - } + rotate([0,0,90]) + S1930_Negative(); } } } -ts_floorceil = 1.5; -ts_outer = [20,20,20]; -ts_wall = [wallthick,wallthick,ts_floorceil]; - -seal_h = 3; -seal_w = 1; - -module TestSealSelector(){ - oz = ts_outer[2]; - muchxy = [30,30,0]; - seal_horiz_spare = wallthick - seal_w; - seal_horiz_flat_outer = seal_horiz_spare/2; - seal_horiz_flat_inner = seal_horiz_spare - seal_horiz_flat_outer; -// translate([0,0, oz/2]){ - %translate(-muchxy/2) mirror([0,0,1]) cube(ts_outer + muchxy + [0,0,10]); - hull(){ - translate([1,1,0] * seal_horiz_flat_outer) - mirror([0,0,1]) - cube(ts_outer - 2 * [1,1,0] * seal_horiz_flat_outer); - translate([1,1,0] * seal_horiz_flat_inner + [0, 0, seal_h]) - mirror([0,0,1]) - cube(ts_outer - 2 * [1,1,0] * seal_horiz_flat_inner); - } -// } +totx_outer = 30; +toty_outer = 25; +totz_inner = 8; + +$sealingbox_wallth = wallthick; +$sealingbox_floorth = 2.5; +$sealingbox_ceilth = 2.5; +$sealingbox_xbox = totx_outer; +$sealingbox_ybox = toty_outer; +$sealingbox_zbox = totz_inner; + +innertube = 1.0 + 0.2; +lidoverlap = 1.5; +lidoverhang = 6; +tubesealrad = 2.0; + +include + +module TestSealBox(){ ////toplevel + TestSealBoxBox(); + translate(ts_cidoff) + Commitid_BestCount([totx_outer,toty_outer] - 2*ts_cidoff); } -module TestSeal(){ +module TestSealLid(){ ////toplevel difference(){ - cube(ts_outer); - translate(ts_wall) cube(ts_outer - ts_wall*2); + TestSealBoxLid(); + + translate([totx_outer * .75, toty_outer/2, 0]) + cylinder(h=100, r=5); + + translate([-wallthick + $sealingbox_cnrrad*.5, + $sealingbox_cnrrad*.5 - wallthick, + totz_inner + $sealingbox_ceilth]) + Commitid_BestCount([totx_outer * .75 - 2.5 - ($sealingbox_cnrrad*.5), + toty_outer - ($sealingbox_cnrrad*.5 - wallthick)*2]); } } +module TestSealLidPrint(){ ////toplevel + rotate([180,0,0]) TestSealLid(); +} + +module ProfileDemos(){ ////toplevel + SealingBox_WallProfile(); + color("blue") SealingBox_FloorProfile(); + SealingBox_LidProfile(); + color("blue") SealingBox_CeilProfile(); + color("red") translate([-5,0]) square([1,totz_inner]); +} + //TestWall(); -//TestSeal(); -TestSealSelector(); +//ProfileDemos(); +//TestSealBox(); +//TestSealLid(); +//FArcSegment_mask(350);