Advertisements

Digital Caliper Thumbwheel Holder: Another Repair

The digital caliper on my desk has been getting a lot of use lately and, as expected, that delicate glued repair failed.

Well, I can fix that

Thumbwheel holder - installed

Thumbwheel holder - installed

That’s a somewhat chopped-up Version 1; as always, I must build one prototype to see how everything fits, then make a real part incorporating all the changes. The models  and code below have those changes and should print fine.

This picture from the previous repair shows what broke and why:

Broken Roller Mount

Broken caliper thumb roller mount

I removed the remainder of the arch, filed the stub square, made a bunch of tedious measurements, and wrote a chunk of OpenSCAD code to create a repair part that looks like this:

Thumbwheel holder - build model

Thumbwheel holder - build model

There’s also a layout arrangement to confirm that it’ll fit the stub:

Thumbwheel holder - fit model

Thumbwheel holder - fit model

And then I printed four so I could pick the best one. The horizontal hole and notch come out surprisingly well, although this thing is right down around the minimum size you’d want to print:

Thumbwheel holders - as built

Thumbwheel holders - as built

The 1-72 screw threads itself into the hole without a nut; I simply match-drilled a hole in the stub under the hole in the part. Of course, that means I must fit the next part to that hole…

I really wish I was printing with, say, black filament. Even dark green would be better. Heck, I’d go with yellow, but if I don’t get rid of this pink stuff I’ll have it forever.

The OpenSCAD source code:

// Digital Caliper thumbwheel holder
// Ed Nisley - KE4ZNU - Apr 2011

Build = true;						// set true to generate buildable layout

$fn = 8;							// default for holes

// Extrusion values
// Use 0 extra shells behind the perimeter
//     2 solid shells on the top & bottom

ThreadThickness = 0.33;
ThreadWT = 1.75;
ThreadWidth = ThreadThickness * ThreadWT;

HoleWindage = ThreadWidth;			// enlarge hole dia by extrusion width

Protrusion = 0.1;					// extend holes beyond surfaces for visibility

// Caliper dimensions

WheelDia = 10.0;					// thumbwheel OD
WheelRadius = WheelDia/2;
WheelMargin = 1.0;					// space around wheel
WheelRimThick = 2.5;				// subtract from repair block

ShaftDia = 2.90;					// axle between knurled wheels
ShaftRadius = ShaftDia/2;
ShaftLength = 2.7;
ShaftRetainer = 3.0;				// thickness around shaft

StubThick = 2.45;					// stub of holder on caliper head
StubLength = 5.0;					// toward caliper head
StubHeight = 6.0;					// perpendicular to caliper head
StubClearance = 0.5;				// distance to caliper frame

FrameLength = 50;					// for display only
FrameHeight = 16.0;
FrameThick = 3.0;

// Repart part dimensions

ForkLength = StubLength - StubClearance;	// toward caliper head around stub
ForkHeight = StubHeight;			// perpendicular to caliper head
ForkGap = 0.2;						// clearance to stub on all sides
ForkBladeThick = 2.0;				// on each side of stub

ShaftClearance = 0.0;				// Additional clearance around shaft
ShaftOffset = 8.5;					// Shaft center to stub

BoltHoleDia = 1.8;					// 1-72 machine screw, more or less
BoltHoleRadius = BoltHoleDia/2;

// Convenient sizes and shapes

FrameBlock = [FrameLength,FrameThick,FrameHeight];

StubBlock = [StubLength,StubThick,StubHeight];
StubMargin = [ForkGap,2*ForkGap,ForkGap];

RepairBlockLength = ForkLength + ShaftOffset;
RepairBlockThick = 2*ForkBladeThick + StubThick;
RepairBlockHeight = WheelRadius + ShaftRadius + ShaftRetainer;

RepairBlock = [RepairBlockLength,RepairBlockThick,RepairBlockHeight];

// Caliper parts to show how repair fits in

module CaliperParts() {
  union() {
	translate([0,0,-(StubClearance + FrameHeight/2)])
	  cube(FrameBlock,center=true);
	translate([-(StubLength/2 + ShaftOffset),0,(StubHeight/2)])
	  cube(StubBlock,center=true);
  }
}

// Repair block with origin below wheel shaft

module RepairPart() {

  difference() {

// Body of repair part
	union() {
	  translate([-RepairBlockLength/2,0,RepairBlockHeight/2])
		cube(RepairBlock,center=true);
	  translate([0,0,WheelRadius])
		rotate([90,0,0])
		  cylinder(r=ShaftRadius+ShaftRetainer,h=ShaftLength,center=true,$fn=12);
	}

// wheels
	translate([0,(ShaftLength + WheelRimThick)/2,WheelRadius])
	  rotate([90,0,0])
		cylinder(r=(WheelRadius + WheelMargin),h=WheelRimThick,center=true,$fn=16);
	translate([-(WheelRadius + WheelMargin)/2,
			  (ShaftLength + WheelRimThick)/2,
			  (WheelRadius - Protrusion)/2])
	  cube([(WheelRadius + WheelMargin),WheelRimThick,(WheelRadius + Protrusion)],
			center=true);
	translate([0,-(ShaftLength + WheelRimThick)/2,WheelRadius])
	  rotate([90,0,0])
		cylinder(r=(WheelRadius + WheelMargin),h=WheelRimThick,center=true,$fn=16);
	translate([-(WheelRadius + WheelMargin)/2,
			  -(ShaftLength + WheelRimThick)/2,
			  (WheelRadius - Protrusion)/2])
	  cube([(WheelRadius + WheelMargin),WheelRimThick,(WheelRadius + Protrusion)],
			center=true);

// axle clearance
	translate([0,0,WheelRadius])
	  rotate([90,0,0])
		cylinder(r=ShaftRadius,h=(ShaftLength + 2*Protrusion),center=true);
	translate([0,0,(WheelRadius - Protrusion)/2])
	  cube([ShaftDia,(ShaftLength + 2*Protrusion),(WheelRadius + Protrusion)],
		   center=true);

// stub of previous wheel holder
	translate([-(ShaftOffset + (ForkLength - ForkGap)/2 + Protrusion),
			  0,
			  (StubHeight + ForkGap - Protrusion)/2])
	  cube([(ForkLength + ForkGap + Protrusion),
		   (StubThick + 2*ForkGap),
		   (StubHeight + ForkGap + Protrusion)],
		   center=true);

// mounting screw hole
	translate([-(ShaftOffset + ForkLength/2),0,StubHeight/2])
	  rotate([90,0,0])
		cylinder(r=(BoltHoleDia + HoleWindage)/2,
				 h=(RepairBlockThick + 2*Protrusion),
				 center=true,$fn=6);
  }
}

// Build it!

if (!Build) {
  CaliperParts();
  RepairPart();
}

if (Build) {
  translate([-RepairBlockLength/2,0,RepairBlockHeight])
	rotate([0,180,0])
	  RepairPart();
}
Advertisements

,

  1. #1 by Steve on 2011-04-29 - 09:21

    Just exactly HOW MUCH pink stuff did you get? :-)

    – Steve

    • #2 by Ed on 2011-04-29 - 13:05

      A mere one pound bundle, but it takes a shitload pile of little parts to use a pound of plastic. Burying the [mumble] stuff in the front yard might be extreme, but … sometimes a man’s gotta do what a man’s gotta do.

  2. #3 by Erik Scott on 2011-04-29 - 10:37

    That’s definitely small enough for some black nail polish action. Or Testors’ model paint. Or even a Sharpie.

    • #4 by Ed on 2011-04-29 - 13:03

      Sharpie FTW!

  3. #5 by david on 2011-05-04 - 02:39

    What I want to know is *why* you bought a pound of that godawful stuff… :)

    • #6 by Ed on 2011-05-04 - 06:33

      Back in the day, MBI sold a “rainbow assortment” of plastic, so it was collateral damage.

      Then I figured I should use it while setting up the printer. What I didn’t realize:

      • I’d be doing far more tinkering than printing
      • How many doodads come out of a pound
      • “Setting up” would require four months

      If it’s any consolation, I’m down to the last two meters: two loops around the spool….

  1. Thing-O-Matic: Caliper Repair Perfection « The Smell of Molten Projects in the Morning