Samsung Quiet Jet Vacuum: Improved Floor Brush Strips

Those simple floor brush strips for the Samsung vacuum cleaner worked moderately well, but the urethane adhesive didn’t have enough grip on the plastic strips. Having just run out of that batch, I made up another set with slightly undercut holes:

Bushing Solid Model - better holes - bottom
Bushing Solid Model – better holes – bottom

That’s half a thread width on each side, just enough to give the adhesive something to grab. Such is the plan, anyway.

I taped the strips to a pair of credit cards (actually, flat cards without embossed characters), slathered a thin layer of urethane atop them, and laid on squares of the same wool fabric I used the last time:

Samsung vacuum floor strips - gluing
Samsung vacuum floor strips – gluing

Then I piled a steel block atop an aluminum slab on both arrays, fast forwarded a day, peeled and flexed and cut the strips apart:

Samsung floor brushes - glued
Samsung floor brushes – glued

The urethane foamed through the holes as I hoped and (seems to have) locked the fabric in place, at least well enough to withstand some experimental bending on the workbench.

Now, to see how they stand up to actual use…

The OpenSCAD source code:

// Samsung Vacuum cleaner nozzle floor strips
// Ed Nisley KE4ZNU January 2013
//  November 2013 - adapt to M2, enlarge holes

Layout = "Build";			// Show, Build

//- Extrusion parameters must match reality!
//  Print with +0 shells and 3 solid layers

ThreadThick = 0.25;
ThreadWidth = 0.4;

HoleWindage = 0.75;

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

Protrusion = 0.1;           // make holes end cleanly

//----------------------
// Dimensions

Body = [6.0,59.0,3*ThreadThick];	// width, length, thick

Tab1 = [4.5,5.0,0.0];				// width, length, offset from centerline
Tab2 = [3.5,5.0,0.5];

HoleOC = 8.0;						// adhesive anchoring holes
HoleDia = 2.0;
HoleSides = 4;
HoleMax = floor(Body[1]/(2*HoleOC));

echo("HoleMax: ",HoleMax);

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

}

module BackingStrip() {

	difference() {
		union() {
			translate([0,0,Body[2]/2])
			cube(Body,center=true);
			translate([Tab1[2],-1*Body[1]/2,Body[2]/2])
			cube([Tab1[0],2*Tab1[1],Body[2]],center=true);
			translate([Tab2[2],+1*Body[1]/2,Body[2]/2])
			cube([Tab2[0],2*Tab2[1],Body[2]],center=true);
		}
		for (i = [-HoleMax:HoleMax])
			translate([0,i*HoleOC,-Protrusion])
			rotate(45) {
				PolyCyl(HoleDia,(Body[2] + 2*Protrusion),HoleSides);
				PolyCyl((HoleDia + ThreadWidth),(ThreadThick + Protrusion),HoleSides);
			}
	}
}

//----------------------
// Build it!

ShowPegGrid();

if (Layout == "Show")
	BackingStrip();

if (Layout == "Build")
	rotate(90) BackingStrip();