ShopVac Nozzle Caddy

Shortly after acquiring the Greatest ShopVac, I zip-tied half a foot of cardboard tube to the handle to corral the nozzle and keep the ungainly hose from sprawling across the floor. While disembowling the Ottlite into a mini-lathe light, the plastic trim joining the baseplate to the vertical tube cried out to become a nozzle caddy:

ShopVac Nozzle Caddy - front view
ShopVac Nozzle Caddy – front view

It was exactly the right size and shape (by my admittedly slack standards) to hold the nozzle, plus being destined for the trash, so all it needed was a pair of clamp brackets conjured from the vasty digital deep:

ShopVac Nozzle Caddy - solid model
ShopVac Nozzle Caddy – solid model

The bosses fit into a tapered slot along what was the rear side, with a pair of 4 mm holes at each end for screws into threaded brass inserts epoxied into the brackets:

ShopVac Nozzle Caddy - clamps mounted
ShopVac Nozzle Caddy – clamps mounted

They obviously descend from the many clamp mounts I’ve made for everything from garden hoses to bike running lights. A pair of 4 mm SHCS squish the clamp around the handle, with a strip of electrical tape improving plastic-to-metal griptivity:

ShopVac Nozzle Caddy - side view
ShopVac Nozzle Caddy – side view

The clearance just barely allows a nylock nut atop a washer and you’ll want to trim those 40 mm screws to an exact fit, but it came out pretty well.

The original dimension doodle with some modeling ideas that didn’t survive more thinking:

ShopVac Nozzle Caddy - Dimension Doodle 1
ShopVac Nozzle Caddy – Dimension Doodle 1

A more detailed doodle with brass inserts instead of the nylock nuts and an aluminum spreader plate that was obviously not necessary:

ShopVac Nozzle Caddy - Dimension Doodle 2
ShopVac Nozzle Caddy – Dimension Doodle 2

In retrospect, the inserts would make more sense.

The angle doodles convinced me not to bother modeling either the slot’s taper along its length or its mold draft.

Kinda looks like it grew there and makes one wonder why they don’t include a caddy as a standard option.

The OpenSCAD source code as a GitHub Gist:

// ShopVac Nozzle Caddy
// Ed Nisley KE4ZNU 2022-02
Layout = "Show"; // [Handle,Block,Show,Build]
HandleOD = 20.0;
//- Extrusion parameters must match reality!
/* [Hidden] */
ThreadThick = 0.25;
ThreadWidth = 0.40;
HoleWindage = 0.2;
Protrusion = 0.1; // make holes end cleanly
inch = 25.4;
function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
ID = 0;
OD = 1;
// Dimensions
// Handle lies along X axis
Handle = [200,HandleOD,HandleOD]; // X = longer than anything else
WallThick = 5.0; // Thinnest printed wall
Screw = [4.0,7.0,25.0]; // M4 socket head cap screw
Washer = [4.5,9.0,0.8]; // M4 washer
Insert = [4.0,5.9,10.0]; // M4 brass insert
Block = [15.0,Handle.y + 4*WallThick + 2*Screw[ID],HandleOD + 2*WallThick]; // overall clamp block
echo(str("Block: ",Block));
Bosses = [[Block.x,9.5,13.0],[Block.x,15.0,9.0]];
ScrewOC = Handle.y + 2*WallThick + Screw[ID];
Kerf = 1.0; // cut through middle to apply compression
Gap = 1.25;
CornerRadius = Washer[OD]/2;
// 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(d=(FixDia + HoleWindage),h=Height,$fn=Sides);
// Shopvac handle
module Handle() {
// Clamp block
module ClampBlock(BossID=0) {
difference() {
union() {
for (i=[-1,1], j=[-1,1]) // rounded block
translate([i*(Block.x/2 - CornerRadius),j*(Block.y/2 - CornerRadius),-Block.z/2])
translate([0,0,-(Block.z/2 + Bosses[BossID].z/2 - Protrusion)])
for (j = [-1,1]) // screw holes
translate([0,j*ScrewOC/2,-(Block.z/2 + Protrusion)])
PolyCyl(Screw[ID],Block.z + 2*Protrusion,6);
translate([0,0,-(Handle.z/2 + Insert[LENGTH])])
// Splice block less handle bore
module ShapedBlock() {
difference() {
// Build them
if (Layout == "Handle")
if (Layout == "Block")
if (Layout == "Show") {
xofs = -((len(Bosses) - 1)/2 * Gap*Block.x);
for (i=[0:len(Bosses) - 1])
translate([xofs + i*Gap*Block.x,0,0])
if (Layout == "Build") {
yofs = -((len(Bosses) - 1)/2 * Gap*Block.y);
for (j=[0:len(Bosses) - 1])
translate([0,yofs + j*Gap*Block.y,0])

3 thoughts on “ShopVac Nozzle Caddy

  1. Some models did have a caddy for various accessories. The one I bought that is all plastic around 1995 has one. The other, the metal canister version like yours, does not. On a related note, I have a very long hose on the metal shop vac but found that has a reasonable limit until a death ray resonant frequency is hit. I reduced the length and it went away. I was not going to chop the hose down 1″ at a time to find the magic length but rather just removed the last 8′ segment, leaving it around 20′.

    1. Never triggered the Organ Pipe of Doom, but I can see why it would happen in a hose that long.

      I just vacuumed half an inch of creosote granules from the bottom of the basement fireplace, under the (closed) damper and behind the steel plate sealing the front, neither of which have moved in nigh onto quarter century. Given that we had the flues cleaned before closing off both fireplaces, I have no idea where the granules came from or how they distributed themselves so evenly across the bottom. Really glad I got bags for the Greatest ShopVac, though, because I absolutely do not want to mess with that stuff ever again.

      1. It was painfully loud and even though I was using it indoors, I could picture people covering their ears miles away like something out of a Farrelly brothers movie. I also use bags. I really can’t see turning a shop vac over to shake it out creating another mess. I have not dealt with creosote but I’m sure it was not fun.

Comments are closed.