The original anchor / weight keeping the HQ Sixteen from rolling away suffered a disastrous fall, so I conjured a much better-looking replacement from the vasty digital deep:

The handle and fancy nut came from the deceased pepper mill, sitting on laser-cut acrylic in a 3D printed base, with a drawer liner disk peeking out from underneath.
The orange disk in the solid model represents the steel slug harvested from the old anchor:

A ring of hot-melt glue under the weight keeps it from rattling around in there, with the snug-fitting central post encouraging good positioning. I made the acrylic lid sit flush with the top of the base by the simple expedient of running another ring of glue around it, plunking the base + weight atop it on a flat surface, then taking a deep breath while the glue solidified. The nut & screw thus compress a solid stack of acrylic + glue + steel + glue + PETG-CF, rather than just parts flying in formation.
The OpenSCAD source code also produces a pair of outlines for laser-cutting the adhesive sheet and acrylic, suitable for export to an SVG file:

They’re offset inward by amounts appropriate for my CO₂ laser:
if (Layout == "Cuts") {
left(BaseOD/2 + Gap)
offset(r=-1.0)
circle(d=BaseOD);
right(Cap[OD]/2 + Gap)
offset(r=-0.2/2)
projection()
tube(1.0,id=Cap[ID],od=Cap[OD],anchor=BOTTOM);
}
It might be prudent to apply those offsets to the original outlines in LightBurn or whatever you use for lasering.
The OpenSCAD source code as a GitHub Gist:
| // Anchor block for HQ Sixteen | |
| // Ed Nisley – KE4ZNU | |
| // 2026-09-29 | |
| include <BOSL2/std.scad> | |
| Layout = "Show"; // [Show,Build,Cuts] | |
| /* [Hidden] */ | |
| ID = 0; | |
| OD = 1; | |
| LENGTH = 2; | |
| Gap = 10.0/2; // build platform minimum spacing | |
| HoleWindage = 0.2; | |
| Protrusion = 0.1; | |
| NumSides = 8*3*2*4; | |
| $fn=NumSides; | |
| // Sizes | |
| Screw = [5.5,25.5,5.0]; // 10-24 screw + washer holding it together | |
| Weight = [11.0,80.0,11.5]; // stamped steel slug | |
| Cap = [26.0,Weight[OD],5.5]; // acrylic disk with handle hole | |
| BaseFloor = 10.0; | |
| BaseOD = 90.0; // printed anchor | |
| Spacing = 25.0; // Show view separation | |
| //———- | |
| // Model things | |
| module Housing() { | |
| tube(Screw[LENGTH],id=Screw[OD],od=BaseOD,anchor=BOTTOM) position(TOP) { | |
| tube(Weight[LENGTH],id=Screw[ID],od=Weight[ID],anchor=BOTTOM); // weight bushing | |
| tube(BaseFloor – Screw[LENGTH],id=Screw[ID],od=BaseOD,anchor=BOTTOM) position(TOP) | |
| tube(Cap[LENGTH] + Weight[LENGTH],id=Cap[OD],od=BaseOD,anchor=BOTTOM); | |
| } | |
| } | |
| //———- | |
| // Build things | |
| if (Layout == "Show") { | |
| Housing(); | |
| color("Orange",0.7) | |
| up(BaseFloor + Spacing) | |
| tube(Weight[LENGTH],id=Weight[ID],od=Weight[OD],anchor=BOTTOM); | |
| color("Gray",0.8) | |
| up(BaseFloor + 2*Weight[LENGTH] + Spacing) | |
| tube(Cap[LENGTH],id=Cap[ID],od=Cap[OD],anchor=BOTTOM); | |
| } | |
| if (Layout == "Cuts") { | |
| left(BaseOD/2 + Gap) | |
| offset(r=-1.0) | |
| circle(d=BaseOD); | |
| right(Cap[OD]/2 + Gap) | |
| offset(r=0.2/2) | |
| projection() | |
| tube(1.0,id=Cap[ID],od=Cap[OD],anchor=BOTTOM); | |
| } | |
| if (Layout == "Build") { | |
| Housing(); | |
| } |
Spam comments get trashed, so don’t bother; you’re not as clever as you think. Comment moderation may cause a delay.