+
+ for (rot=[0,180]) {
+ translate([0,0,plugl/2]) rotate([0,rot,0]) translate([0,0,-plugl/2]) {
+ translate([0,
+ plugh - (pinmaxh - pinminh)*1.00,
+ (plugl - pinholebasew*2)/3]) {
+ translate([-(topblockw*0.25+1), 0, pinholebasew/2])
+ rotate([-90,0,0]) %Pin();
+ translate([-(topblockw+1), 0, 0]) {
+ rotate([0,90,0]) {
+ linear_extrude(height = topblockw*2.0+2) {
+ polygon([[-1.0 * pinholebasew, -0.01],
+ [-0.5 * pinholebasew, pinholeh],
+ [ 0 , -0.01]]);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+module Pin(){ ////toplevel
+ rotate([90,0,90]) {
+ hull(){
+ for (mir=[0,1]) {
+ mirror([mir,0,0]) {
+ linear_extrude(height=0.1) {
+ polygon([[-0.01, 0],
+ [-0.01, pinminh],
+ [pinbasew*0.5*(pinminh/pinmaxh), 0]]);
+ }
+ translate([0,0,pintaperlen])
+ linear_extrude(height=pinstraightlen) {
+ polygon([[-0.01, 0],
+ [-0.01, pinmaxh],
+ [pinbasew*0.5, 0]]);
+ }
+ }
+ }
+ }
+ }
+}
+
+module HubEnd(){ ////toplevel
+ thick = hubmainthick+hubbasethick;
+ difference(){
+ union(){
+ for (ang=[0 : 60 : 359]) {
+ rotate([0,0,ang]) {
+ translate([hubmainrad - hubwalls/2, -hubbasestalkwidth/2, 0])
+ cube([hubbaserad - (hubmainrad - hubwalls/2),
+ hubbasestalkwidth, hubbasethick]);
+ ExtenderPillar(length = hubmainrad-hubwalls/2,
+ height = hubbasethick + hubmainthick,
+ pillarw = hubpillarw);
+ }
+ }
+ cylinder(r=axlerad+hubwalls, h=thick);
+ cylinder(r=hubmainrad-0.1, h=hubbaseweb);
+ difference(){
+ cylinder(r=hubmainrad, h=thick, $fn=100);
+ translate([0,0,-1])
+ cylinder(r=hubmainrad-hubwalls, h=thick+2);
+ }
+ difference(){
+ cylinder(r=hubbaserad, h=hubbasethick, $fn=50);
+ translate([0,0,-1])
+ cylinder(r=hubbaserad-hubwalls, h=hubbasethick+2);
+ }
+ }
+ translate([0,0,-1])
+ cylinder(r=axlerad+axleslop, h=thick+2, $fn=50);