High Impact Art: Smashed Glass Coaster

Given a few pounds of smashed tempered glass:

NHR Crash - tempered glass
NHR Crash – tempered glass

Lay some pieces atop an acetate sheet (to prevent scratching) on the scanner, grab the whole thing, then isolate an interesting chunk:

Smashed Glass - dark - piece 1
Smashed Glass – dark – piece 1

Next time: flip the image left-to-right to match the glass piece as seen from the top, because the scanner was looking at the bottom.

The weird purple background started as black, but blowing out the contrast while ignoring the color mis-correction makes the next step easier.

Trace around the perimeter with Scissors Select, clean up the result in Quick Mask mode, expand the selection by a few pixels to improve clearance, then turn it into a two-color image mask:

Smashed Glass - piece 1 - outline
Smashed Glass – piece 1 – outline

Import the mask into Lightburn, trace it into vector paths (which is trivially easy and accurate given such a high-contrast image), then cut a chipboard prototype to make sure it fits:

Smashed Glass - piece 1 - acrylic mount
Smashed Glass – piece 1 – acrylic mount

Clean up any misfits, test as needed, cut the inner shape and outer perimeter from 1.5 mm black acrylic, cut just the outer perimeter from 3 mm clear acrylic. Put the piece of black acrylic matching the glass shape into the scrap box.

Mix up a few milliliters of clear pourable epoxy, butter up the clear acrylic, lay the black acrylic on top, line up the edges, then gently place the shattered glass into the cutout:

Smashed Glass - piece 1 - acrylic top
Smashed Glass – piece 1 – acrylic top

Next time: apply gentle pressure, perhaps through a flexy sheet, to ensure the entire glass surface contacts the epoxy layer while squeezing out the bubbles. This will surely skate the glass across the acrylic, so don’t leave it unsupervised.

The relatively clear areas show where epoxy eased its way into the cracks between the granules; there is no correlation between the air bubbles and unfilled cracks. The epoxy had the viscosity of warm honey and I didn’t expect it to flow so easily, but it doesn’t affect the outcome.

Wait for a day, no matter how hard that may seem, for the epoxy to cure. Leave the small cup holding the remnants of the mixed epoxy nearby so you can test the cure without disturbing the Main Event.

The bottom looks pretty much like the top:

Smashed Glass - piece 1 - acrylic bottom
Smashed Glass – piece 1 – acrylic bottom

The shattered edge reflects off the bottom of the clear acrylic, as seen through the side:

Smashed Glass - piece 1 - acrylic side
Smashed Glass – piece 1 – acrylic side

Matching the perimeter to the fragment would be interesting, despite my low-vertex-polygon fixation.

It could become a paperweight or a (shot glass) coaster.

High Impact Art(ifact)

At first we thought a mighty crunch in the morning meant the trash collection truck had dropped a garbage bin from a great height, but the sound of sirens and a myriad flashing lights revealed the true cause in our neighbor’s front yard:

NHR Crash - frontal view
NHR Crash – frontal view

The extent of the damage was more apparent from the road side:

NHR Crash - passenger side
NHR Crash – passenger side

Another one that ain’t gonna buff right out.

The driver was walking around uninjured and the ambulance left quietly.

A day later, the trajectory became apparent:

NHR Crash - trajectory
NHR Crash – trajectory

The right side barely kissed the tree on the right, but the front wheel hooked the utility pole (that’s the new pole in the picture), snapped it off at ground level in addition to the usual break maybe ten feet up, and bounced a piece off the other tree:

NHR Crash - utility pole
NHR Crash – utility pole

I didn’t know you could shatter a cast aluminum alloy wheel, but the missing half of the outer face was lying amid the rather scrambled stone wall along driveway.

We’re reasonably sure we know the cause. Feel free to draw your own conclusions.

After the flatbed hauled away the car and everybody left, I harvested a few pounds of interesting debris from the lawn:

NHR Crash - tempered glass
NHR Crash – tempered glass

It’s tempered glass from the driver-side windows, shattered into small chunks and barely hanging together in those sheets. Laminated windshield glass is entirely different stuff.

The smaller chunks glitter like jewels:

NHR Crash - tempered glass fragments
NHR Crash – tempered glass fragments

Obviously, the window had a bit of tint.

The smallest chunk, seen from its flat surface, shows the cuboid fragments:

NHR Crash - tempered glass fragment - front
NHR Crash – tempered glass fragment – front

A side view shows more complexity:

NHR Crash - tempered glass fragment - side
NHR Crash – tempered glass fragment – side

Tempering prevents a glass sheet from shattering into long knife-blade shards. Although the edges of the fragments are not keen, we are dealing with broken glass: they are sharp.

How sharp? They make glass knives for slicing eyes and cells.

Broken tempered glass also sheds razor-edged flakes perfectly shaped to penetrate bike tires, although most roadside glass comes from ordinary beverage bottles. The tiniest flakes can make a mess of your eyes, so exercise at least some rudimentary shop safety practices.

Those slabs ought to be good for something, even if they fall apart at the slightest touch …

Please Close The Gate Signage: Painted

It seems two months of sunlight will fade laser charred MDF down to its original state:

Please Close The Gate - unpainted faded
Please Close The Gate – unpainted faded

That’s through a thick layer of indoor urethane sealant slathered over MDF without any surface prep. Obviously, not removing the char had no effect on the outcome. On the upside, the urethane did a great job of protecting the MDF from rainfall.

So. Back to the shop.

Lacking wider masking tape, two strips of tape laid along a cut-to-suit slab of fresh MDF will serve as a paint mask:

Please Close The Gate - masked engraving
Please Close The Gate – masked engraving

Belatedly I Learned: cut the tape close to the edge, then fold it under so the autofocus pen can’t possibly snag it en passant.

Shoot the entire surface with a couple of black enamel rattlecan coats:

Please Close The Gate - masked paint
Please Close The Gate – masked paint

Yes, the engraved areas look reddish, most likely due to another complete lack of surface prep. Perhaps brushing / vacuuming / washing would remove some of the char, but let’s see how it behaves with no further attention.

Peel the tape, weed the letters / antlers, slather on a coat of urethane, and it looks downright bold:

Please Close The Gate - sealed
Please Close The Gate – sealed

Of course, if those two tape strips don’t exactly abut, the paint produces a nasty line:

Please Close The Gate - mask gap
Please Close The Gate – mask gap

Should you overlap the strips a wee bit to ensure cleanliness, the engraved surface will then have a noticeable (in person, anyhow) discontinuity due to the laser losing energy in two tape layers, which wouldn’t matter in this application. We defined the few paint lines as Good Enough™ for the purpose; a strip of absurdly wide masking tape is now on hand in anticipation of future need.

Burnishing the tape might have prevented paint bleed around the engraved areas:

Please Close The Gate - paint creep
Please Close The Gate – paint creep

But, given that I was painting raw / unfinished MDF with an unsmooth surface, burnishing probably wouldn’t produce a significantly better outcome.

By popular request, the new signs sit a few grids lower on the gates:

Please Close The Gate - fresh painted
Please Close The Gate – fresh painted

Perhaps these will outlast the garden season …

OMTech 60 W Laser: Air Assist Pump Filter

The air assist pump sits in the right rear of the OMTech laser’s main compartment:

OMTech 60W laser - Z motor - air pump
OMTech 60W laser – Z motor – air pump

Where it is, of course, exposed to all the usual dust / fragments / fumes / smoke generated by laser cutting & engraving, enhanced by my attention to getting good air flow over the platform. The picture shows the base plate in as-delivered condition, which it will never resemble ever again.

The problem: any crud in the air can clog the pump or contaminate the laser focus lens.

Four screws into threaded holes hold the pump to the base plate, secured with jam nuts on the outside.

The air inlet is a round fitting centered on the bottom of the pump housing:

OMTech 60 W Laser Air Assist - pump inlet
OMTech 60 W Laser Air Assist – pump inlet

You’ll note the out-of-focus crud scattered on the base plate.

The general idea is to drill a hole through the base plate, put a snorkel on the inlet, and have it inhale fresh, relatively clean, basement air from outside the cabinet. The trick will be not touching the base plate with anything solid, because the pump vibrates like crazy; its four squishy standoffs do a great job of isolating the tremors from the base screwed to the laser cabinet.

Having a few other things going on at the moment, I just laid two generous wads of cheesecloth where they can filter the bigger chunks out of the air stream:

OMTech 60 W Laser Air Assist - cheesecloth filter installed
OMTech 60 W Laser Air Assist – cheesecloth filter installed

The air flow meter says the pump still delivers 12 l/m to the nozzle, so the cheesecloth has no effect compared to four or five feet of 4 mm ID tubing.

A doodle summarizes the inlet fitting dimensions:

OMTech 60 W Laser Air Assist - pump inlet fitting measurements
OMTech 60 W Laser Air Assist – pump inlet fitting measurements

That looks like a 3D printed disk with a snout for a short air hose should do the trick, with a thin gasket sealing the disk to the fitting.

Now I can throw that piece of paper out …

Replacement Muntin Clips

Terminology I had to look up:

  • Window: something in a wall you can see through
  • Sash: a sliding panel in a window
  • Mullion: vertical post separating two windows
  • Muntin: strips separating glass panes in a sash

TIL: Muntin, which I’d always known was called a Mullion.

With that as preface, one of Mary’s quilting cronies lives in a very old house updated with vinyl windows sporting wood muntins arranged in a grille. The wood strips forming the grille end in plastic clips that snap into the sash, thereby holding the grill in place to make the window look more-or-less historically correct, while not being a dead loss as far as winter heating goes.

Time passed, sun-drenched plastic became brittle, and eventually enough clips broke that the grilles fell out. An afternoon quilting bee produced a question about the possibility of making a 3D printed clip, as the original manufacturer is either defunct or no longer offers that particular style of clip as a replacement part.

Well, I can do that:

Window Muntin Clips
Window Muntin Clips

The original is (obviously) the transparent injection-molded part in the upper left. The other two come hot off the M2’s platform, with the one on the right showing the support material under the sash pin.

The solid model looks about like you’d expect:

Window Muntin Clip - solid model
Window Muntin Clip – solid model

There is obviously no way to build it without support material, so I painted the bottom facet of the sash pin with a PrusaSlicer support enforcer:

Window Muntin Clip - PrusaSlicer
Window Muntin Clip – PrusaSlicer

The pin comes out slightly elongated top-to-bottom, but it’s still within the tolerances of the original part and ought to pop right into the sash. We’ll know how well it works shortly after the next quilting bee.

The doodle with useful measurements amid some ideas that did not work out:

Window Muntin Clip - Dimension Doodle
Window Muntin Clip – Dimension Doodle

The OpenSCAD source code as a GitHub Gist:

// Window Muntin Clips
// Ed Nisley KE4ZNU June 2022
Layout = "Show"; // [Build, Show]
/* [Hidden] */
ThreadThick = 0.25;
ThreadWidth = 0.40;
HoleWindage = 0.2;
Protrusion = 0.1; // make holes end cleanly
inch = 25.4;
ID = 0;
OD = 1;
function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
// Dimensions
ClipOA = [13.0,18.7,8.0];
TongueAngle = 70;
TongueOA = [14.0,10.0,1.8 - 0.2]; // minus Z windage for angular slices
BuildGap = 5.0;
// Useful routines
module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes
Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
FixDia = Dia / cos(180/Sides);
cylinder(r=(FixDia + HoleWindage)/2,
// Pieces
module Shell() {
// Clip base as 2D polygon
// Magic numbers from measurements
cx = ClipOA.x;
cy = ClipOA.y;
cz = ClipOA.z;
ClipPts = [
difference() {
translate([-(ClipOA.x - 3.0/2 + Protrusion),0,0])
cube([3.0 + Protrusion,ClipOA.y - 2*1.3,4*1.6],center=true);
module Tongue() {
tx = TongueOA.x;
ty = TongueOA.y;
tz = TongueOA.z;
tt = ty - 2*sqrt(2)*tz; // width at top of tapers
td = ThreadWidth; // min size of features
intersection() {
rotate([0,-TongueAngle,0]) {
difference() {
union() {
hull() {
for (j=[-1,1]) {
translate([td/2,j*(ty - td)/2,td/2])
translate([td/2,j*(tt - td)/2,tz - td/2])
translate([10.0,0,tz - td/2])
if (false)
translate([10.0,0,-10]) // stiffening hole
module Clip() {
// Build it
if (Layout == "Show") {
if (Layout == "Build") {

Kenmore HE3 Washer: End of Life

After eighteen years and one basket / tub replacement, our venerable Kenmore HE3 clothes washer has reached End of Life:

  • Kenmore washer - eroded tub A
  • Kenmore washer - eroded tub B
  • Kenmore washer - eroded tub C

I had looked in there (between the door gasket and the tub) to find any foreign objects making the horrible noise and again, perhaps a week later, when I replaced the shock absorbers, after which the corroded spider in the back finally broke enough to let the basket flop around continuously during the spin cycle and erode the tub rim.

In round numbers, we heard the first sign of trouble three weeks ago: a very loud, but only occasional, KLONK due to protrusions on the side of the basket or the fractured part of the spider on its back hitting indentations in the tub. The KLONK remained intermittent during half a dozen loads, until it became pretty much continuous.

We installed the washer in early 2004, replaced the tub and basket in 2010, and it’s now 2022: the first spider failed after six years and its replacement lasted twelve. After nearly two decades, the tub and basket are no longer available from the usual appliance part sources, so (even if I wanted to) I cannot repair the washer.

Another washer, also a front-loader, also highly rated, will arrive shortly. For the first time ever, we bought an Extended Service Plan good for five years. The alert reader will note the difference between the first failure and the length of the plan, but reviews of similar new machines suggest having Lemon Replacement coverage. In this situation, I am willing to pay for the talismanic effect of coverage that may never pay off, if that makes any sense.

Kenmore HE3 Washer Shock Absorber Shims

As part of diagnosing a Terrible Sound inside our two decade old washer, I replaced the OEM shock absorber struts with cheap knockoffs. Although it didn’t solve the problem (spoiler: another tub spider bites the dust), the experience may come in handy elsewhere.

The left rear (as seen from the front) shock stood in a pile of rust on the baseplate that came from a drip in the water feed nozzle to the detergent / bleach / whatever dispenser drawer. The affected parts are no longer available and I have never had any luck finding a replacement O-ring of the proper size, so I just pulled the nozzle out, ran a small bead of acrylic sealant around the O-ring, and squished it back in place:

Kenmore washer - dispenser nozzle seal
Kenmore washer – dispenser nozzle seal

It’s the Y connection between the two black hoses, held in place on the dispenser by a relentless little clip. Release the two hose clamps, remove the hoses, pull it out, apply sealant, squish, reinstall in reverse order.

As for the shocks, don a pair of work gloves and turn the upper mount (on the tub) counterclockwise as you look along the shock. The tub has molded-in latches that make turning it the wrong way difficult, but not impossible.

With the shock loose, you can now try to turn the lower mounts counterclockwise as you look along the shock, but I had to deploy the BFW in very cramped quarters to get enough traction. This will likely wreck the little latches holding the mount in place, but you were going to replace it anyway.

The new left-rear latch snapped firmly into place:

Kenmore washer shock - left rear
Kenmore washer shock – left rear

Yes, that’s after I cleaned off as much of the rust as made sense.

The remaining three latches did not snap firmly into place, so I made shims to soak up the slop:

Kenmore washer shock - shim laser cut
Kenmore washer shock – shim laser cut

They slip around the central pillar with clearance for the latches, although the thicker shim didn’t leave much engagement:

Kenmore washer shock - shim installed
Kenmore washer shock – shim installed

They ranged from 0.8 mm down to 0.2, based entirely on feel, and I used PETG, LDPE, and polypropylene clamshell of the right thickness.

The left front got the thickest:

Kenmore washer shock - left front
Kenmore washer shock – left front

Right front thinnest:

Kenmore washer shock - right front
Kenmore washer shock – right front

And right rear in the middle:

Kenmore washer shock - right rear
Kenmore washer shock – right rear

The shims aren’t precisely lined up with the feet, because I couldn’t make that work out, but they definitely prevented the mounts from shaking in their boots during the spin cycle.

You will inevitably want to take the mounts off the shocks, which will prove surprisingly difficult. The two halves are identical, with triangular latches that snap together with no provision for release:

Kenmore washer shock - foot internals
Kenmore washer shock – foot internals

Brute force applied with a small screwdriver may suffice, but don’t be surprised if strong words are required.