Browse Source

Add multiple lens and camera mounts

master
Steve Cross 6 months ago
parent
commit
85b5fdbcf3
Signed by: hairlesshobo GPG Key ID: A89EDFF0F5E08A30
  1. 39
      Lens Mount/Canon_EF_70-300_Vixen.scad
  2. BIN
      Lens Mount/Exported/Camera_Shim_EOS60D.stl
  3. BIN
      Lens Mount/Exported/Canon_EF_70-300_Vixen.stl
  4. BIN
      Lens Mount/Exported/Rokinon_16mm_ED_AS_UMC_Vixen.stl
  5. BIN
      Lens Mount/Exported/ZWO_ASI178MC_Vixen.stl
  6. 38
      Lens Mount/Rokinon_16mm_ED_AS_UMC_Vixen.scad
  7. 71
      Lens Mount/_camera_shim.scad
  8. 127
      Lens Mount/_split_ring.scad

39
Lens Mount/Canon_EF_70-300_Vixen.scad

@ -0,0 +1,39 @@
/*
* Astro Parts -- Canon EF 70-300 on Vixen Dovetail Plate
*
* Copyright (c) 2021 Steve Cross <flip@foxhollow.cc>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
include <_split_ring.scad>;
// This is designed for Canon EF 70-300 lens
// mount with standard bar offset (as defined by the EOS 60D and EOS
// 600D measurements)...
// This lens has a has a 76mm diameter and is round when measured near the
// EOS mounting flange, which is the only location on this lens that doesn't
// rotate when focusing or
mounting_point_diameter = 76;
// The camera allows for 13mm mounting width, but this doesn't provide enough
// room for a 1/4" nut, so we need to make it a little wider and it can just
// hang over a bit
ring_w = 15;
// This is standard for a vixen dovetail plate
dovetail_width = 35;

BIN
Lens Mount/Exported/Camera_Shim_EOS60D.stl

Binary file not shown.

BIN
Lens Mount/Exported/Canon_EF_70-300_Vixen.stl

Binary file not shown.

BIN
Lens Mount/Exported/Rokinon_16mm_ED_AS_UMC_Vixen.stl

Binary file not shown.

BIN
Lens Mount/Exported/ZWO_ASI178MC_Vixen.stl

Binary file not shown.

38
Lens Mount/Rokinon_16mm_ED_AS_UMC_Vixen.scad

@ -0,0 +1,38 @@
/*
* Astro Parts -- ASI178MC on Vixen Dovetail Plate
*
* Copyright (c) 2021 Steve Cross <flip@foxhollow.cc>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
include <_split_ring.scad>;
// This is designed for Rokinon 16mm ED AS UMC CS lens for Canon EOS
// mount with standard bar offset (as defined by the EOS 60D and EOS
// 600D measurements)...
// This lens has a has a 80mm diameter and is round when measured near the
// objective lens
mounting_point_diameter = 80;
// The camera allows for 13mm mounting width, but this doesn't provide enough
// room for a 1/4" nut, so we need to make it a little wider and it can just
// hang over a bit
ring_w = 15;
// This is standard for a vixen dovetail plate
dovetail_width = 35;

71
Lens Mount/_camera_shim.scad

@ -0,0 +1,71 @@
/*
* Astro Parts -- Camera Shim
*
* Copyright (c) 2021 Steve Cross <flip@foxhollow.cc>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
// [unit: mm]
width = 35;
// [unit: mm]
height = 31;
// height = 5;
// [unit: mm]
length = 40;
// [unit: mm]
bolt_shaft_d = 6.75;
// [unit: mm]
alignment_pin_d = 6.5;
// [unit: mm]
alignment_pin_h = 5;
// [unit: mm]
// distance from the outside of the bolt hole to the alignment pins
alignment_pin_offset = 2;
$fn = 360;
difference() {
cube([width, length, height]);
translate([width/2, length/2, -1])
cylinder(h=height+2, d=bolt_shaft_d);
}
// pin 1
translate([width/2, length/2+(alignment_pin_offset+bolt_shaft_d/2), 0]) {
difference() {
cylinder(h=height+alignment_pin_h, d=alignment_pin_d);
translate([-alignment_pin_d/2, -alignment_pin_d/2, -1])
cube([alignment_pin_d, alignment_pin_d/2, height+alignment_pin_h+2]);
}
}
// pin 2
translate([width/2, length/2-(alignment_pin_offset+bolt_shaft_d/2), 0]) {
difference() {
cylinder(h=height+alignment_pin_h, d=alignment_pin_d);
translate([-alignment_pin_d/2, 0, -1])
cube([alignment_pin_d, alignment_pin_d/2, height+alignment_pin_h+2]);
}
}

127
Lens Mount/_split_ring.scad

@ -18,61 +18,128 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
// The EOS 60/600D have a 40mm offset from bottom of camera to center of the
// imaging sensor and sits on a 31mm shim plate.. this means the total distance
// from the plate to the center of the sensor is 71mm. This is what we
// will call "the standard".
// [unit: mm]
// This is the "standard" offset that needs to be consistent
// across all lens and camera combinations in order for one
// set of printed rings to be interchangeable with any other
// combination of lens and/or camera.
standard_offset = 71;
// [unit: mm]
// how many millimeters from the bottom of the lens mount point to the top of
// the dovetail bar. do **not** deduct the ring thickness from this number!
bar_offset = 30;
// bar_offset = 40;
// [unit: mm]
// [override]
// the diameter of the lens or camera
mounting_point_diameter = 62;
// [unit: mm]
// how wide should the bar spacer at the bottom of the split ring
// be.. this should match the width of the top of whatever mounting
// plate is being used
dovetail_width = 35;
// [unit: mm]
ring_inner_d = 76;
// how big of a gap should there be between the top and the
// bottom half of the rings. This is to ensure that when you
// bolt the rings together, it can hold nice and tight.
ring_split_w = 2;
// [unit: mm]
// how wide should the ring assembly be. Wider will provide more strength
// and stability, but can only be as wide as the lens allows. Must be at
// least wide enough to handle the diameter of the base nut (13mm)
ring_w = 15;
// [unit: mm]
tab_w = 15;
// [unit: mm]
tab_bolt_shaft_d = 5;
tab_bolt_shaft_d = 4.8;
// [unit: mm]
tab_nut_d = 10;
tab_nut_d = 7.45; // measured 6.99
// [unit: mm]
tab_nut_h = 3;
tab_nut_h = 2.75; // measure 2.57
// [unit: mm]
wall_thickness = 5;
// [unit: mm]
base_bolt_shaft_d = 6.75;
// TODO: MAKE_SHARED
base_bolt_shaft_d = 6.9;
// [unit: mm]
// Diameter of the nut
// TODO: MAKE_SHARED
base_nut_diameter = 12.9;
// [unit: mm]
// TODO: MAKE_SHARED
base_nut_height = 4;
// [unit: mm]
// How far from the bottom of the base stand should the nut sit
base_nut_offset = 10;
// [unit: mm]
// Diameter of the nut
base_nut_diameter = 12.5;
// How much padding should be added to the ring inner diameter
// to account for the padding that is to be placed between
// the ring and the camera or lens
ring_offset_for_padding = 2;
// [unit: mm]
base_nut_height = 4;
ring_outer_d = ring_inner_d + (wall_thickness*2);
bar_offset = standard_offset - (mounting_point_diameter/2);
ring_inner_d = mounting_point_diameter + ring_offset_for_padding;
ring_outer_d = ring_inner_d + (wall_thickness*2);
overall_width = ring_outer_d + (tab_w * 2);
top_height = ring_outer_d / 2;
bottom_height = ring_outer_d/2 + bar_offset-wall_thickness;
ring_split_offset = ring_split_w / 2;
$fn = 360;
top_height = ring_outer_d/2;
bottom_height = ring_outer_d/2 + bar_offset;
// rotate([90, 0, 0])
// difference() {
// cube([test_height, test_width, test_depth]);
fh_make_split_ring();
// translate([test_width/2, test_height/2, -1])
// cylinder(h=test_height+2, d=tab_bolt_shaft_d);
// translate([test_width/2, test_height/2, -1])
// cylinder(h=test_height/2, d=tab_nut_d, $fn=6);
// };
translate([-10+ring_split_offset, 0, 0])
fh_make_split_ring_top();
translate([10-ring_split_offset, 0, 0])
fh_make_split_ring_bottom();
module fh_make_split_ring_bottom() {
difference() {
fh_make_split_ring();
translate([-ring_outer_d/2-1+ring_split_offset, -overall_width/2-1, -1])
cube([ring_outer_d/2+1, overall_width+2, ring_w + 2]);
}
}
module fh_make_split_ring_top() {
difference() {
fh_make_split_ring();
translate([0-ring_split_offset, -overall_width/2-1, -1])
cube([bottom_height+2, overall_width+2, ring_w + 2]);
}
}
module fh_make_split_ring() {
@ -83,7 +150,7 @@ module fh_make_split_ring() {
cylinder(h=ring_w, d=ring_outer_d, $fn=360);
// coupling tabs
cube2([wall_thickness*2, overall_width, ring_w]);
cube2([wall_thickness*2+ring_split_w, overall_width, ring_w]);
// bottom mounting post
translate([ring_inner_d/2, -dovetail_width/2, 0])
@ -115,18 +182,38 @@ module fh_make_split_ring() {
cylinder(d=tab_bolt_shaft_d, h=wall_thickness*2+2, center=false, $fn=360);
// punch out L the tab nut hole
translate([(-wall_thickness-2) - wall_thickness/2, ring_outer_d/2 + tab_w/2, ring_w/2])
translate([wall_thickness - tab_nut_h + ring_split_offset, ring_outer_d/2 + tab_w/2, ring_w/2])
rotate([90, 0, 90])
cylinder(wall_thickness+2, d=tab_nut_d, center=false, $fn=6);
cylinder(wall_thickness+1, d=tab_nut_d, center=false, $fn=6);
// punch out the R tab nut hole
translate([(-wall_thickness-2) - wall_thickness/2, -ring_outer_d/2 - tab_w/2, ring_w/2])
translate([wall_thickness - tab_nut_h + ring_split_offset, -ring_outer_d/2 - tab_w/2, ring_w/2])
rotate([90, 0, 90])
cylinder(wall_thickness+2, d=tab_nut_d, center=false, $fn=6);
cylinder(wall_thickness+1, d=tab_nut_d, center=false, $fn=6);
}
}
module cube2(dimensions) {
translate([-dimensions[0]/2, -dimensions[1]/2, 0])
cube(dimensions);
}
}
// test_height = 15;
// test_width = 15;
// test_depth = 15;
// rotate([90, 0, 0])
// translate([-test_height*2, 0, 0])
// difference() {
// cube([test_height, test_width, test_depth]);
// translate([test_width/2, test_height/2, -1])
// cylinder(h=test_height+2, d=base_bolt_shaft_d);
// translate([test_width/2, test_height/2, -1])
// cylinder(h=test_height/2, d=base_nut_diameter, $fn=6);
// };

Loading…
Cancel
Save