From c1a51f1ce87c96ea98b992b6225ae20e938cddd6 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sat, 1 Apr 2023 19:24:29 -0400 Subject: [PATCH] Canon EF bellows adapter --- scad/Canon_EF_body_cap.scad | 126 +++++++++++++++-------------- scad/canon_ef_bellows_adapter.scad | 13 +++ scad/canon_mount.scad | 7 +- 3 files changed, 79 insertions(+), 67 deletions(-) create mode 100644 scad/canon_ef_bellows_adapter.scad diff --git a/scad/Canon_EF_body_cap.scad b/scad/Canon_EF_body_cap.scad index d6710f8..8de1c60 100644 --- a/scad/Canon_EF_body_cap.scad +++ b/scad/Canon_EF_body_cap.scad @@ -1,63 +1,65 @@ -//Title: Canon EF Mount Body Cap -//Modified By: Robert Macgregor -//Date: March 29, 2014 -//Original Author: Alex English - ProtoParadigm -//Original Date: 8-8-2011 -//License: GPL2 - - -//$fs = .1; -$fn = 50; -module EFmount() { - //$fa = 1; - union() { - translate([0,0,-1]) - cylinder(h = 5.8, r = 66.5/2); //outer grip - translate([0, 0, 6]) - cylinder(h = 5, r = 50.5/2); - translate([0, 0, 4]) - cylinder(h = 3, r = 54/2); //lip - //translate([0, 0, 12.5]) //inner mounting hole - //cylinder(h = 3.2, r1 = 39.7/2, r2 = 39.5/2); - translate([0, 0, 7]) - threads(); - rotate([0, 0, -33]) - translate([-67/2, 0, 1.9]) - cube(size=[1, 2, 5.8], center = true); //alignment mark - - } -} - -module threads() { - difference() { - cylinder(h = 4, r = 53.2/2); //thread outer - cylinder(h = 4, r = 50.4/2); //thread cylinder - cylinder(h = 2.6, r = 54/2); //gap lip to thread - for(i = [ [0, 0, 0], [180, 0, -70], [0, 0, -120], [180, 0, -180], [0, 0, -230], [180, 0, -300] ]) - { - rotate(i) - translate([-35, 0, -5]) - cube(size=[40, 18, 10]); - } - } - intersection() { - difference() { - cylinder(h = 4, r = 54/2); - cylinder(h = 4, r = 50.4/2); - } - translate([-54/2+.4, 0, 0]) - cube(size=[4, 1.9, 4], center = false); //thread stopper - } -} - -difference() { - EFmount(); - translate([0, 0, 1.4]) - cylinder(h = 10, r = 41.5/2); - for(k = [44.639 : 8.639 : 385]) { - rotate([0, 0, -k]) - translate([-68/2, 0, -1.1]) - cylinder(h = 6, r = 2); - } - //cylinder(h = 17, r = 33/2); +//Title: Canon EF Mount Body Cap +//Modified By: Robert Macgregor +//Date: March 29, 2014 +//Original Author: Alex English - ProtoParadigm +//Original Date: 8-8-2011 +//License: GPL2 + + +//$fs = .1; +$fn = 120; +module EFmount_body() { + //$fa = 1; + union() { + translate([0,0,-1]) + cylinder(h = 5.8, r = 66.5/2); //outer grip + translate([0, 0, 6]) + cylinder(h = 5, r = 50.5/2); + translate([0, 0, 4]) + cylinder(h = 3, r = 54/2); //lip + //translate([0, 0, 12.5]) //inner mounting hole + //cylinder(h = 3.2, r1 = 39.7/2, r2 = 39.5/2); + translate([0, 0, 7]) + threads(); + rotate([0, 0, -33]) + translate([-67/2, 0, 1.9]) + cube(size=[1, 2, 5.8], center = true); //alignment mark + + } +} + +module threads() { + difference() { + cylinder(h = 4, r = 53.2/2); //thread outer + cylinder(h = 4, r = 50.4/2); //thread cylinder + cylinder(h = 2.6, r = 54/2); //gap lip to thread + for(i = [ [0, 0, 0], [180, 0, -70], [0, 0, -120], [180, 0, -180], [0, 0, -230], [180, 0, -300] ]) + { + rotate(i) + translate([-35, 0, -5]) + cube(size=[40, 18, 10]); + } + } + intersection() { + difference() { + cylinder(h = 4, r = 54/2); + cylinder(h = 4, r = 50.4/2); + } + translate([-54/2+.4, 0, 0]) + cube(size=[4, 1.9, 4], center = false); //thread stopper + } +} + +module EFmount () { + difference() { + EFmount_body(); + translate([0, 0, 1.4]) + cylinder(h = 10, r = 41.5/2); + for(k = [44.639 : 8.639 : 385]) { + rotate([0, 0, -k]) + translate([-68/2, 0, -1.1]) + cylinder(h = 6, r = 2); + } + //cylinder(h = 17, r = 33/2); + } } \ No newline at end of file diff --git a/scad/canon_ef_bellows_adapter.scad b/scad/canon_ef_bellows_adapter.scad new file mode 100644 index 0000000..4456c14 --- /dev/null +++ b/scad/canon_ef_bellows_adapter.scad @@ -0,0 +1,13 @@ +include <./Canon_EF_body_cap.scad>; +include <./common/common.scad>; + +difference () { + union () { + EFmount(); + translate([0, 0, -3]) cylinder(r = 38 / 2, h = 10, center = true, $fn = 360); + } + //guide + translate([0, 0, -3]) rotate([0, 0, 8.75]) translate([0, -26, 0]) cylinder(r = R(3), h = 4, center= true); + //center void + cylinder(r = 32 / 2, h = 30, center = true, $fn = 360); +} \ No newline at end of file diff --git a/scad/canon_mount.scad b/scad/canon_mount.scad index fdc4221..9c064cb 100644 --- a/scad/canon_mount.scad +++ b/scad/canon_mount.scad @@ -9,6 +9,7 @@ MountY = 97.6; MountZ = 73; CameraY = 15; +CameraBoltD = 6.4; function hypotenuese(X) = sqrt(pow(X, 2) + pow(X, 2)); @@ -107,15 +108,11 @@ module canon_m_50_mount () { //void around camera bolt translate([0, CameraY, (Z/2) - 15]) cylinder(r = R(30), h = 20, center = true, $fn = 100); //void for camera bolt - translate([0, CameraY, (Z/2)]) cylinder(r = R(5), h = 20 + 1, center = true, $fn = 60); + translate([0, CameraY, (Z/2)]) cylinder(r = R(CameraBoltD), h = 20 + 1, center = true, $fn = 60); //void for base bolts base_nut_void([0, SPACING/2, -(Z/2) + 10]); base_nut_void([0, -SPACING/2, -(Z/2) + 10]); - - //bolt access - //translate([0, 0, -10]) rotate([0, 45, 0]) cube([ACCESS, Y + 1, ACCESS], center = true); - //translate([0, 0, -10 - (ACCESS/2) + (10/4)])cube([DIAG, Y + 1, 10], center = true); } } }