chiark
/
gitweb
/
~ianmdlvl
/
reprap-play.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
svg-prep-dxf: do Ungroup too
[reprap-play.git]
/
sealing-box.scad.m4
diff --git
a/sealing-box.scad.m4
b/sealing-box.scad.m4
index 2ffc6303ef44f183819785d706e5c19af0522af9..dbfb220f9519b7535a4ec66f16a40ce6d588b30b 100644
(file)
--- a/
sealing-box.scad.m4
+++ b/
sealing-box.scad.m4
@@
-6,15
+6,17
@@
// 1. include <sealing-box.scad>
// 2. assign() values to (xxx these should be $ variables)
// $sealingbox_wallth
// 1. include <sealing-box.scad>
// 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
// 3. use the modules
// SealingBox_RectBox
// SealingBox_RectLid
// $sealingbox_ceilth
// $sealingbox_floorth
// $sealingbox_wallth
// 3. use the modules
// SealingBox_RectBox
// SealingBox_RectLid
+// (origin is notional outside corner, but at level of
+// inside of base; box extends to positive x,y,z)
//
// B. Complicated shapes, but harder work
// 1. Be a .m4 file and m4_include sealing-box.scad.m4
//
// B. Complicated shapes, but harder work
// 1. Be a .m4 file and m4_include sealing-box.scad.m4
@@
-26,11
+28,13
@@
// $sealingbox_cnrrad
$sealingbox_cnrrad = 10;
// $sealingbox_cnrrad
$sealingbox_cnrrad = 10;
+$sealingbox_crude = false;
+$sealingbox_inner_slop = 0.2;
m4_define(`BoxLocals',`
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;
wall = $sealingbox_wallth;
floorth = $sealingbox_floorth;
ceilth = $sealingbox_ceilth;
@@
-38,13
+42,15
@@
m4_define(`BoxLocals',`
xbox_lin = xbox - cnrrad*2;
ybox_lin = ybox - cnrrad*2;
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',`
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',`
@@
-78,7
+84,7
@@
m4_define(`BoxPart_Extrude_Arc',`
scale(500)
mirror([($1)<0, 0,0])
FArcSegment_mask($2);
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
mirror([($1)<0, 0,0])
translate([+($1),0,0]){
$3
@@
-104,7
+110,7
@@
module SealingBox_WallProfile(){
BoxLocals
z = zbox - innertube - tubesealrad;
translate([0, -0.1]) square([wall, z]);
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(){
}
module SealingBox_FloorProfile(){
@@
-112,27
+118,41
@@
module SealingBox_FloorProfile(){
mirror([0,1]) square([wall, floorth]);
}
mirror([0,1]) square([wall, floorth]);
}
+function SealingBox_lidbigger() = lidoverlap + innertube;
+
module SealingBox_LidProfile(){
BoxLocals
rad = tubesealrad + innertube;
morex = wall;
module SealingBox_LidProfile(){
BoxLocals
rad = tubesealrad + innertube;
morex = wall;
+ inner_buttress_h = tubesealrad*1.5 + innertube + ceilth;
+
difference(){
difference(){
- translate([-lidoverlap - innertube,
- zbox - lidoverhang - innertube])
- square([lidoverlap + innertube + wall,
+ translate([0, zbox + ceilth]) mirror([0,1]) {
+ translate([-SealingBox_lidbigger(),
+ 0])
+ square([lidoverlap + innertube + tubesealrad,
lidoverhang + innertube + ceilth]);
lidoverhang + innertube + ceilth]);
+ square([tubesealrad*2 + innertube + lidoverlap,
+ inner_buttress_h]);
+ }
hull(){
translate([tubesealrad,
zbox - innertube - tubesealrad])
for (t=[ [0,0],
hull(){
translate([tubesealrad,
zbox - innertube - tubesealrad])
for (t=[ [0,0],
- [morex*2, 0],
[0, -zbox]
]) {
translate(t)
[0, -zbox]
]) {
translate(t)
- circle(r= tubesealrad + innertube,
$fn=20
);
+ circle(r= tubesealrad + innertube,
BoxFn(20,6)
);
}
}
}
}
}
}
+ translate([tubesealrad*2 + $sealingbox_inner_slop,
+ zbox + ceilth]) {
+ mirror([0,1]) {
+ square([lidoverlap + innertube,
+ inner_buttress_h]);
+ }
+ }
}
module SealingBox_CeilProfile(){
}
module SealingBox_CeilProfile(){
@@
-157,4
+177,4
@@
m4_define(`BoxUseShape',`
}
')
}
')
-BoxUseShape(`
TestSealBox
',`BoxDoShapeRect')
+BoxUseShape(`
SealingBox_Rect
',`BoxDoShapeRect')