The Smell of Molten Projects in the Morning

Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.

The New Hotness

  • 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…