Advertisements

Caig DeoxIT Bottle Holder

Having found my lifetime supply of DeoxIT slouched against something that didn’t appreciate a thin coating of red oil:

Caig DeoxIT bottle holder

Caig DeoxIT bottle holder

The solid model consists of two squashed cylinders atop a slab:

DeoxIT Bottle Holder

DeoxIT Bottle Holder

Applying the resize() operator to both cylinders separately, before the difference() operation, maintains a uniform (and grossly overqualified) 5 mm wall thickness, which you wouldn’t get by squashing them after the difference().

The 2.5 mm slab gets nice, rounded corners from a hull() shrinkwrapping a quartet of squat cylinders; Slic3r applies Hilbert Curve infill to the top & bottom surfaces to produce a nice pattern. I admit to being easily pleased.

The OpenSCAD source code took about ten minutes to write and two hours to print:

// CAIG DeoxIT Bottle Holder
// Ed Nisley KE4ZNU - June 2015

//- 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;

//------
// Dimensions

BottleOD = [40,21,30];			// actual dia, holder depth

Clearance = [1.0,1.0,0.0];				// around bottle

WallThick = 5.0;

PlateThick = IntegerMultiple(2.5,ThreadThick);
PlateRound = 5.0;

NumSides = 8*4;

//- Build it

union() {
	hull() {
		for (i=[-1,1], j=[-1,1]) {
			translate([i*(BottleOD[0] - PlateRound),j*(BottleOD[0] - PlateRound),0])
				cylinder(r=PlateRound,h=PlateThick,$fn=NumSides);
		}
	}
	difference() {
		resize(BottleOD + 2*Clearance + [2*WallThick,2*WallThick,WallThick])
			cylinder(d=BottleOD[0],h=1,$fn=NumSides);
		translate([0,0,WallThick])
			resize(BottleOD + 2*Clearance + [0,0,WallThick])
				cylinder(d=BottleOD,h=1,$fn=NumSides);
	}
}

I loves me my 3D printer…

Advertisements