X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=bike-lipo-box-gland.scad;h=0e9228b379d7c5c5debe9cae9ed1a6055dcb0908;hp=bf4faff7a66e001ff48151bae65a821105ebcadd;hb=9f04d00b692084d041d49bf5639f8a91cc24cd94;hpb=55da08e033c3b42190f2a52f8b193a97cb85e3d0 diff --git a/bike-lipo-box-gland.scad b/bike-lipo-box-gland.scad index bf4faff..0e9228b 100644 --- a/bike-lipo-box-gland.scad +++ b/bike-lipo-box-gland.scad @@ -2,39 +2,58 @@ include -module Gland(){ - hull(){ - for (m=[0,1]) { - mirror([0,0, m]) { - translate([0,0, 1.5 + (20-13)]) cylinder(r=13, h=0.5); - translate([0,0, 1.5]) cylinder(r=20, h=0.5); - } - } - } +cable_dias = [6.5, 8.2]; + +cd = cable_dias[1] + 0.5; +wall = 2.5; + +function Gland_xlen(cabledia) = cabledia * 1.5; +function Gland_xdia(cabledia) = cabledia * 2.0; +function Gland_xoutdia(cabledia) = Gland_xdia(cabledia) * 1.1 + 0.5; + +// origin is centre, on outside +// outside is in direction of positive X axies +module GlandNegative(cabledia){ + xlen = Gland_xlen(cabledia); + xdia = Gland_xdia(cabledia); + + hull(){ + rotate([0,90,0]) cylinder(r= cabledia/2, h=1); + translate([xdia,0,0]) rotate([0,90,0]) cylinder(r= xdia/2, h=1); + } + translate([-10,0,0]) + rotate([0,90,0]) + cylinder(r= cabledia/2, h=11); } +module GlandPositive(cabledia){ + translate([-0.1, 0,0]) + rotate([0,90,0]) + cylinder(r= Gland_xoutdia(cabledia)/2, h= Gland_xlen(cabledia) + 0.1); +} + +platesz = [wall, 24, 28]; +plateoff = [-platesz[0]/2, -platesz[1]/2, -platesz[2] + platesz[1]/2]; + module Plate(){ difference(){ union(){ - Gland(); - translate([-30,-30,-1.5]) - cube([60,60,3]); + GlandPositive(cd); + translate(plateoff) + cube(platesz); } - translate([0,0,-50]) - cylinder(r=12.5, h=100); + GlandNegative(cd); } } -module Test(){ - rotate([90,0,0]) - translate([0, 30, 0]) - Plate(); - translate([-20,-20,0]){ +module Test(){ ////toplevel + Plate(); + translate(plateoff){ difference(){ - cube([40,20,1.2]); - Commitid_BestCount_M([40,20]); + cube([15, 20, 1.2]); + Commitid_BestCount_M([15, 20]); } } } -Test(); +//Test();