diff options
author | Jonas Gunz <himself@jonasgunz.de> | 2023-01-15 22:01:24 +0100 |
---|---|---|
committer | Jonas Gunz <himself@jonasgunz.de> | 2023-01-15 22:01:24 +0100 |
commit | 4a8655f51a07c675610d2d0ba45ee62414fd072d (patch) | |
tree | 157eaa02dd1d8b75acf3ac77d7c629103b648747 | |
parent | 8c74737fcf2029787380b94f69daaf6aa049a3b4 (diff) | |
download | oscad_gridfinity-4a8655f51a07c675610d2d0ba45ee62414fd072d.tar.gz |
nikon holder first draft
-rw-r--r-- | nikon_lens_2x2.scad | 58 |
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); |