Doorknob Lever Adapter
A clamp-on adapter that turns a round doorknob into a lever handle, so the door can be opened by pressing down instead of gripping and twisting - helpful for weak hands, children, or when your hands are full. A split ring clamps around the knob and is tightened with an M4 bolt (M4 x 18-20) through two ears, with a counterbore for the head and a hex nut trap on the other side. Measure your knob and enter its diameter; a thin rubber liner inside the ring is recommended for grip. The default version for a 55 mm knob measures 158 x 66 x 15 mm. Print it flat with no supports, in PETG or PLA with 4 walls and 40% or more infill. Adjustable parameters: knob diameter, liner allowance, lever length, ring height and ring wall thickness.
# Doorknob Lever Adapter - turns a round knob into a lever (split clamp + M4 bolt and nut)
# Lets you open the door just by pressing the lever down, even with a weak grip
@param 40..75..0.5 desc:"Maximum knob diameter (mm, 55 assumed - measure yours)"
knob_d = 55
@param 0..2..0.1 desc:"Radial allowance for a rubber liner (mm)"
liner = 1.0
@param 60..160 desc:"Lever length (knob center to tip, mm)"
lever_l = 110
@param 10..30 desc:"Clamp ring height (along the knob axis, mm)"
ring_h = 15
@param 3..8..0.5 desc:"Clamp ring wall thickness (mm)"
wall = 5
# Lever
arm_w = 20
arm_t = 12
# M4 (clearance hole 4.5 / nut 7 across flats / head 7 dia -> counterbore 8.5 dia)
bolt_r = 2.25
nut_af = 7 + 0.3
nut_r = nut_af / sqrt(3) # hexagon circumradius
nut_depth = 3.5
head_r = 4.25
head_depth = 3
gap = 3 # split gap (closes when tightened)
ear_t = 9 # thickness of one ear (Y)
ear_len = 15 # ear projection (X)
Ri = knob_d / 2 + liner / 2
Ro = Ri + wall
xb = -(Ro + 7) # X of the bolt axis
ey = gap / 2 + ear_t # Y of the ears' outer faces
def rr(w, h, r) = rect (w - 2 * r) (h - 2 * r) | offset r
# Ring + ears (2D), extruded
ring2d = (circle Ro) + (rect (ear_len + 3) (ey * 2) at:(-(Ro + ear_len / 2 - 1.5), 0))
clamp = ring2d | extrude ring_h
# Lever. Starts at the knob center (the part inside the ring is removed with the bore), rounded tip
arm = rr(lever_l, arm_w, arm_w / 2 - 0.5) | extrude arm_t | translate (lever_l / 2) 0 0
# Cuts: bore, split, bolt hole, counterbore, nut trap
bore = cylinder Ri (ring_h + 2) at:(0, 0, (ring_h / 2))
slit = box (ear_len + wall + 4) gap (ring_h + 2) at:(-(Ri + (ear_len + wall + 4) / 2 - 1), 0, (ring_h / 2))
bolt = cylinder bolt_r (ey * 2 + 2) | rotate 90 0 0 | translate xb 0 (ring_h / 2)
head = cylinder head_r (head_depth + 1) | rotate 90 0 0 | translate xb (ey - head_depth / 2 + 0.5) (ring_h / 2)
nut = polygon 6 nut_r | rotate 30 | extrude (nut_depth + 1) | rotate 90 0 0 | translate xb (-ey + nut_depth) (ring_h / 2)
body = clamp + arm
body - [bore, slit, bolt, head, nut]