-
Tour Easy: Zzipper Fairing Lower Mount Plates
Those plates handle the upper mount points, but the fairing also attaches to each side of the front fork. A nice rounded oval mates the fairing to the bracket, with two foam pads adapting the flat plates to the curved fairing surface. This view shows the outside of the fairing:

Lower mount – front The hole position requires a mirror-image pair of mounts that, mercifully, all fit on the build platform at once. The solid models look about like you’d expect:

Lower Bushings Those little tabs on the inside edge of the bracket recess printed about as poorly as you’d expect, but they’re not really critical.
I printed a set of white plates for my bike, installed the new filament tensioner, and went full frontal Barbie for my favorite ladies. This view shows the inside of the fairing:

Lower mount – rear Turns out my ladies don’t like pink any more than I do.
The OpenSCAD source:
// Clamp plates for Zzipper fairing on Tour Easy recumbents // Ed Nisley - KE4ZNU - Mar 2011 // Build with... // extrusion parameters matching the values below // 4 outer shells // 4 solid surfaces at top + bottom include </home/ed/Thing-O-Matic/lib/MCAD/units.scad> // Extrusion parameters for successful building ThreadWidth = 0.55; // should match extrusion width ThreadZ = 0.33; // should match extrusion thickness HoleWindage = ThreadWidth; // enlarge hole dia by extrusion width // Plate dimensions Layer1X = 35; // against fairing surface Layer1Y = 30; Layer1Z = 2*ThreadZ; HoleOffsetX = 5.0; // will be sign-flipped as needed HoleOffsetY = -(Layer1Y/2 - 10.0); Layer2Margin = 1.5; // uncovered edge Layer2X = Layer1X - 2*Layer2Margin; Layer2Y = Layer1Y - 2*Layer2Margin; Layer2Z = 3*ThreadZ; MountX = 16.3 + HoleWindage; // front fork mounting plate MountHoleOffset = 13.0; // Y end to hole center MountY = Layer1Y; MountZ = 4*ThreadZ; // recess depth MountCap = 3.0; // endcap arc height MountR = (pow(MountCap,2) + 0.25*pow(MountX,2)) / (2*MountCap); // ... radius Layer3Margin = 1.5; Layer3X = Layer2X - 2*Layer3Margin; Layer3Y = Layer2Y - 2*Layer3Margin; Layer3Z = 3*ThreadZ; PlateZ = Layer1Z + Layer2Z + Layer3Z; HoleDia = 0.25 * inch; // these are 1/4-20 bolt holes // Convenience settings BuildOffsetX = 3.0 + Layer1X/2; // build X spacing between top & bottom plates BuildOffsetY = 3.0 + Layer1Y/2; // ... Y Protrusion = 0.1; // extend holes beyond surfaces for visibility //--------------- // Create plate module Plate() { union() { translate([0,0,Layer1Z/2]) scale([Layer1X,Layer1Y,1]) cylinder(r=0.5,h=Layer1Z,$fn=32,center=true); translate([0,0,Layer1Z + Layer2Z/2]) scale([Layer2X,Layer2Y,1]) cylinder(r=0.5,h=Layer2Z,$fn=32,center=true); translate([0,0,Layer1Z + Layer2Z + Layer3Z/2]) scale([Layer3X,Layer3Y,1]) cylinder(r=0.5,h=Layer3Z,$fn=32,center=true); } } //--------------- // Create hole module Hole(OffsetX,OffsetY) { translate([OffsetX,OffsetY,PlateZ/2]) cylinder(r=(HoleDia + HoleWindage)/2, h=(PlateZ + 2*Protrusion), center=true,$fn=10); } //--------------- //-- Build the things... // Right side translate([BuildOffsetX,BuildOffsetY,0]) difference() { Plate(); Hole(HoleOffsetX,HoleOffsetY); } translate([BuildOffsetX,-BuildOffsetY,0]) difference() { Plate(); Hole(-HoleOffsetX,HoleOffsetY); translate([-HoleOffsetX,(HoleOffsetY - MountY/2 + MountHoleOffset),(PlateZ - MountZ/2 + Protrusion/2)]) intersection() { cube([MountX,MountY,(MountZ + Protrusion)],center=true); translate([0,(MountY/2 - MountR),0]) cylinder(r=MountR,h=(MountZ + Protrusion),center=true); } } // Left side translate([-BuildOffsetX,BuildOffsetY,0]) difference() { Plate(); Hole(-HoleOffsetX,HoleOffsetY); } translate([-BuildOffsetX,-BuildOffsetY,0]) difference() { Plate(); Hole(HoleOffsetX,HoleOffsetY); translate([HoleOffsetX,(HoleOffsetY - MountY/2 + MountHoleOffset),(PlateZ - MountZ/2 + Protrusion/2)]) intersection() { cube([MountX,MountY,(MountZ + Protrusion)],center=true); translate([0,(MountY/2 - MountR),0]) cylinder(r=MountR,h=(MountZ + Protrusion),center=true); } }