Skip to content

Instantly share code, notes, and snippets.

@ednisley
Created February 22, 2026 11:55
Show Gist options
  • Select an option

  • Save ednisley/15e5001435a3b4c66d9467657313154c to your computer and use it in GitHub Desktop.

Select an option

Save ednisley/15e5001435a3b4c66d9467657313154c to your computer and use it in GitHub Desktop.
OpenSCAD source code: Bearing sleeves for fabric rods on HQ Sixteen longarm machine
// Bearing sleeve for HQ Sixteen table rods
// Ed Nisley - KE4ZNU
// 2026-02-20
include <BOSL2/std.scad>
Layout = "Show"; // [Show,Build]
/* [Hidden] */
ID = 0;
OD = 1;
LENGTH = 2;
HoleWindage = 0.2;
Protrusion = 0.1;
NumSides = 8*3*2*4;
$fn=NumSides;
Rod = [25.0,28.7,100.0]; // very short rod
Sleeve = [Rod[OD] + 0.3,31.2 - 0.2,9.0]; // LENGTH = overall
Rim = [Sleeve[ID],Sleeve[OD] + 6.0,0.6];
IdlerLength = 15.0;
NumSlots = 2*4;
Kerf = 1.0;
Gap = 5.0;
module Bearing(oal) {
difference() {
union() {
tube(oal,id=Sleeve[ID],od=Sleeve[OD],anchor=BOTTOM);
tube(Rim[LENGTH],id=Rim[ID],od=Rim[OD],anchor=BOTTOM);
}
for (a=[0:NumSlots-1])
zrot(a*360/NumSlots)
up(oal/4 + Rim[LENGTH])
right(Sleeve[ID]/2)
cuboid([Sleeve[OD],Kerf,oal],anchor=BOTTOM);
}
}
//-----
// Build things
if (Layout == "Show") {
color("Gray",0.5)
xcyl(Rod[LENGTH],d=Rod[OD]);
right(Rod[LENGTH]/3)
yrot(90)
Bearing(Sleeve[LENGTH]);
left(Rod[LENGTH]/3)
yrot(90)
Bearing(IdlerLength);
}
if (Layout == "Build") {
right(Rim[OD]/2 + Gap/2)
Bearing(Sleeve[LENGTH]);
left(Rim[OD]/2 + Gap/2)
Bearing(IdlerLength);
}
@ednisley
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment