-
Sherline Collet Pusher Pin Holder

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 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 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); }