The Smell of Molten Projects in the Morning

Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.

Category: Software

General-purpose computers doing something specific

  • LightBurn Slot Resizing

    LightBurn Slot Resizing

    LightBurn includes a Slot & Tab Resizer tool that automagically finds and resizes joints to adapt a design for whatever material thickness you might be using. To judge from the LightBurn forum threads, it doesn’t deal well with random designs fetched from the Interwebs, which suggests those designs were either never intended for laser cuttery or just badly laid out.

    So I fetched a sheep from a typical sketchy source and attempted to resize its slots:

    Sheep DXF import - slot resize problem
    Sheep DXF import – slot resize problem

    The tool looks for rectangular shapes within the Tolerance of the Old Material Thickness width, then marks their narrow ends with red highlights and their length with blue. Obviously, not all of the slots we humans see count as slots.

    A closer look at one of the body shapes with a slightly larger Tolerance shows some of the problems:

    Sheep DXF import - body
    Sheep DXF import – body

    Using the Node Editor tool reveals two stray nodes near the bottom of the second slot from the left:

    Sheep DXF import - slots
    Sheep DXF import – slots

    Zooming in and blowing out the contrast:

    Sheep DXF import - slot bottom
    Sheep DXF import – slot bottom

    Manually deleting those nodes doesn’t solve the problem, because two more errant nodes lurk at the top of the slot:

    Sheep DXF import - slot top
    Sheep DXF import – slot top

    You probably didn’t notice those at first glance, either. Those nodes may be very close together, but they still confuse the issue.

    Rather than tracking down and deleting / adjusting those nodes one by one, you can apply the Optimize Shapes tool to squash the superfluous nodes into straight lines:

    Sheep DXF import - optimized
    Sheep DXF import – optimized

    Don’t smooth the shapes or fit them to arcs at this point, because both of those operations will round off the corners.

    That may still leave a few nodes requiring manual intervention, as on the face shape:

    Sheep DXF import - optimized leftover
    Sheep DXF import – optimized leftover

    But at least the problem becomes tractable:

    Sheep and dinosaur flock
    Sheep and dinosaur flock

    As the Bard put it, all’s well that ends well.

  • CUPS vs. HP Jetdirect 175x: Admitting Defeat

    CUPS vs. HP Jetdirect 175x: Admitting Defeat

    For several decades, a succession of PCs in the basement have served files and shared printers, the former through NFS and the latter through CUPS. When the Epson R380 finally went casters-up, I got an Epson ET-3830 printer with a network interface, leaving only our venerable HP Laserjet 1200 shared through the server.

    For reasons I do not profess to understand, whatever magic shared the printers rotted away over the last month (or, more likely, software updates), to the extent that we could no longer reliably print to the Laserjet. Various software tinkerings being unavailing, I dropped just under thirteen bucks to make the problem Go Away™:

    HP Jetdirect 175x - installed
    HP Jetdirect 175x – installed

    It’s a new-old-stock HP Jetdirect 175x print server from the turn of the millennium, with an Ethernet jack on the back and a USB 1.0 (yes, one-point-zero) jack on the front. It’s roughly contemporaneous with the Laserjet and designed to work with it.

    The thing started up in DHCP mode, so I had to ask the router where it was on the network. Configuration then amounted to putting it in static (“Manual”) IP mode, assigning an address, and restarting it.

    Aim the CUPS servers on our desktop PCs at the new address, fire off a test page, It Just Worked™, and we’re once again printing like it’s 1999.

    That was surprisingly easy.

  • Laser-marked Hole Drilling Spots

    Laser-marked Hole Drilling Spots

    While setting up to drill holes in the aluminum base for the running light buck converter, I wondered if laser-marking the spots directly from the solid model would work better than my usual fumbling around.

    The solid model:

    Running Light - power box - bottom view
    Running Light – power box – bottom view

    Export projections of the pieces from OpenSCAD as an SVG file:

    Running Light - power box - Projection view
    Running Light – power box – Projection view

    Import into LightBurn, set up for a very fast, very light cut and Fire The Laser:

    Laser-marked hole spots - masking tape
    Laser-marked hole spots – masking tape

    That’s in ordinary masking tape on a hard-anodized sheet of aluminum from the pile, which looked better than I expected.

    The same aluminum covered with blue tape:

    Laser-marked hole spots - blue tape - hard anodize
    Laser-marked hole spots – blue tape – hard anodize

    Which looks much better in person than it does in the photo.

    On a soft aluminum sheet from the Basement Warehouse Zone:

    Laser-marked hole spots - blue tape - sheet aluminum
    Laser-marked hole spots – blue tape – sheet aluminum

    The dark outline is a comfort mark hand-drawn around a chipboard test piece to verify the layout fit between random holes drilled in the sheet during its previous life.

    A closer look at a corner hole:

    Laser-marked hole spots - blue tape - hard anodize - detail 1
    Laser-marked hole spots – blue tape – hard anodize – detail 1

    And the center hole:

    Laser-marked hole spots - blue tape - hard anodize - detail 2
    Laser-marked hole spots – blue tape – hard anodize – detail 2

    The holes appeared in the right places after center-punching by eye, but the fragility of those four little tape leaves around the center point must be experienced to be believed.

    And, yes, those are deliberately low-polygon approximations to a circle, because I’m a low-poly kind of guy.

    I really need an optical center punch if I do more such silliness. The box with those HP plotter digitizing sights recently came to hand, so I suppose I should make something.

  • Laser Material Scrap Bins

    Laser Material Scrap Bins

    Being in need of small bins to sort cutoffs / scrap material from the laser and now having an essentially unlimited supply of corrugated cardboard at hand, this made some sense:

    Laser scrap bins - cutting
    Laser scrap bins – cutting

    The cardboard is 3.8 mm thick and laid with the ribs parallel to the X axis to make all the parts stiff in the right direction. I rearranged the parts to fit the space available and work around the butterfly finger hole over on the right.

    The box pattern comes from the infinite supply at boxes.py (you’re welcome to the jawbreaker URL with my parameters) and assembles to become a sturdy little box:

    Laser scrap bins - in action
    Laser scrap bins – in action

    Rather than gluing all those fingers into their holes, I ran a hot melt glue bead around the bottom perimeter and up the four corners, which seems to do the trick. The fingers parallel to the X axis tend to be fragile, as only one or two corrugated ribs run along their length, but the overall box is surprisingly rigid after gluing.

    They’re nominally stackable and the pattern includes stiffeners glued across the leg openings so they don’t slide off the box below, but it’s obvious these boxes will always have too much stuff to allow stacking.

    I made a longer box for plywood scraps and may need a couple more for other stuff yet to be unpacked, but you get the general idea.

    The WordPress AI Assistant reminds me to remind you of the safety measures appropriate for using hot melt glue: consider yourself warned.

  • Sillcock Faucet Alignment Wedge: Getting the Angle Right

    Sillcock Faucet Alignment Wedge: Getting the Angle Right

    A pair of frost-free sillcock faucets arrived to replace the house’s leaky and un-repairable hose bibs. The faucet must be mounted at a 5° angle to let the water drain out when it’s closed:

    Everbilt Frost-Free Sillcock faucet - installation
    Everbilt Frost-Free Sillcock faucet – installation

    One might expect the Alignment Wedge included with the faucet to have a 5° angle. Because I can both measure and math, it has a 1° angle.

    Well, I can fix that.

    Start by scanning the bottom (widest side) of the wedge and apply GIMP’s Select by color tool:

    Sillcock faucet alignment wedge - GIMP color selection
    Sillcock faucet alignment wedge – GIMP color selection

    After a little manual cleanup in Quick Mask mode, apply a 1 mm inset to ensure it snaps around the pipe, convert the selection to a path, export it as an SVG image, and import it into OpenSCAD to cut the angle:

    // Sillcock faucet alignment wedge
    // Ed Nisley KE4ZNU - May 2024
    
    MaxThick = 5.0;
    Tilt = -5.0;
    
    PlateOA = [60,40,MaxThick];   // XY = original angle plate size
    
    difference() {
      linear_extrude(height=MaxThick,convexity=5)
        offset(r=-1.0)
          import("/mnt/bulkdata/Cameras/2024/Shop Projects/Sillcock Faucets/Sillcock faucet angle washer - outline.svg",
                 center=true);
       translate([-PlateOA.x/2,-PlateOA.y/2,MaxThick])
         rotate([Tilt,0,0])
            cube(PlateOA,center=false);
    }
    

    The solid model goes into PrusaSlicer for duplication & slicing:

    Sillcock faucet alignment wedge - PrusaSlicer layout
    Sillcock faucet alignment wedge – PrusaSlicer layout

    And comes off the printer looking just about like you’d expect:

    Sillcock faucet alignment wedge - OEM vs printed
    Sillcock faucet alignment wedge – OEM vs printed

    The far side of both wedges are 5 mm tall, but you can see the difference four more degrees makes in the front.

    It’s even more obvious from the edge:

    Sillcock faucet alignment wedge - on pipe
    Sillcock faucet alignment wedge – on pipe

    The wood siding where these will fit is perfectly vertical, so getting the wedge angle right isn’t really optional.

    I must drill the existing hole in the sill plate out to 1-1/8 inch to clear the pipe fittings, plus the wood around the screws holding the current bibs to the wall will surely need some buttressing, but all that’s in the nature of fine tuning.

    FWIW, this was the first 3D print after the move and I’m happy to say the M2 had no any need of adjustments.

    The WordPress AI image generator apparently ignored the post text and produced a stylin’ picture of an arched bathroom faucet over a rimless sink, which I shall leave to your imagination.

  • ssh_agent vs. The New Hotness

    ssh_agent vs. The New Hotness

    A recent Manjaro update killed whatever magic held the passwords used for public-key ssh access from my desktop box, requiring me to remember the passords and type them correctly.

    After considerable thrashing around doing what I thought I knew about ssh_agent (which, yes, was being autostarted to no avail), it seems that thread applies and the fix now requires creating /etc/profile.d/gcr-keyring.sh with this burst of line noise:

    export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/gcr/ssh
    

    Then tell systemd about it:

    systemctl --user enable gcr-ssh-agent.socket
    systemctl --user enable gcr-ssh-agent.service
    

    Whereupon, after a reboot presumably causing systemd to make the right thing perform the right act at the right time, It Just Worked™.

    I used to have some mild sysadmin mojo, but obviously if you don’t do it all the time, everything you think you know becomes wrong.

    The WordPress AI did generate an image based on the above text and the prompt linux overlapping windows on monitor:

    WP AI Image - linux overlapping windows on monitor
    WP AI Image – linux overlapping windows on monitor

    Which looks a lot like those stock photos filling otherwise empty space in spammy web pages, doesn’t it? In point of fact, the AI Feedback on Post had this to say:

    While the AI-generated image may align with the content, consider using original or more contextually relevant visuals to maintain the professional look of the website.

    Couldn’t have put it better myself. Thank you, AI image & text generators, for your help.

  • Juki / Arrow Sewing Table Insert Filler

    Juki / Arrow Sewing Table Insert Filler

    Mary’s Juki TL-2010Q sewing machine sits in an Arrow Gidget II sewing table with a clear acrylic insert filling the opening:

    Juki TL-2000Q in Gidget II table
    Juki TL-2000Q in Gidget II table

    Before the insert arrived (it had month of leadtime), I hacked out a temporary cardboard insert:

    Juki temporary table insert
    Juki temporary table insert

    Although it may not be obvious from the picture, unlike my cardboard insert, the acrylic insert does not fill the tabletop hole to the immediate right of the machine:

    Custom Inserts are U-shaped, designed to fit around all 3 sides of your sewing machine

    Shortly after the insert arrived I hacked a temporary filler, for which no pictures survive, to keep pins / tools / whatever from falling to their doom. This turned out to be a blessing in disguise, because she wanted the machine positioned an inch to the right of its intended spot to leave enough space for a finger to reach the bobbin hatch latch.

    I then promised to replace the ugly cardboard filler with a less awful acrylic filler and finally got it done:

    Juki TL-2000Q in Gidget II table - insert filler
    Juki TL-2000Q in Gidget II table – insert filler

    The stack of cardboard prototypes show iterative fit-and-finish improvements, with the odd shape on the top serving to measure the machine’s 25 mm corner radius by comparison with known circles.

    The insert filler is made from smoked gray acrylic, because I have yet to unpack the acrylic stockpile and may not, in fact, have any clear 6 mm acrylic, so we’ll regard this as a final prototype pending further developments. It did, however, confirm the laser survived the move, which was pretty much the whole point.

    The end of the machine is not a straight line. Part of the iteration was measuring the curve’s chord height to calculate the circle’s radius, which turned out to be 760 mm:

    Juki Insert Filler - end chord circle
    Juki Insert Filler – end chord circle

    With that in hand, a few Boolean operations produced the filler shape:

    Juki Insert Filler
    Juki Insert Filler

    A pair of silicone bumper feet stuck to the side of the Juki hold the left edge of the filler at the proper level.

    For the record, the smoked acrylic came from a fragment of a Genuine IBM Printer stand I’ve had in the scrap pile since The Good Old Days:

    Etsy listing - Vintage IBM Printer Stand
    Etsy listing – Vintage IBM Printer Stand

    The LightBurn layout as an SVG image: