Being the domain expert for adapters between a new vacuum cleaner and old tools, this made sense (even though it’s not our vacuum):

The notch snaps into a Dirt Devil Power Stick vacuum cleaner and the tapered end fits a variety of old tools for other vacuum cleaners:

Having some experience breaking thin-walled adapters, these have reinforcement from a PVC tube:

A smear of epoxy around the interior holds the tube in place:

Building the critical dimensions with a 3D printed part simplified the project, because I could (and did!) tweak the OpenSCAD code to match the tapers to the tools. Turning four of those tubes from a chunk of PVC conduit, however, makes a story for another day.
The OpenSCAD source code as a GitHub Gist:
// Dirt Devil nozzle adapter | |
// Ed Nisley KE4ZNU 2021-10 | |
// Tool taper shift | |
Finesse = -0.1; // [-0.5:0.1:0.5] | |
// PVC pipe liner | |
PipeOD = 28.5; | |
/* [Hidden] */ | |
//- Extrusion parameters | |
ThreadThick = 0.25; | |
ThreadWidth = 0.40; | |
HoleWindage = 0.2; | |
function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit); | |
Protrusion = 0.1; // make holes end cleanly | |
//---------------------- | |
// Dimensions | |
TAPER_MIN = 0; | |
TAPER_MAX = 1; | |
TAPER_LENGTH = 2; | |
Socket = [36.0,37.0,40.0]; | |
LockringDia = 33.5; | |
LockringWidth = 4.5; | |
LockringOffset = 2.5; | |
Tool = [Finesse,Finesse,0] + [30.0,31.1,30.0]; | |
AdapterOAL = Socket[TAPER_LENGTH] + Tool[TAPER_LENGTH]; | |
NumSides = 36; | |
$fn = NumSides; | |
//---------------------- | |
// 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); | |
} | |
//------------------- | |
// Define it! | |
module Adapter() { | |
difference() { | |
union() { | |
difference() { | |
cylinder(d1=Socket[TAPER_MIN],d2=Socket[TAPER_MAX],h=Socket[TAPER_LENGTH]); | |
translate([0,0,LockringOffset]) | |
cylinder(d=2*Socket[TAPER_MAX],h=LockringWidth); | |
} | |
cylinder(d=LockringDia,h=Socket[TAPER_LENGTH]); | |
translate([0,0,LockringOffset + 0.75*LockringWidth]) | |
cylinder(d1=LockringDia,d2=Socket[TAPER_MIN],h=0.25*LockringWidth); | |
translate([0,0,Socket[TAPER_LENGTH]]) | |
cylinder(d1=Tool[TAPER_MAX],d2=Tool[TAPER_MIN],h=Tool[TAPER_LENGTH]); | |
} | |
translate([0,0,-Protrusion]) | |
PolyCyl(PipeOD,AdapterOAL + 2*Protrusion,NumSides); | |
} | |
} | |
//---------------------- | |
// Build it! | |
Adapter(); | |
The taper in the code almost certainly won’t fit whatever tool you have: measure thrice, print twice, and maybe fit once …
2 thoughts on “Dirt Devil Vacuum Tool Adapters”
Comments are closed.