2024-04-15 20:05:38 +00:00
|
|
|
include <./common/common.scad>;
|
|
|
|
|
2024-04-20 00:09:44 +00:00
|
|
|
FrontToBolt = 26.65;
|
|
|
|
FrontToFilmPlane = 15.85;
|
|
|
|
|
|
|
|
BaseBoltD = 6.75;
|
|
|
|
BaseRegistrationPinD = 6.5;
|
|
|
|
|
|
|
|
ChannelX = 15.5;
|
|
|
|
ChannelZ = 2.3;
|
|
|
|
|
|
|
|
PlatformX = 90.6 + 15.5 + 80.5;
|
|
|
|
PlatformY = 105 + 73;
|
|
|
|
|
|
|
|
MountX = 55;
|
|
|
|
MountY = 40;
|
|
|
|
MountZ = 70;
|
|
|
|
ExtensionY = 100;
|
|
|
|
|
|
|
|
PlatformCenterX = (PlatformX / 2) - (80.5 + 7.75);
|
|
|
|
|
|
|
|
CameraBoltD = 6.8;
|
|
|
|
|
|
|
|
module bolt_slot (pos = [0, 0, 0], D = 10, H = 10, Length = 1) {
|
|
|
|
$fn = 80;
|
|
|
|
translate (pos) {
|
|
|
|
cube([D, Length, H + 1], center = true);
|
|
|
|
translate([0, Length / 2, 0]) cylinder(r = R(D), h = H + 1, center = true);
|
|
|
|
translate([0, -Length / 2, 0]) cylinder(r = R(D), h = H + 1, center = true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-04-15 20:05:38 +00:00
|
|
|
module debug_camera() {
|
|
|
|
X = 122;
|
|
|
|
Y = 34.75;
|
|
|
|
Z = 74;
|
2024-04-20 00:09:44 +00:00
|
|
|
difference () {
|
|
|
|
cube([X, Y, Z], center = true);
|
|
|
|
translate([0, -(Y / 2) + FrontToBolt, 0]) cylinder(r = R(5), h = Z + 1, center = true, $fn = 30);
|
|
|
|
translate([0, -Y + FrontToFilmPlane, 39.75]) cube([X - 20, Y, Z], center = true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
module debug_platform () {
|
|
|
|
H = 20;
|
|
|
|
$fn = 60;
|
|
|
|
translate([0, 0, -H / 2]) {
|
|
|
|
difference () {
|
|
|
|
cube([PlatformX, PlatformY, H], center = true);
|
|
|
|
translate([PlatformCenterX, 0, (H / 2) - (ChannelZ / 2) + 0.01]) cube([ChannelX, PlatformY + 1, ChannelZ], center = true);
|
|
|
|
translate([PlatformCenterX, -(PlatformY / 2) + 84, 7 / 2]) cylinder(r = R(BaseBoltD), h = H + 1, center = true);
|
|
|
|
translate([PlatformCenterX, -(PlatformY / 2) + 20.25, 7 / 2]) cylinder(r = R(BaseBoltD), h = H + 1, center = true);
|
|
|
|
}
|
|
|
|
translate([PlatformCenterX, -(PlatformY / 2) + (16 / 2), 2 / 2]) cube([ChannelX, 16, H + 2], center = true);
|
|
|
|
translate([PlatformCenterX, -(PlatformY / 2) + 32.9, 7 / 2]) cylinder(r = R(BaseRegistrationPinD), h = H + 7, center = true);
|
|
|
|
}
|
2024-04-15 20:05:38 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
module canon_rf_ACME_camera_mount () {
|
2024-04-20 00:09:44 +00:00
|
|
|
$fn = 80;
|
|
|
|
difference () {
|
|
|
|
union () {
|
|
|
|
cube([MountX, MountY, MountZ], center = true);
|
|
|
|
translate([0, -(MountY / 2) + (ExtensionY / 2), -(MountZ / 2) + (10 / 2)]) cube([MountY + 1, ExtensionY, 10], center = true);
|
|
|
|
translate([0, -(MountY / 2) + (ExtensionY / 2), -(MountZ / 2) - (ChannelZ / 2)]) cube([ChannelX, ExtensionY, ChannelZ], center = true);
|
|
|
|
}
|
|
|
|
cube([MountX - 20, MountY + 1, MountZ - 20], center = true);
|
|
|
|
translate([0, -(MountY / 2) + (17 / 2), -MountZ / 2]) cube([ChannelX + 0.1, 17.01, 6], center = true);
|
|
|
|
|
|
|
|
//front bolt
|
|
|
|
translate([0, 0, -MountZ / 2]) cylinder(r = R(11), h = 30, center = true);
|
|
|
|
|
|
|
|
bolt_slot([0, 13, -MountZ / 2], D = BaseRegistrationPinD, H = 30, Length = 2);
|
|
|
|
translate([0, -(MountY / 2) + 84, -MountZ / 2]) cylinder(r = R(7), h = 30, center = true);
|
|
|
|
translate([0, -(MountY / 2) + 84, -(MountZ / 2) + 22.5]) cylinder(r = R(10), h = 30, center = true);
|
|
|
|
//camera bolt
|
|
|
|
translate([0, -2, MountZ / 2]) cylinder(r = R(CameraBoltD), h = 30, center = true);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
module debug () {
|
|
|
|
translate([PlatformCenterX, -69, MountZ / 2]) difference() {
|
|
|
|
canon_rf_ACME_camera_mount();
|
|
|
|
translate([50, 0, 0]) cube([100, 200, 100], center = true);
|
|
|
|
}
|
2024-04-15 20:05:38 +00:00
|
|
|
|
2024-04-20 00:09:44 +00:00
|
|
|
translate([PlatformCenterX, -60, (110/2)]) cube([1, 63.5, 110], center = true);
|
|
|
|
translate([PlatformCenterX, -80, 105]) debug_camera();
|
|
|
|
//color("red") debug_platform();
|
2024-04-15 20:05:38 +00:00
|
|
|
}
|
|
|
|
|
2024-04-20 00:09:44 +00:00
|
|
|
rotate([90, 0, 0]) canon_rf_ACME_camera_mount();
|