Advertisements

HP 7475A Plotter: Pen Refilling Station

A place to store your vials of blended inkjet juice, plus a workstation for the plotter pen you’re refilling and that ink vial up front:

HP7475A Plotter Pen Refilling Station

HP7475A Plotter Pen Refilling Station

The two pen holders accommodate ordinary fiber-tip pens and ceramic-tip pens. The slot along the front lets you keep track of the ink level, not that there’s much danger of running dry at 0.05 ml per refill from a vial holding 1 ml of blended ink. The big flange makes it harder for me to knock the damn thing over; avoiding an ink spill, even when you have a towel underneath, is a Good Thing.

The Slic3r tool path preview shows off the Hilbert Curve top & bottom infill:

Plotter Pen Refill Vial Holder - Slic3r preview

Plotter Pen Refill Vial Holder – Slic3r preview

The OpenSCAD source code:

// HP7475A Plotter Pen Refill Station
// Ed Nisley KE4ZNU - August 2015

//- Extrusion parameters - must match reality!

ThreadThick = 0.25;
ThreadWidth = 0.40;

function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);

Protrusion = 0.1;

HoleWindage = 0.2;

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


//------
// Dimensions

WallThick = 6*ThreadWidth;
BaseThick = IntegerMultiple(1.0,ThreadThick);

VialOD = 8.0;
VialOC = VialOD + WallThick;

VialArray = [4,4];			// number of vials in each direction

PenOD = [14.7,11.7];			// regular fiber pen body, ceramic *cap* dia
NumPens = len(PenOD);			// really works for just two pens...
PenLength = 38;
FlangeOD = 18;

echo(str("Max pen OD: ",max(PenOD)));
echo(str("Number of pens: ",len(PenOD)));

Holder = [(VialOC*VialArray[0] + WallThick),(VialOC*VialArray[1] + 2*FlangeOD + WallThick),(3*VialOD + BaseThick)];
HolderRound = 5.0;

//- Build it

	difference() {

		union() {
			hull() {
				for (i=[-1,1], j=[-1,1]) {
					translate([i*(Holder[0]/2 - HolderRound),j*(Holder[1]/2 - HolderRound),0])
						cylinder(r=HolderRound,h=Holder[2],$fn=8*4);
				}
			}
			
			hull() {
				for (i=[-1,1], j=[-1,1]) {
					translate([i*Holder[1]/2,j*(Holder[1]/2 - HolderRound),0])
						cylinder(r=HolderRound,h=BaseThick,$fn=8*4);
				}
			}
			
			for (i=[0:len(PenOD) - 1])
				translate([(i*Holder[0]/2 - Holder[0]/4),-Holder[1]/4,BaseThick]) {		// spacing is a total hack
					rotate(180/12)
						cylinder(d=FlangeOD,h=PenLength,$fn=3*4);
				}
		}
		
		for (i=[0:VialArray[0] - 1] , j=[0:VialArray[1] - 1]) {
			vx = i*VialOC - (VialOC*(VialArray[0] - 1)/2);
			vy = j*VialOC - (VialOC*(VialArray[1] - 1)/2) + FlangeOD;
			translate([vx,vy,BaseThick])
				rotate(180/8)
					PolyCyl(VialOD,Holder[2],8);
		}
		
		translate([0,(VialOD/2 - Holder[1]/2),BaseThick])
			rotate(180/8)
				PolyCyl(VialOD,Holder[2],8);										// edges along open side => snug fit
		
		for (i=[0:len(PenOD) - 1])
			translate([(i*Holder[0]/2 - Holder[0]/4),-Holder[1]/4,BaseThick]) {		// spacing is a total hack
				rotate(180/12)
					PolyCyl(PenOD[i],(PenLength + Protrusion),3*4);
			}
		
	}

Mostly because I can…

Advertisements

  1. #1 by david on 2015-08-22 - 02:51

    wait, why are the ceramic and fiber pen wells different? they fit the same plotter mechanism …?

    • #2 by Ed on 2015-08-22 - 08:59

      Both uncapped pens fit the same carousel, but the ceramic pen cap extends along its body nearly to the flange. I decided to fill capped pens, rather than have them dribble excess ink into the block, so I needed two different sockets.

      And then I dripped a drop of black ink atop the block. It instantly seeped along all the threads, covered the entire top of the block, and is now working its way throughout the structure. [sigh]

  1. HP 7475A Plotter: Zombie Pens | The Smell of Molten Projects in the Morning