+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]);
+}
+
+module TestSealBox(){ ////toplevel
+ TestSealDoBoxShape(WallProfile(););
+ hull(){ TestSealDoBoxShape(FloorProfile();); }
+ translate(ts_cidoff)
+ Commitid_BestCount([ts_xbox,ts_ybox] - 2*ts_cidoff);
+}
+
+module TestSealLid(){ ////toplevel
+ difference(){
+ union(){
+ TestSealDoBoxShape(LidProfile(););
+ hull(){ TestSealDoBoxShape(CeilProfile();); }
+ }
+ translate([ts_xbox * .75, ts_ybox/2, 0])
+ cylinder(h=100, r=5);
+
+ translate([-wallthick + ts_cnrrad*.5,
+ ts_cnrrad*.5 - wallthick,
+ ts_zbox + ceilth])
+ Commitid_BestCount([ts_xbox * .75 - 2.5 - (ts_cnrrad*.5),
+ ts_ybox - (ts_cnrrad*.5 - wallthick)*2]);
+ }
+}
+
+module TestSealLidPrint(){ ////toplevel
+ rotate([180,0,0]) TestSealLid();
+}
+
+module ProfileDemos(){
+ WallProfile();
+ color("blue") FloorProfile();
+ LidProfile();
+ color("blue") CeilProfile();
+}
+