X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=sealing-box.scad.m4;h=40b4f6492a6ce75a3d503fadf9dc211d859bd686;hb=0c6ed7969a39139baf51e7f0d4443375a875589c;hp=2c06917da9d21e1cc29c9b28d547ae2725e6bfa6;hpb=b85165dbbfe16d8e81085f328a2147c176854f84;p=reprap-play.git diff --git a/sealing-box.scad.m4 b/sealing-box.scad.m4 index 2c06917..40b4f64 100644 --- a/sealing-box.scad.m4 +++ b/sealing-box.scad.m4 @@ -6,9 +6,9 @@ // 1. include // 2. assign() values to (xxx these should be $ variables) // $sealingbox_wallth -// $sealingbox_xbox (outer dimension) -// $sealingbox_ybox (outer dimension) -// $sealingbox_zbox (inner dimension) +// $sealingbox_sz[0] (outer dimension) +// $sealingbox_sz[1] (outer dimension) +// $sealingbox_sz[2] (inner dimension) // $sealingbox_ceilth // $sealingbox_floorth // $sealingbox_wallth @@ -28,11 +28,12 @@ // $sealingbox_cnrrad $sealingbox_cnrrad = 10; +$sealingbox_crude = false; m4_define(`BoxLocals',` - xbox = $sealingbox_xbox; - ybox = $sealingbox_ybox; - zbox = $sealingbox_zbox; + xbox = $sealingbox_sz[0]; + ybox = $sealingbox_sz[1]; + zbox = $sealingbox_sz[2]; wall = $sealingbox_wallth; floorth = $sealingbox_floorth; ceilth = $sealingbox_ceilth; @@ -40,13 +41,15 @@ m4_define(`BoxLocals',` xbox_lin = xbox - cnrrad*2; ybox_lin = ybox - cnrrad*2; - - innertube = 1.0 + 0.2; - lidoverlap = 1.5; - lidoverhang = 6; - tubesealrad = 2.0; ') +m4_define(`innertube', `(1.0 + 0.2)') +m4_define(`lidoverlap', `1.5') +m4_define(`lidoverhang', `6') +m4_define(`tubesealrad', `2.0') + +m4_define(`BoxFn',`$fn= $sealingbox_crude ? ($2) : ($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',` @@ -80,7 +83,7 @@ m4_define(`BoxPart_Extrude_Arc',` scale(500) mirror([($1)<0, 0,0]) FArcSegment_mask($2); - rotate_extrude(convexity=10, $fs=1, $fn=36) + rotate_extrude(convexity=10, $fs=1, BoxFn(36,8)) mirror([($1)<0, 0,0]) translate([+($1),0,0]){ $3 @@ -106,7 +109,7 @@ module SealingBox_WallProfile(){ BoxLocals z = zbox - innertube - tubesealrad; translate([0, -0.1]) square([wall, z]); - translate([tubesealrad, z]) circle(r=tubesealrad, $fn=20); + translate([tubesealrad, z]) circle(r=tubesealrad, BoxFn(20,6)); } module SealingBox_FloorProfile(){ @@ -114,12 +117,14 @@ module SealingBox_FloorProfile(){ mirror([0,1]) square([wall, floorth]); } +function SealingBox_lidbigger() = lidoverlap + innertube; + module SealingBox_LidProfile(){ BoxLocals rad = tubesealrad + innertube; morex = wall; difference(){ - translate([-lidoverlap - innertube, + translate([-SealingBox_lidbigger(), zbox - lidoverhang - innertube]) square([lidoverlap + innertube + wall, lidoverhang + innertube + ceilth]); @@ -131,7 +136,7 @@ module SealingBox_LidProfile(){ [0, -zbox] ]) { translate(t) - circle(r= tubesealrad + innertube, $fn=20); + circle(r= tubesealrad + innertube, BoxFn(20,6)); } } }