X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=bike-lipo-box.scad.m4;h=ec0b43b398b5dc052a688b2b17fe1a40e5a209c1;hp=85f6e5946807e2a3e8f206c0d374f58a63a0e790;hb=3b8031a69db512ad2b856c95c621fc09eafa6b61;hpb=4c41de2c647ee95f9935276c8358757420040537 diff --git a/bike-lipo-box.scad.m4 b/bike-lipo-box.scad.m4 index 85f6e59..ec0b43b 100644 --- a/bike-lipo-box.scad.m4 +++ b/bike-lipo-box.scad.m4 @@ -3,7 +3,7 @@ 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; @@ -36,10 +36,7 @@ module S1930_Negative(){ } module TestWall(){ ////toplevel - sw_ctr = [25, 0, 25]; - sw_ctr_new = [25, - wallthick + 0.5, // xxx compatibility bug - 25]; + sw_ctr = [25, wallthick, 25]; rotate([0,0,-90]){ difference(){ @@ -59,12 +56,12 @@ module TestWall(){ ////toplevel difference(){ union(){ cube([50, wallthick, 50]); - translate(sw_ctr_new) + translate(sw_ctr) rotate([0,0,90]) S1930_Positive(); } - translate(sw_ctr_new) { + translate(sw_ctr) { rotate([0,0,90]) S1930_Negative(); } @@ -83,116 +80,18 @@ ts_ybox = 25; ts_cnrrad = 10; ts_zbox = 8; -ts_cidoff = (ts_cnrrad * (1-.7) + wallthick * .8) * [1,1]; - -m4_dnl Box_Part($1=transl_x,$2=transl_y, $3=rot_z,$4=mirror_xy) -m4_dnl $5=kind, $6=kindargs, $7=profile(profileargsargs)) -m4_define(`Box_Part',` - translate([($1),($2)]) - rotate([0,0,($3)]) - mirror([($4),0,0]) - BoxPart_Extrude_$5($6, $7)') m4_dnl - -boxpart_d = 0.01; - -m4_dnl BoxPart_Extrude_Linear(dist, `profile(...);'); -m4_define(`BoxPart_Extrude_Linear',` - rotate([90,0,0]) - translate([0,0, -($1)]) - linear_extrude(height= boxpart_d + ($1)) { - $2 - } -') - -m4_dnl BoxPart_Extrude_Arc(x0_radius, swept_angle, `profile(...);') -m4_dnl arc starting at transl_x, transl_y, moving towards positive -m4_dnl y at first and then bending towards negative x, until -m4_dnl use negative x0_radius to inciate bending towards positive x -m4_dnl swept_angle is reached -m4_dnl x0_radius is the radius of the extruded part at x=0, not of the box -m4_define(`BoxPart_Extrude_Arc',` - translate([-($1),0,0]) - intersection(){ - translate([0,0,-500]) - linear_extrude(height=1000) - scale(500) - mirror([($1)<0, 0,0]) - FArcSegment_mask($2); - rotate_extrude(convexity=10, $fs=1, $fn=36) - mirror([($1)<0, 0,0]) - translate([+($1),0,0]){ - $3 - } - } -') - -ts_xbox_lin = ts_xbox - ts_cnrrad*2; -ts_ybox_lin = ts_ybox - ts_cnrrad*2; - -m4_dnl TestSealDoBoxShape(`profile(profileargs)'); -m4_define(`TestSealDoBoxShape',` - Box_Part(0, ts_cnrrad, 0,0, Linear,`ts_ybox_lin', `$1' ) - Box_Part(0, ts_ybox-ts_cnrrad, 0,0, Arc,`-ts_cnrrad,90' , `$1' ) - Box_Part(ts_cnrrad, ts_ybox, -90,0, Linear,`ts_xbox_lin', `$1' ) - Box_Part(ts_xbox-ts_cnrrad, ts_ybox, -90,0, Arc,`-ts_cnrrad,90' , `$1' ) - Box_Part(ts_xbox, ts_ybox-ts_cnrrad, -180,0, Linear,`ts_ybox_lin', `$1' ) - Box_Part(ts_xbox, ts_cnrrad, -180,0, Arc,`-ts_cnrrad,90' , `$1' ) - Box_Part(ts_xbox-ts_cnrrad, 0, -270,0, Linear,`ts_xbox_lin', `$1' ) - Box_Part(ts_cnrrad, 0, -270,0, Arc,`-ts_cnrrad,90' , `$1' ) -') - -m4_dnl ' - -module WallProfile(){ - z = ts_zbox - innertube - tubesealrad; - translate([0, -0.1]) square([wallthick, z]); - translate([tubesealrad, z]) circle(r=tubesealrad, $fn=20); -} - -module FloorProfile(){ - mirror([0,1]) square([wallthick, floorth]); -} - -module LidProfile(){ - rad = tubesealrad + innertube; - morex = wallthick; - difference(){ - translate([-lidoverlap - innertube, - ts_zbox - lidoverhang - innertube]) - square([lidoverlap + innertube + wallthick, - lidoverhang + innertube + ceilth]); - hull(){ - translate([tubesealrad, - ts_zbox - innertube - tubesealrad]) - for (t=[ [0,0], - [morex*2, 0], - [0, -ts_zbox] - ]) { - translate(t) - circle(r= tubesealrad + innertube, $fn=20); - } - } - } -} - -module CeilProfile(){ - translate([0, ts_zbox]) - square([wallthick*2, ceilth]); -} +include module TestSealBox(){ ////toplevel - TestSealDoBoxShape(WallProfile();); - hull(){ TestSealDoBoxShape(FloorProfile();); } + TestSealBoxBox(); translate(ts_cidoff) Commitid_BestCount([ts_xbox,ts_ybox] - 2*ts_cidoff); } module TestSealLid(){ ////toplevel difference(){ - union(){ - TestSealDoBoxShape(LidProfile();); - hull(){ TestSealDoBoxShape(CeilProfile();); } - } + TestSealBoxLid(); + translate([ts_xbox * .75, ts_ybox/2, 0]) cylinder(h=100, r=5);