With the pockets milled into the oak blocks, the next step is to insert a pair of comfy 3D printed finger grips:

Getting comfy required a bank shot off the familiar chord equation to find the radius of a much larger circle producing the proper depth between the known width. The recess then comes from subtracting a hotdog from a lozenge exactly filling the wood pocket.

A pair of grips takes just under two hours to print while requiring no attention, which I vastly prefer to tending the Sherline.
The wood pocket is 7 mm deep and the grips stand 6.5 mm tall, leaving just enough room for three blobs of acrylic adhesive to hold them together. After squishing the grips into their pockets, a pair of right angles aligned everything while the adhesive cured:

Mary asked for a longer weight for a place mat project, with a slightly narrower block to compensate for the additional length:

The grip and pocket were the same size, so it was just a matter of tweaking the block size and cutting more wood.
All in all, a quick project with satisfying results!
The OpenSCAD source code as a GitHub Gist:
| // Oak ironing weight finger grips | |
| // Ed Nisley KE4ZNU 2023-01 | |
| Layout = "Show"; // [Block,Grip,Show,Build] | |
| //- Extrusion parameters must match reality! | |
| /* [Hidden] */ | |
| ThreadThick = 0.25; | |
| ThreadWidth = 0.40; | |
| HoleWindage = 0.2; | |
| Protrusion = 0.1; // make holes end cleanly | |
| inch = 25.4; | |
| function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit); | |
| ID = 0; | |
| OD = 1; | |
| LENGTH = 2; | |
| //———- | |
| // Dimensions | |
| // Length along X axis | |
| Block = [250.0,50.0,39.0]; // overall wood block | |
| BlockRadius = 10.0; | |
| CornerRadius = 10.0; | |
| Kerf = 0.2; | |
| Socket = [160.0,25.0,6.5]; // raw recess into block | |
| SocketRadius = Socket.y/2; | |
| echo(Socket=Socket,SocketRadius=SocketRadius); | |
| WallThick = ThreadWidth; // Thinnest printed wall | |
| Clearance = 0.5; // between grip and recess | |
| GripBlock = Socket – [2*Clearance,2*Clearance,Clearance]; | |
| GripBlockRadius = SocketRadius – Clearance; | |
| echo(GripBlock=GripBlock); | |
| GripDepth = 5.0; // finger grip recess | |
| GripRecess = [GripBlock.x – 2*WallThick,GripBlock.y – 2*WallThick,GripDepth]; | |
| GripRecessRadius = GripBlockRadius – WallThick; | |
| echo(GripRecess=GripRecess,GripRecessRadius=GripRecessRadius); | |
| GripChordRadius = (pow(GripDepth,2) + pow(GripRecess.y,2)/4) / (2*GripDepth); | |
| echo(GripChordRadius=GripChordRadius); | |
| NumSides = 4*8; | |
| //———- | |
| // Shapes | |
| module WoodBlock() { | |
| difference() { | |
| hull() | |
| for (i=[-1,1], j=[-1,1]) // rounded block | |
| translate([i*(Block.x/2 – BlockRadius),j*(Block.y/2 – BlockRadius),-Block.z/2]) | |
| cylinder(r=BlockRadius,h=Block.z,$fn=NumSides); | |
| for (j=[-1,1]) // grip socket | |
| translate([0,j*(Block.y/2 + Protrusion),0]) | |
| rotate([j*90,0,0]) | |
| hull() { | |
| for (i=[-1,1]) | |
| translate([i*(Socket.x/2 – SocketRadius),(Socket.y/2 – SocketRadius),0]) | |
| cylinder(r=SocketRadius,h=Socket.z + Protrusion,$fn=NumSides); | |
| } | |
| cube([2*Block.x,2*Block.y,Kerf],center=true); | |
| } | |
| } | |
| module Grip() { | |
| difference() { | |
| hull() | |
| for (i=[-1,1]) // overall grip block | |
| translate([i*(GripBlock.x/2 – GripBlockRadius),0,0]) | |
| cylinder(r=GripBlockRadius,h=GripBlock.z,$fn=NumSides); | |
| hull() { | |
| for (i=[-1,1]) // grip recess | |
| translate([i*(GripBlock.x/2 – GripRecessRadius – WallThick), | |
| 0, | |
| GripChordRadius + GripBlock.z – GripDepth]) | |
| sphere(r=GripChordRadius,$fn=NumSides); | |
| } | |
| } | |
| } | |
| //———- | |
| // Build them | |
| if (Layout == "Block") | |
| WoodBlock(); | |
| if (Layout == "Grip") | |
| Grip(); | |
| if (Layout == "Show") { | |
| color("Brown") | |
| WoodBlock(); | |
| color("Silver") | |
| for (j=[-1,1]) | |
| translate([0,j*(Block.y/2 – GripBlock.z),0]) | |
| rotate([j*-90,0,0]) | |
| Grip(); | |
| } | |
| if (Layout == "Build") { | |
| for (i=[-1,1]) | |
| translate([i*(Block.y/2 – GripBlock.z),0,0]) | |
| rotate([0,0,90]) | |
| Grip(); | |
| } |