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

  • HP Scope Probe Flange Repair

    Quite some time ago I manage to break the finger flange on one of my scope probes and, what with it being made of an un-glueable engineering plastic, a simple repair job failed quickly. It’s entirely round and a perfect lathe project, but … this is easier:

    HP Scope Probe Flange Repair
    HP Scope Probe Flange Repair

    You can see remnants of that failed repair just below the fracture:

    HP scope probe flanges - repair disk
    HP scope probe flanges – repair disk

    Some epoxy around the rim of the flange, plus filling the missing sector, looks about as grubby as you’d expect:

    HP Scope Probes - rear
    HP Scope Probes – rear

    That’s a tiny zit at about 1 o’clock which came off with fingernail pressure.

    From the business end, it actually looks pretty snappy:

    HP Scope Probes - front
    HP Scope Probes – front

    I’m mildly tempted to preemptively reinforce the other probes…

    The OpenSCAD source code joins two parts with coincident faces, but it worked out OK for once:

    // Tek Scope Probe Flange
    // Ed Nisley KE4ZNU November 2013
    
    //- Extrusion parameters must match reality!
    //  Print with 2 shells and 3 solid layers
    
    ThreadThick = 0.25;
    ThreadWidth = 0.40;
    
    HoleWindage = 0.2;
    
    Protrusion = 0.1;			// make holes end cleanly
    
    function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
    
    //----------------------
    // Dimensions
    
    FlangeOD = 16.0;
    FlangeID = 8.75;
    FlangeThick = IntegerMultiple(1.25,ThreadThick);
    
    DiskOD = FlangeOD + 4*ThreadWidth;
    DiskThick = FlangeThick + 4*ThreadThick;
    
    NumSides = 8*4;
    
    //----------------------
    // Useful routines
    
    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 ShowPegGrid(Space = 10.0,Size = 1.0) {
    
      Range = floor(50 / Space);
    
    	for (x=[-Range:Range])
    	  for (y=[-Range:Range])
    		translate([x*Space,y*Space,Size/2])
    		  %cube(Size,center=true);
    
    }
    
    //----------------------
    // Build it
    
    ShowPegGrid();
    
    	difference() {
    		union() {
    			translate([0,0,2*ThreadThick])
    				cylinder(r=DiskOD/2,h=DiskThick,$fn=NumSides);			// main repair part
    			cylinder(r1=(DiskOD - 2*ThreadWidth)/2,r2=DiskOD/2,h=2*ThreadThick,$fn=NumSides);
    		}
    		translate([0,0,(DiskThick - FlangeThick)])				// flange clearance
    			PolyCyl(FlangeOD,2*FlangeThick,NumSides);
    		translate([0,0,-DiskThick/2])
    			PolyCyl(FlangeID,2*DiskThick,NumSides);
    	}