Faced with a need to send documents rolled up in a tube, rather than folded flat, I sawed off a suitable length of cardboard tube from the heap, then discovered a distinct lack of end caps.
Well, once again, it’s 3D printing to the rescue:
The small ribs probably don’t actually do anything, but seemed like a nice touch.
They’re somewhat less boring from the bottom:
The fancy spider supports that big flat top and provides some crush resistance. The flat flange should collect the edge of the packing tape wrapped around the ends.
A firm shove installs them, so the size worked out perfectly:
Add a wrap of tape to each end, affix the USPS label, and they went out with the next day’s mail, PETG hair and all.
The OpenSCAD source code as a GitHub Gist:
// Mailing tube end cap | |
// Ed Nisley KE4ZNU - June 2017 | |
Layout = "Build"; | |
//- Extrusion parameters - must match reality! | |
ThreadThick = 0.25; | |
ThreadWidth = 0.40; | |
function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit); | |
Protrusion = 0.1; | |
HoleWindage = 0.2; | |
//- Screw sizes | |
inch = 25.4; | |
TubeID = 2 * inch; | |
TubeWall = 0.1 * inch; | |
CapInsert = 15.0; | |
CapRim = 1.0; | |
CapWall = 3*ThreadWidth; | |
NumFlanges = 3; | |
FlangeHeight = 3*ThreadThick; | |
FlangeWidth = ThreadWidth/2; | |
FlangeSpace = CapInsert / (NumFlanges + 1); | |
OAHeight = CapInsert + CapRim; | |
NumRibs = 3*4; | |
NumSides = 3*NumRibs; | |
//- Adjust hole diameter to make the size come out right | |
module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes | |
Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2); | |
FixDia = Dia / cos(180/Sides); | |
cylinder(r=(FixDia + HoleWindage)/2,h=Height,$fn=Sides); | |
} | |
module TubeCap() { | |
difference() { | |
cylinder(d=TubeID,h=OAHeight,$fn=NumSides); | |
translate([0,0,CapWall]) | |
cylinder(d=TubeID - 2*CapWall,h=OAHeight,$fn=NumSides); | |
} | |
for (i=[1:NumFlanges]) | |
translate([0,0,i*FlangeSpace]) | |
difference() { | |
cylinder(d=TubeID + 2*FlangeWidth,h=FlangeHeight,$fn=NumSides); | |
translate([0,0,-Protrusion]) | |
cylinder(d=TubeID - 2*CapWall,h=FlangeHeight + 2*Protrusion,$fn=NumSides); | |
} | |
for (i=[0:NumRibs-1]) | |
rotate(i*360/NumRibs) | |
translate([0,-ThreadWidth,CapWall + ThreadThick]) | |
cube([TubeID/2 - CapWall/2,2*ThreadWidth,CapInsert + CapRim - CapWall - ThreadThick],center=false); | |
translate([0,0,CapInsert]) { | |
difference() { | |
cylinder(d=TubeID + 2*TubeWall,h=CapRim,$fn=NumSides); | |
translate([0,0,-Protrusion]) | |
cylinder(d=TubeID - 3*2*CapWall,h=2*CapRim,$fn=NumSides); | |
} | |
} | |
} | |
//- Build things | |
if (Layout == "Show") | |
TubeCap(); | |
if (Layout == "Build") | |
translate([0,0,OAHeight]) | |
rotate([180,0,0]) | |
TubeCap(); |
One thought on “Mailing Tube End Caps”
Comments are closed.