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.

Shuttles Board Game: Replacement Pegs

For reasons not relevant here, I made replacement pegs for the Shuttles board game:

Shuttles Game - solid model - Slic3r
Shuttles Game – solid model – Slic3r

Not the most challenging solid model I’ve ever conjured from the vasty digital deep, but 3D printing is really good for stuff like this.

The OEM pegs have a hollow center, most likely to simplify stripping them from the injection mold, which I dutifully duplicated:

Shuttles Game pegs - hollow - solid model
Shuttles Game pegs – hollow – solid model

It turns out the additional perimeter length inside the pegs requires 50% more printing time, far offsetting the reduced 10% infill. Given that each solid set takes just under an hour, I decided to lose half an hour of verisimilitude.

I plunked a nice round cap atop the OEM peg’s flat end, but stopped short of printing & installing a round plug for the butt end.

While the 3D printer’s hot, ya may as well make a bunch:

Shuttles game pegs
Shuttles game pegs

Game on …

The OpenSCAD source code as a GitHub Gist:

Update: They’re a bit too large, so the Gist now produces tapered pegs.

// Shuttles game pegs
// Ed Nisley KE4ZNU – July 2020
/* [Layout Options] */
Layout = "Peg"; // [Build, Peg]
Hollow = false;
//——-
//- Extrusion parameters must match reality!
/* [Hidden] */
ThreadThick = 0.25;
ThreadWidth = 0.40;
HoleWindage = 0.2;
Protrusion = 0.1; // make holes end cleanly
ID = 0;
OD = 1;
LENGTH = 2;
//——-
// Dimensions
/* [Dimensions] */
Peg = [4.0,7.5,26.0]; // overall length, including the rounded Cap
Taper = 1.0;
CapRadius = Peg[OD]/2;
PegBaseLength = Peg[LENGTH] – CapRadius;
NumPegs = [1,6]; // lay out in array
ArrayCenter = [NumPegs[0] – 1,NumPegs[1] – 1] / 2;
NumSides = 6*4;
//——-
module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes
Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
FixDia = Dia / cos(180/Sides);
cylinder(r=FixDia/2 + HoleWindage,h=Height,$fn=Sides);
}
//——-
// One peg
module Peg() {
union() {
translate([0,0,PegBaseLength])
difference() {
sphere(d=Peg[OD],$fn=NumSides);
translate([0,0,-Peg[OD]/2])
cube([2*Peg[OD],2*Peg[OD],Peg[OD]],center=true);
}
difference() {
cylinder(d1=Peg[OD] – Taper,d2=Peg[OD],h=PegBaseLength,$fn=NumSides);
if (Hollow)
translate([0,0,-Protrusion])
PolyCyl(Peg[ID],PegBaseLength+Protrusion,NumSides);
}
}
}
//——-
// Build it!
if (Layout == "Peg")
Peg();
if (Layout == "Build")
for (i=[0:NumPegs[0] – 1], j=[0:NumPegs[1] – 1])
translate([(i – ArrayCenter.x)*1.5*Peg[OD],(j – ArrayCenter.y)*1.5*Peg[OD],0])
Peg();

Comments

2 responses to “Shuttles Board Game: Replacement Pegs”

  1. Extruder Clog – The Smell of Molten Projects in the Morning Avatar

    […] so Slic3r uses set-and-forget temperature and speed values, and I manually change colors only on those rare occasions when color matters. Most clogs occur after switching from a higher- to a lower-temperature plastic (PETG to PLA), […]

  2. Shuttles Game: Tapered Pegs – The Smell of Molten Projects in the Morning Avatar

    […] is all too common with 3D printed replacement parts done remotely, the first Shuttles game pegs didn’t quite fit into the game board’s holes. Fortunately, living in the future means […]