Add a bellows adapter for Canon RF cameras and an ACME bellows

This commit is contained in:
Matt McWilliams 2024-04-14 13:34:41 -06:00
parent 63f4278b2b
commit 67a290a02a
9 changed files with 89 additions and 8 deletions

View File

@ -1,5 +1,5 @@
{
"version": "1.8.102",
"version": "1.8.103",
"ext_port": 1111,
"profiles": {
"mcopy": {

2
app/package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "mcopy-app",
"version": "1.8.102",
"version": "1.8.103",
"lockfileVersion": 2,
"requires": true,
"packages": {

View File

@ -1,6 +1,6 @@
{
"name": "mcopy-app",
"version": "1.8.102",
"version": "1.8.103",
"description": "GUI for the mcopy small gauge film optical printer platform",
"main": "main.js",
"scripts": {

View File

@ -1,5 +1,5 @@
{
"version": "1.8.102",
"version": "1.8.103",
"ext_port": 1111,
"profiles": {
"mcopy": {

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "mcopy",
"version": "1.8.102",
"version": "1.8.103",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "mcopy",
"version": "1.8.102",
"version": "1.8.103",
"license": "MIT",
"dependencies": {
"alert": "file:app/lib/alert",

View File

@ -1,6 +1,6 @@
{
"name": "mcopy",
"version": "1.8.102",
"version": "1.8.103",
"description": "Small gauge film optical printer platform",
"main": "build.js",
"directories": {

View File

@ -1,5 +1,5 @@
{
"version": "1.8.102",
"version": "1.8.103",
"ext_port": 1111,
"profiles": {
"mcopy": {

View File

@ -0,0 +1,81 @@
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 = CenterVoidD / 2, 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 = CenterVoidD / 2, 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 = 64 / 2, h = 40, center = true, $fn = 120);
}
cylinder(r = CenterVoidD / 2, h = 20, center = true, $fn = 120);
}
difference () {
translate([0, 0, 9 / 2]) cylinder(r = 64 / 2, h = 9, center = true, $fn = 120);
translate([0, 0, 9 / 2]) cylinder(r = CenterVoidD / 2, 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_bellows_adapter";
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();

Binary file not shown.