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.

Tag: Laser Cutter

  • Inkscape: LightBurn Layer Color Palette

    Inkscape: LightBurn Layer Color Palette

    Inkscape is not a CAD program (neither is LightBurn), but for my simple needs it works well enough, with the compelling advantage that OpenSCAD can import named layers and extrude them into solid models.

    LightBurn can import Inkscape SVG images to define the patterns for laser cutting / engraving and will automatically put the vectors into layers corresponding to their colors if and only if the SVG image uses colors from the LightBurn palette. Regrettably, picking those colors from the default Inkscape palette is essentially impossible, but you can have Inkscape use a palette file that displays only the LightBurn colors corresponding to its layers.

    I conjured this GIMP / Inkscape palette file based on the table in a LightBurn forum post, plus tool layer colors from another post:

    GIMP / Inkscape Palette
    Name: LightBurn Layers
    #
      0   0   0 BLACK
    255 255 255 WHITE
      0   0   0 LBRN #0
      0   0 255 LBRN #1
    255   0   0 LBRN #2
      0 224   0 LBRN #3
    208 208   0 LBRN #4
    255 128   0 LBRN #5
      0 224 224 LBRN #6
    255   0 255 LBRN #7
    180 180 180 LBRN #8
      0   0 160 LBRN #9
    160   0   0 LBRN #10
      0 160   0 LBRN #11
    160 160   0 LBRN #12
    192 128   0 LBRN #13
      0 160 255 LBRN #14
    160   0 160 LBRN #15
    128 128 128 LBRN #16
    125 135 185 LBRN #17
    187 119 132 LBRN #18
     74 111 227 LBRN #19
    211  63 106 LBRN #20
    140 215 140 LBRN #21
    240 185 141 LBRN #22
    246 196 225 LBRN #23
    250 158 212 LBRN #24
     80  10 120 LBRN #25
    180  90   0 LBRN #26
      0  71  84 LBRN #27
    134 250 136 LBRN #28
    255 219 102 LBRN #29
    243 105  38 LBRN T1
     12 150 217 LBRN T2
    

    Plunk that file (which I named Lightburn.gpl) into /home/ed/.config/inkscape/palettes/, restart Inkscape, then select it (the Name line defines its mmm name):

    Inkscape - selecting LightBurn palette
    Inkscape – selecting LightBurn palette

    Which lays a row of the LightBurn layer colors along the the Inkscape window:

    Inkscape - LightBurn palette
    Inkscape – LightBurn palette

    The text after the RGB triplet in each file line appears as the tool tip for the color swatch:

    Inkscape - LightBurn palette tooltip
    Inkscape – LightBurn palette

    Because LightBurn uses only the vector Stroke and ignores its Fill, you (well, I) must become accustomed to Shift-clicking palette colors.

    You can fetch a similar palette file directly from the LightBurn doc, although minus the tool tips. GIMP and Inkscape have many palettes available, should you make artsy drawings where subtle color shading matters.

    I generally use only a few cheerful primary colors, because I have trouble distinguishing (heck, in some cases even seeing) the more subtle colors against LightBurn’s light (or dark) workspace background. I assign the layer cut settings using the Material Library: reds for cutting, blues for marking, and grays for engraving.

    When I need more than maybe half a dozen colors, I (eventually) realize I’m trying to be too clever and split the project into separate LightBurn files.

  • HQ Sixteen: Front Horizontal Spool Adapter

    HQ Sixteen: Front Horizontal Spool Adapter

    Mary wanted a horizontal spool adapter mounted closer to the front of her HQ Sixteen, in the M5 threaded hole where the Official Horizontal Adapter would go:

    HQ Sixteen - front spool adapter - installed
    HQ Sixteen – front spool adapter – installed

    Yes, the pin through the spool is fluorescent edge-lit orange acrylic that looks wonderful in sunlight and is much more amusing than the black rod in the adapter atop the power supply pod.

    The top of the machine case is not flat, level, or easy to model, so I deployed the contour gauge again, with some attention to keeping the edge pins parallel & snug along the machine sides:

    HQ Sixteen - machine profile measurement
    HQ Sixteen – machine profile measurement

    Tracing the edge of the pins onto paper, scanning, and feeding it into Inkscape let me lay a few curves:

    HQ Sixteen - top profile curve - Inkscape fitting
    HQ Sixteen – top profile curve – Inkscape fitting

    The laser-cut chipboard test pieces show the iterations producing closer and closer fits to the machine.

    Importing the final SVG image into OpenSCAD and extruding it produced a suitable solid model of the machine’s case:

    HQ Sixteen - machine solid model
    HQ Sixteen – machine solid model

    Subtract that shape from the bottom of the adapter to get a perfect fit atop the machine:

    HQ Sixteen - horizontal thread spool adapter - front pin - solid model - show
    HQ Sixteen – horizontal thread spool adapter – front pin – solid model – show

    Early results are encouraging, although the cheap polyester thread Mary got from a friend’s pile and is using for practice untwists itself after passing through the tension disks on its way to the needle. She’ll load much better thread for the real quilt.

    The OpenSCAD source code and SVG of the HQ Sixteen’s top profile as a GitHub Gist:

    // HQ Sixteen – horizontal thread spool adapter for front pin
    // Ed Nisley – KE4ZNU
    // 2025-04-07
    include <BOSL2/std.scad>
    Layout = "Show"; // [Show,Build,Base,Wall,Frame]
    /* [Hidden] */
    Protrusion = 0.1;
    HoleWindage = 0.2;
    ID = 0;
    OD = 1;
    LENGTH = 2;
    WallThick = 8.0;
    BaseThick = 12.0;
    Washer = [5.0,10.0,1.0]; // M5 washer
    Spool = [0.25*INCH,50.0,55.0]; // maximum thread spool
    SpoolClearance = [2.0,5.0,5.0]; // spool pin pointed to +X axis
    SpoolPin = [Spool[ID],Spool[ID],Spool[LENGTH] + WallThick + SpoolClearance.x];
    BasePlate = [WallThick + SpoolClearance.x + 13.0, // X flush with side of machine
    Spool[OD]/2 + 2*SpoolClearance.y,
    BaseThick];
    BaseOffset = [-(BasePlate.x – Washer[OD]),-Washer[OD],0.0]; // left front corner w.r.t. pin
    SpoolOC = [0, // relative to left front top of Base
    BasePlate.y/2,
    SpoolClearance.z + Spool[OD]/2 + BaseThick/2];
    //———-
    // Construct the pieces
    // HQ Sixteen top frame profile
    // Aligned with hole somewhere along X=0, front edge at Y=0
    // Lengthened slightly to cut cleanly
    module MachineFrame(Length=BasePlate.y + 2*Protrusion) {
    back(BasePlate.y + Protrusion) xrot(90)
    linear_extrude(height=Length,convexity=5,center=false)
    import("HQ Sixteen – top profile curve.svg",layer="Top Profile");
    }
    // Baseplate
    // Aligned with hole one washer diameter in from corner
    module Base() {
    $fn=18;
    difference() {
    fwd(Washer[OD])
    difference() {
    right(Washer[OD])
    cuboid(BasePlate,anchor=RIGHT+FRONT+CENTER,rounding=BaseThick/2,edges=RIGHT);
    MachineFrame();
    }
    down(BasePlate.z)
    cylinder(d=SpoolPin[OD] + HoleWindage,h=2*BasePlate.z);
    up(BasePlate.z/2 – Washer[LENGTH])
    cylinder(d=Washer[OD] + HoleWindage,h=2*Washer[LENGTH]);
    }
    }
    // Wall holding spool pin
    module Wall() {
    $fn=36;
    translate(BaseOffset) {
    difference() {
    union() {
    translate(SpoolOC)
    right(WallThick)
    cylinder(SpoolClearance.x,d=Spool[OD]/2,orient=RIGHT);
    hull() {
    translate(SpoolOC)
    cylinder(WallThick,d=Spool[OD]/2,orient=RIGHT);
    up(BasePlate.z/2 – 1)
    cube([WallThick,BasePlate.y,1],center=false);
    }
    }
    translate(SpoolOC) left(Protrusion)
    cylinder(SpoolPin[LENGTH],d=SpoolPin[OD],orient=RIGHT);
    }
    }
    }
    module Adapter() {
    Base();
    Wall();
    }
    //———-
    // Show & build the results
    if (Layout == "Base")
    Base();
    if (Layout == "Wall")
    Wall();
    if (Layout == "Frame")
    MachineFrame();
    if (Layout == "Show") {
    Adapter();
    color("Gray",0.5)
    MachineFrame(60);
    color("Green",0.75)
    translate(BaseOffset)
    translate(SpoolOC)
    cylinder(SpoolPin[LENGTH],d=SpoolPin[OD],orient=RIGHT,$fn=18);
    }
    if (Layout == "Build")
    up(-BaseOffset.x)
    yrot(-90)
    Adapter();
    Loading
    Sorry, something went wrong. Reload?
    Sorry, we cannot display this file.
    Sorry, this file is invalid so it cannot be displayed.

  • Vole Trap Boxes: Deluxe Edition

    Vole Trap Boxes: Deluxe Edition

    The larger vole trap boxes didn’t survive the early spring rainfall, so we decided to upgrade the fleet with more durable boxes:

    Vole Box - finished
    Vole Box – finished

    I obviously need a larger light box.

    The trap boxes come in 7 quart and 3.5 quart sizes, although we expect either will comfortably accommodate a single vole.

    They’re made of polypropylene plastic eminently suited for laser cuttery, so I borrowed the holes from the cardboard box setup:

    Vole Box - hole cutting
    Vole Box – hole cutting

    The clamps on the knife bars held the angle block and boxes in pretty much the same position, so I didn’t realign anything after figuring out a pair of magnets would hold the lid to the angle:

    Vole Box - lid fixture magnets
    Vole Box – lid fixture magnets

    The box side is slightly sloped, so I probably should have angled the block to tilt the lid, but this isn’t a precision job:

    Vole Box - lid fixture
    Vole Box – lid fixture

    The white smudges on the lid come from vaporized polypropylene:

    Vole Box - fume deposits
    Vole Box – fume deposits

    The body count thus far is just one field mouse, but the season is yet young.

  • Potato Garage

    Potato Garage

    Ordinary potatoes are photosensitive and turn green & bitter when exposed to light, so Mary stores them in a paper bag in the pantry. I recently re-found the cupcake / bread box previously used for battery storage and we decided it would make a great potato storage box:

    Potato Garage - installed
    Potato Garage – installed

    It does look like a little garage with a roll-up door, doesn’t it?

    The engraving on the top came from the New Garden Encyclopedia:

    Garden Encyclopedia - Potatoes - engraving scan
    Garden Encyclopedia – Potatoes – engraving scan

    The larger spud definitely has The Stink Eye! Also: tusks!

    Threshold the scanned image, edit out a few blemishes, and engrave it atop the box:

    Potato Garage - engraved
    Potato Garage – engraved

    The result looks rather pallid, but this is not the place for fancy wood finishes.

    The alert reader will note a purple sweet potato parked in there, but it’s close to the spirit of the thing.

  • Laser Cutter: Letter Paper Storage Trays

    Laser Cutter: Letter Paper Storage Trays

    Paper sheets must lay flat in storage, but it’s impossible to extract a single sheet from a tall pile. So I converted some moving boxes into stackable trays, each holding about a ream of paper:

    Letter Paper Tray - installed
    Letter Paper Tray – installed

    The starting point is a stackable Universal Box from boxes.py, with one end reshaped to become a tray. One Home Depot Large moving box provides enough 4.0 mm cardboard to make four trays, with one side of the box left over for future projects:

    Letter Paper Storage Racks - LightBurn screenshot
    Letter Paper Storage Racks – LightBurn screenshot

    The gray rectangle in the middle is the LightBurn workspace grid representing the 700×500 mm laser platform:

    Letter Paper Tray - laser cutting
    Letter Paper Tray – laser cutting

    Contrary to the screenshot, I move all the layouts off to the side leaving the platform grid clear. The blue rectangles around the layouts represent the various box flaps / sides, so I can:

    • Click a layout (which is grouped with the surrounding rectangle)
    • Click Ctrl-D to duplicate it
    • Hit P to put the duplicate at the middle of the platform grid
    • Lay the corresponding cardboard sheet from that box part on the platform
    • Align the layout with the cardboard using the camera
    • Fire The Laser

    Copious application of hot melt glue gloms all the pieces together.

    I added support beams under the cardboard bottom plate:

    Letter Paper Tray - bottom
    Letter Paper Tray – bottom

    A 2 mm arch in the top of those strips puts a camber into the sheet to counteract the natural sag from carrying five pounds of paper. The four trays at the far left lack that camber and cry out for a Mulligan.

    Some day the Basement Shop™ won’t smell like a campfire.

    The LightBurn SVG layout as a GitHub Gist:

    Loading
    Sorry, something went wrong. Reload?
    Sorry, we cannot display this file.
    Sorry, this file is invalid so it cannot be displayed.

  • Metallic Layered Paper

    Metallic Layered Paper

    With various iterations of the Letter sheet fixture in place, I made some layered paper “art” using metallic paper:

    Metallic layered paper - Pyrotechnics block
    Metallic layered paper – Pyrotechnics block

    That’s the Pyrotechnics quilt block pattern.

    This is the RGBY Subpixel pattern:

    Metallic layered paper - RGBY subpixels
    Metallic layered paper – RGBY subpixels

    The dotted rectangle in the lower left corner is the (turned off) front light in my low-budget light box and the glare in the upper left comes from the overhead basement LED strip lights.

    AFAICT, “metallic paper” consists of shiny aluminum film bonded to heavy paper / cardstock, with transparent colored film bonded atop the aluminum. The sheet is, of course, highly reflective, which looks dark unless it’s reflecting a bright surface, like the well-lit Sewing Room ceiling:

    Metallic layered paper - vs art paper
    Metallic layered paper – vs art paper

    I made the bright Pyrotechnics block in the upper left with art paper that looks bright & cheerful in any lighting:

    Metallic layered paper - art paper Pyrotechnics block
    Metallic layered paper – art paper Pyrotechnics block

    That’s the difference between specular reflectors and Lambertian reflectors.

    I cut the metallic paper face-down in the fixture:

    Pyrotechnics - metallized paper fixture
    Pyrotechnics – metallized paper fixture

    Although I’m underwhelmed by the metallic-layered-paper results, the stuff does make spectacular chaff:

    Letter paper fixture - on knife bars
    Letter paper fixture – on knife bars

    I should give our neighbor’s two-year-old lad a gift box …

  • Laser Cutter: Letter Page Fixture

    Laser Cutter: Letter Page Fixture

    Making 200×200 mm layered paper “pictures” involved cutting the square blanks from 8½×11 Letter sheets, putting those blanks in a fixture to hold them flat, then cutting the layer patterns:

    Layered Paper cutting fixture - in use
    Layered Paper cutting fixture – in use

    That worked well enough, but it occurred to me that I should cut the patterns directly into the Letter sheet, with a couple of tabs on each edge holding the square to the sheet so it didn’t fall free.

    A cardboard prototype showed this would actually work, at least after I fixed the tab width to keep them from just evaporating:

    Pyrotechnics - metallized paper fixture
    Pyrotechnics – metallized paper fixture

    The top and bottom strips of tape hold cardboard bars that flatten the slightly curled metallic paper. The tape on the sides holds the cardboard flat to the knife bars across the laser platform.

    A few adjustments later, I had an MDF version:

    Letter paper fixture - cardboard vs MDF
    Letter paper fixture – cardboard vs MDF

    Which fits atop the bars even better:

    Letter paper fixture - on knife bars
    Letter paper fixture – on knife bars

    Cutting colored paper definitely makes for cheerful chaff!

    The two bar magnets hold the fixture in place on the steel platform rim. The aluminum knife bars stand slightly proud of the steel, so there’s a 1.4 mm chipboard shim glued under the fixture to put it flat on the bars.

    The opening is 10 mm smaller than the Letter sheet to support it all around. The recess is 1 mm larger than the sheet to allow for slight size variations, with an MDF ring flattening the sheet:

    Letter paper fixture - sheet in place
    Letter paper fixture – sheet in place

    The four targets in the corners correspond to targets in the LightBurn template suitable for Print and Cut alignment:

    Letter sheet template - LightBurn layout
    Letter sheet template – LightBurn layout

    The alert reader will note the fixture targets on the MDF fixture sit juuuust slightly to the right of where they are in the template. It turns out the targets cannot be grouped with anything else (or even each other), because when you select a target on the template for Print and Cut the center of the selection must match the location of the physical target on the fixture.

    However, it’s convenient to have the rest of the template grouped into a single lump, so it’s painfully easy to select and move only the template while leaving the targets behind. It seems while setting up to mark & cut the template, I managed to click-n-drag the group a few millimeters to the left.

    I eventually used Print and Cut to align the template and target with the corners of that MDF frame, re-engrave the targets at the correct locations, and scribble over the misplaced targets. If I don’t tell anybody, they’ll never know.

    The LightBurn SVG layout as a GitHub Gist:

    Loading
    Sorry, something went wrong. Reload?
    Sorry, we cannot display this file.
    Sorry, this file is invalid so it cannot be displayed.