-
Outlet Strip Bench Mount
A spate of tidying-up led to mounting an outlet strip along the back of a bench:

Outlet Bench Mount – installed Rather than drill holes into the top of the bench for those screws, they fit into M4 brass inserts heat-staked into the brackets:

Outlet Bench Mount – show view The holes for those inserts aren’t centered side-to-side on the brackets, because the screw holes aren’t centered on the bent-steel angles forming the outlet strip endplates.
The bottom arm on the brackets probably isn’t necessary, but they kept the outlet strip from crawling away while I match-drilled two holes for the screws into the side of the benchtop.
For obvious reasons, the brackets print on their sides:

Outlet Bench Mount – build view Another outlet strip from a different manufacturer is, of course, different, but changing three parameters in the OpenSCAD program summons a different bracket from the vasty digital deep:

Outlet Bench Mount – different brand Parametric modeling and a 3D printer are exactly the right hammers for the job …
The OpenSCAD source code as a GitHub Gist:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters// Shower soap dish // Ed Nisley – KE4ZNU // 2026-06-04 include <BOSL2/std.scad> Layout = "Show"; // [Show,Build] /* [Hidden] */ HoleWindage = 0.2; Protrusion = 0.1; NumSides = 3*3*4; Gap = 10.0/2; $fn=NumSides; ID = 0; OD = 1; LENGTH = 2; BenchThick = 21.0; // workbench top ScrewOD = 4.0; // into edge of bench Insert = [4.0,5.5,10.0]; // robust M4 insert WallThick = 10.0; BaseThick = 10.0; OutletBase = [15.0,40.0]; HoleOffset = 6.5; // from outside edge of bracket HoleOC = 24.0; MountOA = [OutletBase.x,OutletBase.y,BenchThick + Insert[LENGTH] + 1.0 + BaseThick]; //———- // Build it module Mount() { difference() { cuboid(MountOA,rounding=1.0,anchor=BOTTOM + BACK); up(BaseThick) fwd(WallThick) cuboid([2*MountOA.x,MountOA.y,BenchThick],anchor=BOTTOM + BACK); up(BaseThick + BenchThick/2) back(Protrusion) ycyl(OutletBase.y,d=ScrewOD,circum=true,$fn=6,anchor=BACK); for (j=[-1,1]) fwd(MountOA.y/2 + j*HoleOC/2) right(HoleOffset – MountOA.x/2) up(MountOA.z + Protrusion) cyl(Insert[LENGTH],d=Insert[OD],circum=true,$fn=6,anchor=TOP); } } //———- // Build it if (Layout == "Show") { left(Gap + MountOA.x/2) Mount(); right(Gap + MountOA.x/2) xflip() Mount(); // mirror for the other end of the outlet strip } if (Layout == "Build") { left(MountOA.z/2) up(MountOA.x/2) yrot(90) Mount(); fwd(1.5*MountOA.y) left(MountOA.z/2 – BenchThick/2 – Insert[LENGTH]/2) zrot(180) up(MountOA.x/2) yrot(-90) xflip() Mount(); // mirror for the other end of the outlet strip }