mcopy/scad/canon_rf_ACME_bellows_adapt...

84 lines
3.1 KiB
OpenSCAD

include <./common/common.scad>;
PlateHeight = 101;
PlateWidth = 65.5;
PlateDepth = 6.3;
BoltD = 4.64;
BoltY = 88.5;
BoltVoidD = 4.75;
CenterVoidD = 44.2;
module bolt_slot (pos = [0, 0, 0]) {
Length = 1;
$fn = 80;
translate (pos) {
cube([BoltD, Length, PlateDepth + 1], center = true);
translate([0, Length / 2, 0]) cylinder(r = BoltD / 2, h = PlateDepth + 1, center = true);
translate([0, -Length / 2, 0]) cylinder(r = BoltD / 2, h = PlateDepth + 1, center = true);
}
}
module bellows_mount_plate () {
$fn = 60;
difference () {
cube([PlateWidth, PlateHeight, PlateDepth], center = true);
cylinder(r = R(CenterVoidD), h = PlateDepth + 1, center = true, $fn = 120);
translate([0, BoltY / 2, 0]) cylinder(r = BoltVoidD / 2, h = PlateDepth + 1, center = true);
translate([0, -BoltY / 2, 0]) cylinder(r = BoltVoidD / 2, h = PlateDepth + 1, center = true);
translate([-(PlateWidth / 2) + 5, (PlateHeight / 2) + 5.5, 0]) rotate([0, 0, 30]) cube([28.5, 28.5, PlateDepth + 1], center = true);
translate([(PlateWidth / 2) - 5, (PlateHeight / 2) + 5.5, 0]) rotate([0, 0, -30]) cube([28.5, 28.5, PlateDepth + 1], center = true);
translate([-(PlateWidth / 2) + 5, -(PlateHeight / 2) - 5.5, 0]) rotate([0, 0, -30]) cube([28.5, 28.5, PlateDepth + 1], center = true);
translate([(PlateWidth / 2) - 5, -(PlateHeight / 2) - 5.5, 0]) rotate([0, 0, 30]) cube([28.5, 28.5, PlateDepth + 1], center = true);
}
}
module camera_mount_plate () {
$fn = 60;
difference () {
cube([PlateWidth, PlateHeight, PlateDepth], center = true);
cylinder(r = R(CenterVoidD), h = PlateDepth + 1, center = true, $fn = 120);
bolt_slot([0, BoltY / 2, 0]);
bolt_slot([0, -BoltY / 2, 0]);
translate([-(PlateWidth / 2) + 5, (PlateHeight / 2) + 5.5, 0]) rotate([0, 0, 30]) cube([28.5, 28.5, PlateDepth + 1], center = true);
translate([(PlateWidth / 2) - 5, (PlateHeight / 2) + 5.5, 0]) rotate([0, 0, -30]) cube([28.5, 28.5, PlateDepth + 1], center = true);
translate([-(PlateWidth / 2) + 5, -(PlateHeight / 2) - 5.5, 0]) rotate([0, 0, -30]) cube([28.5, 28.5, PlateDepth + 1], center = true);
translate([(PlateWidth / 2) - 5, -(PlateHeight / 2) - 5.5, 0]) rotate([0, 0, 30]) cube([28.5, 28.5, PlateDepth + 1], center = true);
}
}
// Canon EOS-RF Body Cap by fabioramondo
// https://www.thingiverse.com/thing:5600514
module canon_rf_body_cap () {
difference () {
intersection () {
rotate([0, 0, -15]) translate([2.6, -6.5, 2]) {
color("red") import("../stl/Canon-EOS-RF-body-cap.stl");
}
cylinder(r = R(64), h = 40, center = true, $fn = 120);
}
cylinder(r = CenterVoidD / 2, h = 20, center = true, $fn = 120);
}
difference () {
translate([0, 0, 9 / 2]) cylinder(r = R(64), h = 9, center = true, $fn = 120);
translate([0, 0, 9 / 2]) cylinder(r = R(CenterVoidD), h = 9 + 1, center = true, $fn = 120);
}
//translate([0, 37, 8/2]) cube([5, 5, 8], center = true);
}
module canon_rf_ACME_bellows_adapter () {
canon_rf_body_cap();
}
PART = "canon_rf_ACME_mount_plate";
if (PART == "canon_rf_ACME_bellows_adapter") {
canon_rf_ACME_bellows_adapter();
} else if (PART == "canon_rf_ACME_mount_plate") {
camera_mount_plate();
}
//translate([0, 0, -10]) bellows_mount_plate();