BOB Yak Fender Fracture: Fixed

We agreed that repairing the failed flag ferrule made the trailer much quieter, but it still seemed far more rattly than we remembered. It just had to be the fender, somehow, and eventually this appeared:

BOB Yak Fender Mount - fractures
BOB Yak Fender Mount – fractures

The obviously missing piece of the fender fell out in my hand; the similar chunk just beyond the wire arch fell out after I took the pictures. Yes, the wire has indented the fender.

The arch supports the aluminum fender, with a pair of (flat) steel plates clamping the wire to the fender:

BOB Yak Fender Mount - screw plates and pads
BOB Yak Fender Mount – screw plates and pads

The cardboard scraps show I fixed a rattle in the distant past.

Being aluminum, the fender can’t have a replacement piece brazed in place and, given the compound curves, I wasn’t up for the requisite fancy sheet metal work.

Instead, a bit of math produces a pair of shapes:

BOB Yak Fender Mount - solid model
BOB Yak Fender Mount – solid model

In this case, we know the curve radii, so the chord equation gives the depth of the curve across the (known) width & length of the plates; the maximum of those values sets the additional thickness required for the plates. The curves turn out to be rather steep, given the usual layer thickness and plate sizes, which gives them a weird angular look that absolutely doesn’t matter when pressed firmly against the fender:

BOB Yak Fender Mount - Slic3r preview
BOB Yak Fender Mount – Slic3r preview

The computations required to fit Hilbert Curve surface infill into those small exposed areas took basically forever; given that nobody will ever see them, I used the traditional linear infill pattern. A 15% 3D Honeycomb interior infill turned them into rigid parts.

The notch in the outer plate (top left, seen notch-side-down) accommodates the support wire:

BOB Yak Fender Mount - outer
BOB Yak Fender Mount – outer

The upper surface would look better with chamfered edges, but that’s in the nature of fine tuning. That part must print with its top surface downward: an unsupported (shallow) chamfer would produce horrible surface finish and life is too short for fussing with support. Given the surrounding rust & dings, worrying about aesthetics seems bootless.

The original screws weren’t quite long enough to reach through the plastic plates, so I dipped into my shiny-new assortment of stainless steel socket head cap screws. Although the (uncut) M5x16 screws seem to protrude dangerously far from the inner plate, there’s another inch of air between those screws and the tire tread:

BOB Yak Fender Mount - inner
BOB Yak Fender Mount – inner

Given the increase in bearing area, that part of the fender shouldn’t fracture for another decade or two.

I loves me my M2 3D printer …

The OpenSCAD source code as a GitHub Gist:

// BOB Yak Fender Mounting Bracket
// Ed Nisley - KE4ZNU - July 2016
Layout = "Build"; // Build Fender Rod BlockInner BlockOuter
//- Extrusion parameters must match reality!
// Print with 1 shell and 3 solid layers
ThreadThick = 0.25;
ThreadWidth = 0.40;
HoleWindage = 0.3;
Protrusion = 0.1; // make holes end cleanly
inch = 25.4;
// Dimensions
IR = 0; // radii seem easier to measure here
OR = 1;
Fender = [25,220,1]; // minor major thickness
FenderSides = 128;
FenderRod = [5.0/2,(Fender[IR] + 10),5.0/2]; // support rod dia/2, arch radius, rod dia/2 again
ChordMajor = Fender[OR] - sqrt(pow(Fender[OR],2) - pow(40,2)/4);
ChordMinor = Fender[IR] - sqrt(pow(Fender[IR],2) - pow(25,2)/4);
ChordFit = max(ChordMajor,ChordMinor);
echo("Chords: ",ChordMajor,ChordMinor,ChordFit);
BlockInnerOA = [40,25,1 + ChordFit];
BlockOuterOA = [35,25,2 + ChordFit];
echo(str("Inner Block: ",BlockInnerOA));
echo(str("Outer Block: ",BlockOuterOA));
ScrewOD = 5.0;
ScrewOC = 20.0;
NumSides = 6*4;
// Useful routines
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 + HoleWindage)/2,
module FenderShape() {
translate([(Fender[OR] - Fender[IR]),0])
module RodShape() {
translate([(FenderRod[OR] - FenderRod[IR]),0])
module BlockInner() {
intersection() {
difference() {
hull() {
for (i=[-1,1])
translate([i*(BlockInnerOA[0]/2 - BlockInnerOA[1]/2),0,0])
for (i=[-1,1])
translate([0,0,(BlockInnerOA[2] - Fender[OR])])
module BlockOuter() {
difference() {
hull() {
for (i=[-1,1])
translate([i*(BlockOuterOA[0]/2 - BlockOuterOA[1]/2),0,0])
for (i=[-1,1])
translate([0,0,(BlockOuterOA[2] - ChordFit + Fender[OR])])
translate([0,0,(FenderRod[OR] - 2*FenderRod[IR])])
//- Build things
if (Layout == "Fender")
if (Layout == "Rod")
if (Layout == "BlockInner")
if (Layout == "BlockOuter")
if (Layout == "Build") {

The original dimension measurement and design doodle:

BOB Yak Fender Mount - doodles
BOB Yak Fender Mount – doodles