Three Prints That Would Not Fit: a Dog-Grooming Block and the Rule I Ended Up With
A dog groomer in the Algarve wrote to me on WhatsApp with a very clear brief. A block for a dog to stand on while being groomed: 6 by 6 cm on top, 8 by 8 cm at the base, 10 cm tall. A spot on top for a non-slip pad. And a lid about 2 cm below the top, so they could fill it with sand after it arrived, because shipping a heavy block across the country costs more than shipping an empty one and a bag of sand from the local hardware shop costs almost nothing.
I liked the brief. It was specific, it had a reason for every line, and it was the kind of object nobody sells.
This is the story of how the lid refused to go on three times, and what I learned from being wrong three times in a row.
The design
Two printed parts that press together. No glue, no screws.
The base is the bottom 8 cm: a hollow shell, open at the top, with room inside for roughly 300 cm³ of sand. Around the opening stands a square boss. The cap is the top 2 cm, with a square socket underneath that slides down over that boss, and a shallow recess on top sized for the non-slip pad.
Assembled, the two read as one continuous taper from 8 by 8 to 6 by 6. The split line sits at the joint and disappears once the cap is seated.
Walls and floors are 4 mm throughout. This is a thing a dog stands on, not a decoration.
The question the customer asked
Before I printed anything, the customer asked a good question: if the block tips over with a dog on it, can a plain press-fit lid pop open? They suggested a round section with a threaded cap instead.
I thought about the actual failure. A deep square socket already resists sideways shear well, and it cannot rotate at all, which a round peg can. The real risk is different: if the block lands cap-first, the loose sand inside hammers the cap from within.
A thread would defend against that, but it costs more than it buys. It gives up the square's built-in anti-rotation lock, and threads are known to work themselves loose under repeated shock. It also needs a test-and-tune loop that a one-off order does not have. And it would abandon the customer's own spec, which said square top and square bottom.
So I stayed square, made the boss engage deeper (from 10 mm to 13 mm), and added two small snap ridges up the sides of the boss. Two rather than one: if a print defect spoils one, the other still holds. Each ridge has a gentle entry ramp so the cap presses on easily, and a steeper retention face so it resists coming off. That retention face is kept just under 45 degrees on purpose, so it prints cleanly with no supports. A steeper barb grips harder on paper and rounds off in practice.
Print one: the cap did not seat
The first pair came off the printer looking right. The cap went most of the way down and stopped.
Sharp 90-degree corners are the usual suspect on a square fit. A printer slows at every direction change and leaves a little extra material in the corner, so the boss comes out slightly fat exactly where the socket is slightly tight. A round peg would find its way past that; a square one cannot rotate to look for room.
Fix: a 3 mm radius on every mating corner, the same radius on both parts so the gap stays even around the corners as well as the flats, and a little more clearance per side.
Print two: the cap would not go on at all
I overcorrected. I carried the snap-ridge interference forward at the earlier value without checking it by hand, and two ridges that tight, close together, jammed the assembly outright. Not tight. Jammed.
Fix: halved the interference on each ridge and spread the two ridges further apart.
Print three: still would not seat
At this point I stopped adjusting and measured.
Off the exported model, the boss was 58.00 mm across and the socket 58.90 mm. But at the height of the two ridges, the boss measured 59.20 mm. The boss was wider than the hole. Not tight. Wider. Both earlier fixes had tuned how much the ridges stuck out past the bore. The honest answer was that any amount was too much.
The rule I ended up with
The ridge peak lands exactly on the bore. Never past it. Zero modelled interference.
That sounds like giving up the grip, and it is not. The grip comes from where it should have come from all along: the printer. A printed boss runs a touch over nominal and a printed bore a touch under, so the ridges press in and the retention faces hold, without the model demanding that a rigid closed square socket stretch to let the cap on.
One more thing I fixed, and it is the part I keep thinking about. My own checks had been passing every time. The build script asserted that the interference existed, and the fit-check script printed FAIL when it found none. Both were written to prove the ridges were there. So "fit check: PASS" had been certifying the jam on every run.
I test software for a living. I know this one. A check is only worth what its premise is worth. Both scripts now assert the opposite, and the fit check raycasts the exported parts to confirm the boss is never wider than the hole.
What shipped
Print four seated first time.

It went to the Algarve empty, as planned, to be filled with sand on arrival. The customer's message the day after it arrived: "the pieces turned out excellent. I really liked them, it's very good, super professional work. I recommend you without a doubt." They added that once they post a photo with it, people will certainly ask where it was made.
Two parts, no supports on either. The base prints as it is, floor down. The cap prints upside down, pad-recess to the bed, so both blind features open upward and nothing has to bridge. A small bonus: the recess floor ends up on the smooth bed-contact surface, which takes glue better than a top layer would.
Why I am telling you this
Because this is what "tested before it ships" actually looks like from the inside. Not a stamp on a listing. Three prints on a table, a ruler, a wrong assumption found and written down so it does not come back.
If you have a part that nobody makes any more, or an object that exists only as a description in a WhatsApp message, this is the process it goes through. I wrote up the general version in how I reverse-engineer a broken part and the overview in the custom 3D-printing guide. If you want something made, the shortest route is a message with the measurements and the reason. The reason matters more than people expect. It is how I knew a thread was the wrong answer.
Dr3amToReal, Aveiro. Not a print farm.