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

  • Sherline Collet Pusher Pin Holder

    Locking pin holder in use
    Locking pin holder in use

    Although that collet pusher works fine, the locking pin holder often teleported itself inside the vacuum cleaner. It recently reappeared on the far end of the main workbench, a good 15 feet away from the Sherline as the swarf flies. This, to misquote Churchill, is an impertinence up with which I shall not put.

    Herewith, a replacement offering several advantages:

    • Won’t fit up the vacuum’s snout
    • Easy to grip
    • Perfect pin alignment
    • 3D printing FTW!

    It’s a flat block resting on the flat top of the pulley, with a nice arc matching the pusher’s OD. A small hole for the pin at exactly the right altitude makes the whole thing rock-solid stable: it slides firmly into position.

    The 3D model looks like you’d expect:

    Pin holder - OpenSCAD model
    Pin holder – OpenSCAD model

    The finger grips were just for pretty, as you don’t need that much traction to extract the thing.

    A similar view of the real object with the bottom surface up and some flash around the edges:

    Locking pin holder - spindle end view
    Locking pin holder – spindle end view

    The as-printed block put the pin about 0.2 mm above the spindle hole, so I rubbed it on Mr Belt Sander (with the power off) until it fit. I printed the block on the aluminum plate platform; the Z height home setting evidently needs a tweak. However, the hole was exactly the correct distance from the top surface: flipping the block over fit perfectly.

    The OpenSCAD source code:

    // Collet extractor locking pin holder for Sherline spindle
    // Ed Nisley - KE4ZNU - Feb 2011
    
    include </home/ed/Thing-O-Matic/lib/MCAD/boxes.scad>
    include </home/ed/Thing-O-Matic/lib/MCAD/units.scad>
    
    PusherOD = 17.35;					// Shell of collet pusher
    
    PulleyOD = 65.5;					// For 3k rpm head
    
    PinHoleCtr = (3/16) * inch;			// pin hole center above pulley surface
    PinDia = 2.50;						// pin is about #40 drill
    PinHoleDepth = 10.0;				// hole depth from PusherOD
    
    HoleWindage = 0.55;					// Approximate extrusion width
    Padding = 0.1;						// A bit of spacing to make things obvious
    
    HolderWidth = 2 * PusherOD;						// Overall holder width
    HolderProtrusion = 15;							// sticks out beyond pulley
    HolderLength = PulleyOD/2 + HolderProtrusion;	//	... length
    HolderThickness = 2*PinHoleCtr;					//	... thickness
    HolderRounding = HolderWidth/5;					// corner rounding
    
    GripLength = 0.70 * HolderWidth;	// grip notch
    GripWidth = 0.25 * GripLength;
    GripIndent = HolderProtrusion/2;
    
    difference() {
    
    // main slab
    
      translate([-HolderLength/2,0,0])
    	roundedBox([HolderLength,HolderWidth,HolderThickness],HolderRounding,true,$fn=4*8);
    
    // pin hole
    
      translate([-(PusherOD/2 + PinHoleDepth/2 - Padding),0,0])
      rotate([0,90,0])
    	cylinder(r=PinDia/2,h=(PinHoleDepth + Padding),center=true,$fn=8);
    
    // upper grip
    
      translate([-(HolderLength - GripIndent),0,(HolderThickness/2)])
      rotate([90,0,0])
    	cylinder(r=GripWidth/2,h=(GripLength - GripWidth),center=true);
    
      translate([-(HolderLength - GripIndent),((GripLength - GripWidth)/2),(HolderThickness/2)])
    	sphere(r=GripWidth/2,$fn=10);
    
      translate([-(HolderLength - GripIndent),-((GripLength - GripWidth)/2),(HolderThickness/2)])
    	sphere(r=GripWidth/2,$fn=10);
    
    // lower grip
    
      translate([-(HolderLength - GripIndent),0,-(HolderThickness/2)])
      rotate([90,0,0])
    	cylinder(r=GripWidth/2,h=(GripLength - GripWidth),center=true);
    
      translate([-(HolderLength - GripIndent),((GripLength - GripWidth)/2),-(HolderThickness/2)])
    	sphere(r=GripWidth/2,$fn=8);
    
      translate([-(HolderLength - GripIndent),-((GripLength - GripWidth)/2),-(HolderThickness/2)])
    	sphere(r=GripWidth/2,$fn=8);
    
    // spindle shaft
    
      cylinder(r=(PusherOD/2)+HoleWindage,h=(HolderThickness + 2*Padding),center=true);
    
    }