Compare commits
5 Commits
20c9287ac2
...
95612c1d18
Author | SHA1 | Date |
---|---|---|
Matt McWilliams | 95612c1d18 | |
Matt McWilliams | 0829ec9081 | |
Matt McWilliams | ef0d246901 | |
Matt McWilliams | 622a8a7c42 | |
Matt McWilliams | 925659ba4b |
|
@ -0,0 +1,58 @@
|
||||||
|
include <./common.scad>;
|
||||||
|
|
||||||
|
Z = 100;
|
||||||
|
|
||||||
|
baseX = 134.5;
|
||||||
|
baseY = 105.4;
|
||||||
|
baseZ = 20;
|
||||||
|
|
||||||
|
innerBaseX = 106.22;
|
||||||
|
innerBaseY = 75.88;
|
||||||
|
|
||||||
|
mountBoltsX = 71;
|
||||||
|
mountBoltsY = 90.66;
|
||||||
|
|
||||||
|
boltD = 5;
|
||||||
|
camBoltD = 10;
|
||||||
|
camBoltZ = 12;
|
||||||
|
|
||||||
|
module base () {
|
||||||
|
|
||||||
|
difference () {
|
||||||
|
cube([baseX, baseY, baseZ], center =true);
|
||||||
|
cube([innerBaseX, innerBaseY, baseZ + 1], center =true);
|
||||||
|
//bolts
|
||||||
|
bolts(boltD, baseZ + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module bolts (boltD = 5, boltZ = 12) {
|
||||||
|
$fn = 60;
|
||||||
|
translate([mountBoltsX/2, mountBoltsY/2, 0]) cylinder(r = R(boltD), h = boltZ, center = true);
|
||||||
|
translate([-mountBoltsX/2, mountBoltsY/2, 0]) cylinder(r = R(boltD), h = boltZ, center = true);
|
||||||
|
translate([mountBoltsX/2, -mountBoltsY/2, 0]) cylinder(r = R(boltD), h = boltZ, center = true);
|
||||||
|
translate([-mountBoltsX/2, -mountBoltsY/2, 0]) cylinder(r = R(boltD), h = boltZ, center = true);
|
||||||
|
}
|
||||||
|
|
||||||
|
module camera_bolt (width = 20) {
|
||||||
|
$fn = 60;
|
||||||
|
translate([width/2, 0, 0]) cylinder(r = R(camBoltD), h = Z + 1);
|
||||||
|
translate([-width/2, 0, 0]) cylinder(r = R(camBoltD), h = Z + 1);
|
||||||
|
cube([width, camBoltD, Z + 1], center = true);
|
||||||
|
}
|
||||||
|
|
||||||
|
module mount () {
|
||||||
|
difference () {
|
||||||
|
rounded_cube([mountBoltsX + 20, baseY, Z], d = 20, center =true, $fn = 60);
|
||||||
|
//center void
|
||||||
|
translate([0, 0, -camBoltZ]) cube([mountBoltsX - 20, innerBaseY, Z], center =true);
|
||||||
|
translate([0, 0, -camBoltZ]) cube([baseX + 1, innerBaseY - 40, Z], center =true);
|
||||||
|
bolts(boltD, Z + 1);
|
||||||
|
//
|
||||||
|
translate([0, 0, (Z / 2) - (Z / 2) + 15]) bolts(20, Z);
|
||||||
|
camera_bolt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//base();
|
||||||
|
translate([0, 0, (baseZ/2) + (Z/2) + 5]) mount();
|
|
@ -20,13 +20,14 @@ module cmount_male(len = 4) {
|
||||||
|
|
||||||
module bellows_camera_board () {
|
module bellows_camera_board () {
|
||||||
H = 6;
|
H = 6;
|
||||||
|
INNER_D = 39;
|
||||||
difference () {
|
difference () {
|
||||||
cube([60, 60, H], center = true);
|
cube([60, 60, H], center = true);
|
||||||
//center
|
//center
|
||||||
cylinder(r = 38 / 2, h = H + 1, center = true, $fn = 360);
|
cylinder(r = INNER_D / 2, h = H + 1, center = true, $fn = 360);
|
||||||
//center bevels
|
//center bevels
|
||||||
translate([0, 0, 2.25]) cylinder(r1 = 36 / 2, r2 = 40 / 2, h = 1.5, center = true, $fn = 360);
|
translate([0, 0, 2.25]) cylinder(r1 = (INNER_D - 2) / 2, r2 = (INNER_D + 2) / 2, h = 1.5, center = true, $fn = 360);
|
||||||
translate([0, 0, -2.25]) cylinder(r1 = 40 / 2, r2 = 36 / 2, h = 1.5, center = true, $fn = 360);
|
translate([0, 0, -2.25]) cylinder(r1 = (INNER_D + 2) / 2, r2 = (INNER_D - 2) / 2, h = 1.5, center = true, $fn = 360);
|
||||||
//corners
|
//corners
|
||||||
for (i = [0 : 3]) {
|
for (i = [0 : 3]) {
|
||||||
rotate([0, 0, i * (360 / 4) + 45 ]) translate([43.5, 0, 0]) cube([11, 11, H + 1], center = true);
|
rotate([0, 0, i * (360 / 4) + 45 ]) translate([43.5, 0, 0]) cube([11, 11, H + 1], center = true);
|
||||||
|
@ -53,7 +54,7 @@ module camera_mount () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PART = "camera_mount";
|
PART = "bellows_camera_board";
|
||||||
|
|
||||||
if (PART == "bellows_camera_board") {
|
if (PART == "bellows_camera_board") {
|
||||||
bellows_camera_board();
|
bellows_camera_board();
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
include <./common.scad>;
|
include <./common.scad>;
|
||||||
include <./bellows.scad>;
|
include <./bellows.scad>;
|
||||||
|
|
||||||
|
|
||||||
PART = "";
|
PART = "";
|
||||||
|
|
||||||
LinearBearingOuterDiameter = 15;
|
LinearBearingOuterDiameter = 15;
|
||||||
|
@ -28,19 +29,19 @@ XWidth = 50;
|
||||||
FrontOffset = 0;
|
FrontOffset = 0;
|
||||||
BackOffset = 10;
|
BackOffset = 10;
|
||||||
|
|
||||||
module linearBearing () {
|
module linearBearing (pad = 0) {
|
||||||
difference () {
|
difference () {
|
||||||
cylinder(r = R(LinearBearingOuterDiameter), h = LinearBearingHeight, center = true, $fn = 100);
|
cylinder(r = R(LinearBearingOuterDiameter + pad), h = LinearBearingHeight, center = true, $fn = 100);
|
||||||
cylinder(r = R(LinearBearingBoreDiameter), h = LinearBearingHeight + 1, center = true, $fn = 60);
|
cylinder(r = R(LinearBearingBoreDiameter), h = LinearBearingHeight + 1, center = true, $fn = 60);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module threadedRod (H = 40) {
|
module threadedRod (H = 40, pad = 0) {
|
||||||
color("green") cylinder(r = R(ThreadDiameter), h = H, center = true, $fn = 60);
|
color("green") cylinder(r = R(ThreadDiameter + pad), h = H, center = true, $fn = 60);
|
||||||
}
|
}
|
||||||
|
|
||||||
module linearMotionRod (H = 40) {
|
module linearMotionRod (H = 40, pad = 0) {
|
||||||
color("blue") cylinder(r = R(LinearMotionDiameter), h = H, center = true, $fn = 60);
|
color("blue") cylinder(r = R(LinearMotionDiameter + pad), h = H, center = true, $fn = 60);
|
||||||
}
|
}
|
||||||
|
|
||||||
module TNut () {
|
module TNut () {
|
||||||
|
@ -53,26 +54,44 @@ module TNut () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module m3BoltNut (bolt = 20, nut = 3.5) {
|
||||||
|
cylinder(r = 3.1 / 2, h = bolt, center = true, $fn = 40);
|
||||||
|
|
||||||
|
translate([0, 0, nut]) color("red") {
|
||||||
|
cylinder(r = 8 / 2, h = 2.5, center = true, $fn = 6);
|
||||||
|
translate([-4, 0, 0]) cube([8, 6.9, 2.5], center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
module lensAssemblyBellowsBoard () {
|
module lensAssemblyBellowsBoard () {
|
||||||
rotate([0, 0, 90]) bellows_camera_board();
|
|
||||||
//bottom
|
//bottom
|
||||||
difference () {
|
difference () {
|
||||||
|
union () {
|
||||||
|
rotate([0, 0, 90]) bellows_camera_board();
|
||||||
translate([0, -XOffset, FrontOffset]) rotate([0, 90, 0]) cylinder(r = R(22), h = XWidth, center = true, $fn = 80);
|
translate([0, -XOffset, FrontOffset]) rotate([0, 90, 0]) cylinder(r = R(22), h = XWidth, center = true, $fn = 80);
|
||||||
|
}
|
||||||
rotate([-90, 0, 0]) {
|
rotate([-90, 0, 0]) {
|
||||||
translate([-(XWidth/2) + 2.5, -FrontOffset, -XOffset]) rotate([0, 90, 0]) TNut();
|
translate([-(XWidth/2) + 2.5, -FrontOffset, -XOffset]) rotate([0, 90, 0]) TNut();
|
||||||
|
//m3
|
||||||
|
translate([-(XWidth/2) + 2.5 + 5, -FrontOffset - 8, -XOffset]) rotate([0, -90, 0]) rotate([0, 0, 90]) m3BoltNut();
|
||||||
translate([(XWidth/2) - 2.5, -FrontOffset, -XOffset]) rotate([0, -90, 0]) TNut();
|
translate([(XWidth/2) - 2.5, -FrontOffset, -XOffset]) rotate([0, -90, 0]) TNut();
|
||||||
|
//m3
|
||||||
|
translate([(XWidth/2) - 2.5 - 5, -FrontOffset - 8, -XOffset]) rotate([0, 90, 0]) rotate([0, 0, 90]) m3BoltNut();
|
||||||
}
|
}
|
||||||
rotate([-90, 0, 0]) translate([0, -FrontOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(RodLength);
|
rotate([-90, 0, 0]) translate([0, -FrontOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(RodLength, 0.5);
|
||||||
|
translate([0, -XOffset, -10.5]) cube([100,30, 15], center = true);
|
||||||
}
|
}
|
||||||
//top
|
//top
|
||||||
difference () {
|
difference () {
|
||||||
translate([0, XOffset, FrontOffset]) rotate([0, 90, 0]) cylinder(r = R(22), h = 24, center = true, $fn = 80);
|
translate([0, XOffset, FrontOffset]) rotate([0, 90, 0]) cylinder(r = R(25), h = 24, center = true, $fn = 80);
|
||||||
rotate([-90, 0, 0]) {
|
rotate([-90, 0, 0]) {
|
||||||
translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearBearing();
|
translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearBearing(0.25);
|
||||||
}
|
}
|
||||||
translate([0, XOffset + 10, 0]) cube([24 + 1, 10, 3], center = true);
|
//translate([0, XOffset + 10, 0]) cube([24 + 1, 10, 3], center = true);
|
||||||
|
translate([0, XOffset, -10.5]) cube([24 + 1,30, 15], center = true);
|
||||||
rotate([-90, 0, 0]) translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearMotionRod(RodLength);
|
rotate([-90, 0, 0]) translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearMotionRod(RodLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module lensAssemblyThreadedZ () {
|
module lensAssemblyThreadedZ () {
|
||||||
|
@ -148,17 +167,16 @@ module lensAssemblyLinearZ () {
|
||||||
//x threaded rod
|
//x threaded rod
|
||||||
translate([0, -BackOffset, -(Z / 2) + 13.5]) rotate([0, 90, 0]) threadedRod(50);
|
translate([0, -BackOffset, -(Z / 2) + 13.5]) rotate([0, 90, 0]) threadedRod(50);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rotate([90, 0, 0]) lensAssemblyBellowsBoard();
|
//rotate([90, 0, 0]) lensAssemblyBellowsBoard();
|
||||||
|
|
||||||
translate([-ZOffset, BackOffset, 0]) lensAssemblyThreadedZ();
|
//translate([-ZOffset, BackOffset, 0]) lensAssemblyThreadedZ();
|
||||||
translate([ZOffset, BackOffset, 5]) lensAssemblyLinearZ();
|
//translate([ZOffset, BackOffset, 5]) lensAssemblyLinearZ();
|
||||||
|
|
||||||
//Z axis
|
//Z axis
|
||||||
//translate([-ZOffset, BackOffset, 0]) threadedRod(RodLength);
|
//translate([-ZOffset, BackOffset, 0]) threadedRod(RodLength);
|
||||||
translate([ZOffset, BackOffset, 0]) linearMotionRod(RodLength);
|
//translate([ZOffset, BackOffset, 0]) linearMotionRod(RodLength);
|
||||||
|
|
||||||
//translate([40, 8, 0]) linearBearing();
|
//translate([40, 8, 0]) linearBearing();
|
||||||
//translate([-40, 8, 25]) rotate([180, 0, 0]) TNut();
|
//translate([-40, 8, 25]) rotate([180, 0, 0]) TNut();
|
||||||
|
@ -169,7 +187,7 @@ translate([ZOffset, BackOffset, 0]) linearMotionRod(RodLength);
|
||||||
|
|
||||||
//X axis
|
//X axis
|
||||||
//translate([0, -FrontOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(RodLength);
|
//translate([0, -FrontOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(RodLength);
|
||||||
translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearMotionRod(RodLength);
|
//translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearMotionRod(RodLength);
|
||||||
|
|
||||||
//translate([0, -8, 40]) rotate([0, 90, 0]) linearBearing();
|
//translate([0, -8, 40]) rotate([0, 90, 0]) linearBearing();
|
||||||
//translate([-25, -8, -XOffset]) rotate([0, 90, 0]) TNut();
|
//translate([-25, -8, -XOffset]) rotate([0, 90, 0]) TNut();
|
||||||
|
@ -177,3 +195,9 @@ translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearMotionRod(RodLen
|
||||||
|
|
||||||
//translate([-15, -5, XOffset]) rotate([0, 90, 0]) color("blue") m4_nut();
|
//translate([-15, -5, XOffset]) rotate([0, 90, 0]) color("blue") m4_nut();
|
||||||
//translate([15, -5, XOffset]) rotate([0, 90, 0]) color("blue") m4_nut();
|
//translate([15, -5, XOffset]) rotate([0, 90, 0]) color("blue") m4_nut();
|
||||||
|
|
||||||
|
PART = "lens_assembly_bellows_board";
|
||||||
|
|
||||||
|
if (PART == "lens_assembly_bellows_board") {
|
||||||
|
lensAssemblyBellowsBoard();
|
||||||
|
}
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue