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.

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.

Comments

5 responses to “HQ Sixteen: Front Horizontal Spool Adapter”

  1. tantris Avatar
    tantris

    “..the cheap polyester thread Mary got from a friend’s pile and is using for practice untwists itself after passing through the tension disks”

    I am sure, heated tension disks could solve that problem grin

    1. Ed Avatar

      She tells me “ribbon thread” is a thing: a thin strip somehow rolling off the spool, along all the gimcrackery, and through the eye of the needle. So it’s at least possible

  2. david Avatar
    david

    Why not just put the coutour gauge right onto the scanner glass?

    1. Ed Avatar

      The orange handle is way thicker than it looks, so the pins would lie at an angle to the glass. On the other paw, given the thrashing around with the paper tracing, I’m not sure it would be much worse … :grin:

  3. Inkscape: LightBurn Layer Color Palette – The Smell of Molten Projects in the Morning Avatar

    […] 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. […]