-
Metal Spring Clamp: TPU Jaw Pads
Setting up the Makergear M2 to print TPU (eSun 95A) involved a cold pull to get the remaining PETG out of the nozzle, some manual flushing, then printing test cubes to figure out a reasonable speed / temperature combination:

Makergear M2 – first TPU test cube A 10 mm solid cube came out overstuffed and the first 20 mm cube lacked enough infill to hold its top up, but the third cube looked surprisingly good at 230 °C and 30 mm/s with 15% 3D Honeycomb infill:

Makergear M2 – TPU test cubes With that settled, I conjured pairs of soft (-ish) jaw pads for the far-too-many metal spring clamps having worn out their vinyl pads:

Spring clamp jaws – installed Those were the first attempt and worked well enough to suggest nicely rounded endcaps instead of flat cylinders:

Spring Clamp Jaws – show view Unlike the first version, they now build standing on their rectangular clamp jaw opening:

Spring Clamp Jaws – show view Those two groups have different lengths (1 inch and 1-⅛ inch) with PrusaSlicer combining the OpenSCAD program’s output.
The as-built pads are essentially un-photographable:

Spring clamp jaws – group build TPU is tough enough to make the single-layer brim un-tearable, but they’re easy enough to separate & trim with scissors. Even the 5 mm brim has a tenuous grip on glass + Suave hair “spray” applied from a dropper bottle, so I should try a BuildTak sheet that’s been on the to-do pile for far too many years.
Similarly, TPU is flexy enough to make a precise fit unnecessary: push firmly to force the pads onto the jaws and you’re done.
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// Spring clamp replacement jaw pad // Ed Nisley – KE4ZNU // 2025-04-26 include <BOSL2/std.scad> Layout = "Show"; // [Show,Build,Clamp] Ends = "Round"; // [Flat,Round] Sets = 1; /* [Hidden] */ HoleWindage = 0.2; Protrusion = 0.1; NumSides = 2*3*4; WallThick = 2.0; CushionOD = 10.0; CushionStem = 10.0; JawAngle = 60/2; // just for Show JawWidth = 1.000*INCH; // clamps are hard-inch sizes: 1.0 and 1.125 Jaw = [1.5,50,JawWidth]; // roughly one jaw Gap = 2.0; $fn = 2*3*4; //———- // Define objects //—– // Clamp jaw module Clamp() { up(WallThick) cuboid(Jaw,anchor=BOTTOM+BACK); } module Pad() { difference() { union() { cyl(d=CushionOD,h=Jaw.z + 2*WallThick,anchor=BOTTOM, rounding = (Ends == "Flat") ? 0 : CushionOD/2); cuboid([Jaw.x + 2*WallThick,CushionStem,Jaw.z + 2*WallThick], rounding=WallThick/2,anchor=BOTTOM+BACK); } Clamp(); } } //———- // Build things if (Layout == "Clamp") { Clamp(); } if (Layout == "Show") { for (i = [-1,1]) right(i*(CushionOD + Gap)/2) zrot(i*JawAngle) { Pad(); color("Silver",0.5) Clamp(); } } if (Layout == "Build") { for (n = [0:(Sets – 1)]) for (i = [-1,1]) right(i*((CushionOD + Gap)/2 + n*(CushionOD + Gap))) up(CushionStem) back(Jaw.z/2) xrot(90) Pad(); }