OpenSCAD render of the shower-head holder: a cuff for the shower rail with a cradle for the head

Shower-head holder for the rail

A second shower-head holder for the Grohe rail — so nobody has to readjust the other person's holder. With a bonus hook for the soap bag.

Article complete (.zip)

“Article complete” gives you the OpenSCAD source as ready .scad files plus a printable copy — a CARECOM.united member benefit. Membership is free and non-binding. About membership →

OpenSCAD render of the shower-head holder

This part sits on top of our Grohe shower rail and holds the shower head while I shower. I'm a bit taller than my wife and always had to stoop a little — even with the other holder pushed all the way up. Now everyone has their own holder and all is well! ;)

By the way, the pin on the left of the image is a hook for my wife's soap bag. For a bonus point in married life.

How the holder is built

At its core a clamp that grips over the rail, plus an angled cradle for the shower head — all in a single difference():

  • The body is a cylinder of outer diameter b + 2*a (rail diameter plus twice the wall thickness); the rail itself (b) is cut out of the middle, so the holder clamps onto the shower rail.
  • Across it sits the arm, into which an angled cone (cylinder(d1=18, d2=24)) and a large cylinder (d=40) cut the cradle for the shower head; the final cube cut trims the underside cleanly.
  • The leading # on #cylinder(h=14, d=6) highlights the small hook (for the soap bag) in the preview — handy for keeping one detail in view while editing.
// wall thickness
a = 7;

// diameter shower pole
b = 23;

// height shower pole adapter
c = 38;

$fn=80;


translate([-35,0,28])
#cylinder(h=14,d=6);

difference() {
    union() {
        cylinder(d=b+2*a, h=c);

        translate([-c/2-22,0,(b+2*a)/2])
        rotate([0,90,0])
        cylinder(d=b+2*a, h=c*2-14+22);

    }

    cylinder(d=b, h=c);

    translate([b+2*a,c/2-9,0])
    rotate([28,0,0])
    cylinder(d1=18,d2=24,h=b+2*a+8);

    translate([0,-(b+2*a)/2-1,0])
    rotate([0,90,90])
    cylinder(d=40, h=b+2*a+2);

    translate([-55,-20,20])
    rotate([0,-30,0])
    cube([40,40,40]);
}

Adapting it

The clamp is the part that adapts: set b to the diameter of your own rail, and a (wall thickness) for more or less clamping force. The cradle itself is shaped for a standard round shower head.

An unhandled error has occurred. Reload 🗙

Rejoining the server…

Rejoin failed… trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.