diff --git a/camera pole mount.scad b/camera pole mount.scad new file mode 100644 index 0000000..42b9c71 --- /dev/null +++ b/camera pole mount.scad @@ -0,0 +1,48 @@ +// Pole mounting bracket for camera +// length units are millimeters + +innerScrewToScrew = 45.34; +outerScrewToScrew = 53.25; +rodDiameter = 25.60; +mountHeight = 30.00; + +circleResolution=360*4; // faces per rotation + +rodRadius = rodDiameter / 2; + +screwToScrew = (innerScrewToScrew + outerScrewToScrew) / 2; + +screwUnthreadedRadius = (outerScrewToScrew - innerScrewToScrew) / 4; + +screwThreadedRadius = screwUnthreadedRadius * 0.80; + +difference() { + translate([0,0,0]) { + difference() { + translate([0,0,0]) { + cylinder(r=rodRadius * 3, h=mountHeight, $fn=circleResolution); + } + // remove half of cylinder + translate([-(rodRadius * 3),-(rodRadius * 4),-0.01]) { + cube([rodRadius * 8.01, rodRadius * 4.01, mountHeight + 0.02]); + } + // remove screw holes + translate([0,-0.01,(mountHeight / 2) - screwThreadedRadius]) { + translate([-((screwToScrew / 2) -screwThreadedRadius),0,0]) { + rotate([-90,0,0]) + #cylinder(r=screwThreadedRadius, h=mountHeight, $fn=circleResolution); + } + translate([screwToScrew / 2,0,0]) { + rotate([-90,0,0]) + #cylinder(r=screwThreadedRadius, h=mountHeight, $fn=circleResolution); + } + } + } + } + translate([0,0,-0.01]) { + translate([0, rodRadius, 0]) + cylinder(r=rodRadius * 1.01, h=mountHeight + 0.02, $fn=circleResolution); + translate([-rodRadius * 1.01, 0, 0]) + cube([rodRadius * 2.01, rodRadius * 1.01, mountHeight + 0.02]); + } +} \ No newline at end of file diff --git a/camera pole mount.stl b/camera pole mount.stl new file mode 100644 index 0000000..56e1f55 Binary files /dev/null and b/camera pole mount.stl differ diff --git a/lawnmower washer.scad b/lawnmower washer.scad new file mode 100644 index 0000000..9df732f --- /dev/null +++ b/lawnmower washer.scad @@ -0,0 +1,64 @@ +// Lawnmower washer square thing +// length units are millimeters +tolerance = 1.00; + +topMetalWasherLength = 45.00 + tolerance; // this is (basically) square +innerShaftDiameter = 22.30; +bulbsLength = 32.40; +bulbsDiameter = 11.60; +bladeWidth = 44.40 + tolerance; +washerThickness = 2.00; +metalWasherThickness = 3.46; +bladeThickness = 2.24; + +minGuideRidgeThickness = 3.00; + +innerShaftRadius = innerShaftDiameter / 2; +bulbRadius = bulbsDiameter / 2; +washerLength = max(topMetalWasherLength, bladeWidth) + (minGuideRidgeThickness * 2); +bladeRidgeThickness = max(minGuideRidgeThickness, (washerLength - bladeWidth) / 2); +metalWasherRidgeThickness = max(minGuideRidgeThickness, (washerLength - topMetalWasherLength) / 2); + +circleResolution=360*4; // faces per rotation +zFightingOffset=0.01; // offset for shape subtraction + +module shaft(height) { + cylinder(r=innerShaftRadius, h=height, $fn=circleResolution); + translate([-(bulbsLength - (bulbRadius * 2)) / 2,-bulbRadius,0]) + cube([bulbsLength - (bulbRadius * 2), bulbRadius * 2, height]); + translate([innerShaftRadius, 0, 0]) + cylinder(r=bulbRadius, h=height, $fn=circleResolution); + translate([-innerShaftRadius, 0, 0]) + cylinder(r=bulbRadius, h=height, $fn=circleResolution); +} + +difference() { + translate([-washerLength / 2, -washerLength / 2, 0]) { + cube([washerLength, washerLength, washerThickness]); + // blade ridges + translate([0, washerLength / 2, washerThickness - zFightingOffset]) { + translate([0, - (bladeWidth / 2) - bladeRidgeThickness,0]) + cube([washerLength, bladeRidgeThickness, bladeThickness]); + translate([0, bladeWidth / 2,0]) + cube([washerLength, bladeRidgeThickness, bladeThickness]); + } + // metal washer ridges + translate([washerLength / 2, 0, - washerThickness + zFightingOffset]) { + translate([-(topMetalWasherLength / 2) - metalWasherRidgeThickness, 0,0]) + cube([metalWasherRidgeThickness, washerLength, metalWasherThickness]); + translate([topMetalWasherLength / 2,0,0]) + cube([metalWasherRidgeThickness, washerLength, metalWasherThickness]); + } + } + translate([0,0,-zFightingOffset]) + rotate([0,0,0]) + shaft(washerThickness + (zFightingOffset * 2)); + /* + // blade stand-in + translate([-50, -bladeWidth/2, washerThickness]) + #cube([100, bladeWidth, bladeThickness]); + // top metal washer stand-in + translate([-topMetalWasherLength/2, -topMetalWasherLength/2, -metalWasherThickness]) + #cube([topMetalWasherLength, topMetalWasherLength, metalWasherThickness]); + */ +} \ No newline at end of file diff --git a/lawnmower washer.stl b/lawnmower washer.stl new file mode 100644 index 0000000..5e322c9 Binary files /dev/null and b/lawnmower washer.stl differ