aboutsummaryrefslogtreecommitdiff
path: root/nikon_lens_2x2.scad
diff options
context:
space:
mode:
authorGravatar Jonas Gunz <himself@jonasgunz.de> 2023-01-15 22:01:24 +0100
committerGravatar Jonas Gunz <himself@jonasgunz.de> 2023-01-15 22:01:24 +0100
commit4a8655f51a07c675610d2d0ba45ee62414fd072d (patch)
tree157eaa02dd1d8b75acf3ac77d7c629103b648747 /nikon_lens_2x2.scad
parent8c74737fcf2029787380b94f69daaf6aa049a3b4 (diff)
downloadoscad_gridfinity-4a8655f51a07c675610d2d0ba45ee62414fd072d.tar.gz
nikon holder first draft
Diffstat (limited to 'nikon_lens_2x2.scad')
-rw-r--r--nikon_lens_2x2.scad58
1 files changed, 58 insertions, 0 deletions
diff --git a/nikon_lens_2x2.scad b/nikon_lens_2x2.scad
new file mode 100644
index 0000000..5a353ce
--- /dev/null
+++ b/nikon_lens_2x2.scad
@@ -0,0 +1,58 @@
+use <gridfinity.scad>
+$fn=50;
+
+// diameter (not radius!)
+throat = 44;
+inner = 47; // ?
+outer = 60; // ?
+
+lip_width = 2; // ?
+lip_height = 2; // ?
+lip_positions = [[50,35], [55,150], [55,265]];
+
+flange_height = 15;
+
+size_x = 2;
+size_y = 2;
+size_z = 0;
+
+module rounding_circle(radius, corner_radius, angle) {
+ rotate_extrude() {
+ translate([radius, angle>=180?corner_radius:0]) difference() {
+ rotate([0,0,angle]) square(corner_radius);
+ circle(corner_radius);
+ }
+ }
+}
+
+module lip(angle, offs) {
+ rotate([0,0,offs]) translate([0,0,lip_height/2])
+ rotate_extrude(angle=angle)
+ translate([inner/2 - lip_width/2,0,0]) square([lip_width,lip_height], center=true);
+}
+
+module nikon_f_flange() {
+ difference() {
+ linear_extrude(flange_height) difference() {
+ circle(outer/2);
+ circle(inner/2);
+ }
+ translate([0,0,flange_height-1]) rounding_circle(29,1,0);
+ }
+
+ translate([0,0,flange_height - lip_height]) {
+ for (i = lip_positions) {
+ lip(i[0],i[1]);
+ }
+ }
+
+}
+
+gridfinity(size_x,size_y,size_z);
+translate(gf_top_center(size_x,size_y,size_z)) {
+ nikon_f_flange();
+ translate([14,-39])
+ linear_extrude(1) text("Nikon", size = 7, font="sans:style=bold italic");
+}
+
+translate(gf_top_center(size_x,size_y,size_z)) rounding_circle(32.99,3,180);