Advertisements

Archive for November 13th, 2013

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

,

1 Comment