commit 5c5975cdcef46b23eed0015ef6e4a4dec13887ae Author: Kaan Barmore-Genc Date: Thu Dec 14 22:27:42 2023 -0600 init diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..2673a1a --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +*.blend filter=lfs diff=lfs merge=lfs -text +*.blend1 filter=lfs diff=lfs merge=lfs -text +*.stl filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..26a3dc1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.gcode diff --git a/coffee-bean-dozing-cup.blend b/coffee-bean-dozing-cup.blend new file mode 100644 index 0000000..0b0015e --- /dev/null +++ b/coffee-bean-dozing-cup.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7373a74844af1145978da7f09c880868936e01765c2e4a9b4ccb0396d891864e +size 887780 diff --git a/coffee-bean-dozing-cup.stl b/coffee-bean-dozing-cup.stl new file mode 100644 index 0000000..3a7f53c --- /dev/null +++ b/coffee-bean-dozing-cup.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7729e4154d850e4b58701da705869e5d66f7f65ceab8a8895403bd72941c83d5 +size 3984 diff --git a/contact-lens-case-holder.blend b/contact-lens-case-holder.blend new file mode 100644 index 0000000..403b52b --- /dev/null +++ b/contact-lens-case-holder.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6fe3a79ce14dae989678364f4c5ea009a127f542c56ced581add5c54accc444 +size 913756 diff --git a/contact-lens-case-holder.blend1 b/contact-lens-case-holder.blend1 new file mode 100644 index 0000000..b9eb0cc --- /dev/null +++ b/contact-lens-case-holder.blend1 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d92a120da7695f1d60cd5fed8cc7b3f9eee8d7ab03120f0d31e156e8188868a +size 912924 diff --git a/contact-lens-case-holder.stl b/contact-lens-case-holder.stl new file mode 100644 index 0000000..885eb64 --- /dev/null +++ b/contact-lens-case-holder.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58e03d4ddc998f2675484f21fdbf22f7c4ad169ee8058efc32510da38e323bd3 +size 19784 diff --git a/display-camera-pi-mount-experiment.stl b/display-camera-pi-mount-experiment.stl new file mode 100644 index 0000000..8c11a52 --- /dev/null +++ b/display-camera-pi-mount-experiment.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3b10033c64f3e2fdde52ed5ad04e65548ebf8424fac046dcaa30507fa9541e2 +size 174284 diff --git a/display-camera-pi.scad b/display-camera-pi.scad new file mode 100644 index 0000000..b875e3e --- /dev/null +++ b/display-camera-pi.scad @@ -0,0 +1,102 @@ +$triangle_width = 65; +$triangle_height = 40; +$triangle_thickness = 5.87; +$triangle_screw_hole_diameter = 4.7; + +$triangle_x_hole_gap = 40; +$triangle_y_hole_gap = 20; +$triangle_x_offset = 19; +$triangle_y_offset = 5; + +$fn=200; + +screen_mount(); + +module attachment_point() { + difference() { + linear_extrude($triangle_thickness) + polygon([[0, 0], [$triangle_width, $triangle_height], [$triangle_width, 0]]); + translate([$triangle_x_offset, $triangle_y_offset, 0]) + union() { + hole_puncher(); + translate([$triangle_x_hole_gap, 0, 0]) hole_puncher(); + translate([$triangle_x_hole_gap, $triangle_y_hole_gap, 0]) hole_puncher(); + }; + translate([$rounded_nose, 4.234, -0.2]) + rotate([0, 0, 120]) + nose_rounding(); + translate([0, $triangle_height - $triangle_y_offset * 1.5, -0.1]) + cube([100, 100, $triangle_thickness * 3]); + translate([45, 12, -0.1]) + cylinder(h=100, r=10); + translate([28, 8, -0.1]) + cylinder(h=100, r=4); + }; +}; + +$screen_enter_diameter = 10; +$screen_lock_diameter = 6.25; +$screen_enter_gap = 30 + $screen_lock_diameter; +$screen_enter_y_offset = 14; +$screen_mount_width = 50; +$screen_mount_height = 60; +$screen_mount_thickness = 5; +$screen_side_cutout_size = 36; + +module screen_mount() { + difference() { + cube([$screen_mount_width, $screen_mount_height, $screen_mount_thickness]); + translate([$screen_mount_width / 2, $screen_enter_y_offset, -0.1]) + cylinder(h=$screen_mount_thickness * 2, d=$screen_enter_diameter); + translate([$screen_mount_width / 2, $screen_enter_y_offset + $screen_enter_gap, -0.1]) + cylinder(h=$screen_mount_thickness * 2, d=$screen_enter_diameter); + for (i = [0:1:7]) { + mount_hole_puncher(i * -1); + }; + translate([$screen_mount_width, $screen_mount_height / 2, -0.1]) + cylinder(h=$screen_mount_thickness * 2, d=$screen_side_cutout_size); + translate([0, $screen_mount_height / 2, -0.1]) + cylinder(h=$screen_mount_thickness * 2, d=$screen_side_cutout_size); + /* + translate([25, 0, -0.1]) + rotate([0, 0, -30]) + cube([$screen_mount_width, $screen_mount_height, $screen_mount_thickness * 2]); + translate([-10, -20, -0.1]) + rotate([0, 0, 30]) + cube([$screen_mount_width, $screen_mount_height, $screen_mount_thickness * 2]); + + translate([0, $screen_mount_height, 0]) + mirror([0, 1, 0]) + union() { + translate([25, 0, -0.1]) + rotate([0, 0, -30]) + cube([$screen_mount_width, $screen_mount_height, $screen_mount_thickness * 2]); + translate([-10, -20, -0.1]) + rotate([0, 0, 30]) + cube([$screen_mount_width, $screen_mount_height, $screen_mount_thickness * 2]); + }; + */ + }; +}; + +module mount_hole_puncher($gap) { + translate([$screen_mount_width / 2, $screen_enter_y_offset + $gap, -0.1]) + cylinder(h=$screen_mount_thickness * 2, d=$screen_lock_diameter); + translate([$screen_mount_width / 2, $screen_enter_y_offset + $screen_enter_gap + $gap, -0.1]) + cylinder(h=$screen_mount_thickness * 2, d=$screen_lock_diameter); +}; + +module hole_puncher() { + translate([0, 0, $triangle_thickness * -1]) + cylinder(h=$triangle_thickness * 3, d=$triangle_screw_hole_diameter); +}; + +$rounded_nose = 25; +module nose_rounding() { + difference() { + color("red") cube([$rounded_nose, $rounded_nose, $triangle_thickness * 2]); + translate([-3, 0, $triangle_thickness / -2]) + color("blue") + cylinder(h=$triangle_thickness * 3, d=$rounded_nose); + }; +}; \ No newline at end of file diff --git a/display-camera-pi.stl b/display-camera-pi.stl new file mode 100644 index 0000000..96be8f2 --- /dev/null +++ b/display-camera-pi.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b363bc940a70bcf7c5d88af18c76c19a8aa935dd53b1d57c95cd7db4f2cf799 +size 170284 diff --git a/grommet.scad b/grommet.scad new file mode 100644 index 0000000..7407f14 --- /dev/null +++ b/grommet.scad @@ -0,0 +1,17 @@ +// All units in mm +$hole_diameter = 79.67; +$overhang_width = 5.0; +$inner_thickness = 3.0; +$inner_height = 20.0; +$outer_height = 5.0; +// Smoothness +$fn=400; + +difference() { + union() { + cylinder(h=$outer_height, d=$hole_diameter + $overhang_width * 2); + cylinder(h=$inner_height + $outer_height, d=$hole_diameter); + }; + translate([0, 0, $inner_height * -1]) + cylinder(h=$inner_height * 3, d=$hole_diameter - $inner_thickness * 2); +}; diff --git a/grommet.stl b/grommet.stl new file mode 100644 index 0000000..eaae00e --- /dev/null +++ b/grommet.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:858f58b985510f3a096750d24786284c5f9665a7731c7307f2c3f966fa05327b +size 240084 diff --git a/parametric-stand.scad b/parametric-stand.scad new file mode 100644 index 0000000..8f293f3 --- /dev/null +++ b/parametric-stand.scad @@ -0,0 +1,27 @@ +$width = 220; +$height = 100; + +difference() { + linear_extrude(5) + square([$width, $height]); + for (i=[0:1:5]) { + $even_row = i%2; + translate([0, 10 + i * 16, -5]) row_cylinders(diameter=14, gap=6, x_offset=$even_row*4); + } +}; + +module row_cylinders(diameter=20, gap=10, x_offset=0, length=220) { + // One spacing will be split between the start and the end. + $count = floor((length - 2 * x_offset) / (diameter + gap)); + // It's not always possible to perfectly fit all the columns, sometimes + // you end up with extra space. In that case, the space will be split + // into the start and the end. + $leftover = (length - 2 * x_offset) % (diameter + gap); + + for (dx=[(diameter + gap + $leftover) / 2 + x_offset + : diameter + gap + : length - ((gap + $leftover) / 2 + x_offset) + ]) { + translate([dx, 0, 0]) cylinder(h=20, d=diameter); + } +} diff --git a/recipe-holder.scad b/recipe-holder.scad new file mode 100644 index 0000000..81e01a8 --- /dev/null +++ b/recipe-holder.scad @@ -0,0 +1,38 @@ +// Base is the bottom part where the recipe will go into +$base_width = 150; +$base_depth = 14; +$base_height = 14; + +// The size of the gap the recipe needs to fit into +$recipe_gap_lip = 8; +$recipe_gap = 5; +$recipe_angle = 30; // degrees + +// The support part in the back to hold the recipe +$frame_width = 20; +$frame_depth = $base_depth / 2 - $recipe_gap / 2; +$frame_height = 180; + +$support_width = $frame_width; +$support_depth = $frame_height * cos(90 - $recipe_angle); +$support_height = 5; + +translate([$base_width / 2 - $support_width / 2, -1 * $support_depth, 0]) + support(); +rotate([$recipe_angle, 0, 0]) + holder(); + + +module support() { + cube([$support_width, $support_depth, $support_height]); +}; + +module holder() { + translate([$base_width / 2 - $frame_width / 2, 0, 0]) + cube([$frame_width, $frame_depth, $frame_height]); + difference() { + cube([$base_width, $base_depth, $base_height]); + translate([-1 * $base_width, $base_depth / 2 - $recipe_gap / 2, $base_height - $recipe_gap_lip]) + cube([$base_width * 3, $recipe_gap, $base_height * 2]); + }; + }; \ No newline at end of file diff --git a/recipe-holder.stl b/recipe-holder.stl new file mode 100644 index 0000000..5c69a2e --- /dev/null +++ b/recipe-holder.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d1f3d3be002e8bacf359e868e32f6dcb4312192b69086e0d90380912460ae1d +size 3284 diff --git a/stand-short.blend b/stand-short.blend new file mode 100644 index 0000000..8d09dcf --- /dev/null +++ b/stand-short.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61d75ebc724545b86e0274943c0328b362d2370105ddd19e455179facac682bb +size 1069812 diff --git a/stand-short.stl b/stand-short.stl new file mode 100644 index 0000000..5292c76 --- /dev/null +++ b/stand-short.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6e3eb758877396fe4fda4465e9e8187e74acc9536a6873565c0505ec29efef9 +size 630284 diff --git a/stand-very-short.blend b/stand-very-short.blend new file mode 100644 index 0000000..6003834 --- /dev/null +++ b/stand-very-short.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1dd4c2ed609dde15bc52f161a0d4ab3e24942ec600cb5a1462f605990668fa6e +size 1366204 diff --git a/stand-very-short.stl b/stand-very-short.stl new file mode 100644 index 0000000..d87b373 --- /dev/null +++ b/stand-very-short.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5beffe66812c0703cd16847568840e76cb06310be05a71d283010d4fbaa5bd5 +size 634184 diff --git a/stand.blend b/stand.blend new file mode 100644 index 0000000..0f1bbb4 --- /dev/null +++ b/stand.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:220f80ce60d1c74c874ac64351abc16cd90669926fc08e8a1ce03b143086d466 +size 1376960 diff --git a/stand.blend1 b/stand.blend1 new file mode 100644 index 0000000..e25c28f --- /dev/null +++ b/stand.blend1 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a35cfe828d2243743b0bb6011d1b610021f48c74d842519242b6d963864d500e +size 1096156 diff --git a/stand.stl b/stand.stl new file mode 100644 index 0000000..6f42e95 --- /dev/null +++ b/stand.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11d1bbe93a68cf53145112e88dda2cd5a89b94eccf62f576e364ed90c3d8abf4 +size 244284 diff --git a/wide-recipe-holder.blend b/wide-recipe-holder.blend new file mode 100644 index 0000000..270cfbf --- /dev/null +++ b/wide-recipe-holder.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5eb5c631d529e0af49858089fb8a7a68cd626e004e1796b0bb4a29d7a3405136 +size 1220204 diff --git a/wide-recipe-holder.blend1 b/wide-recipe-holder.blend1 new file mode 100644 index 0000000..8b3c337 --- /dev/null +++ b/wide-recipe-holder.blend1 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eebc27143a471eaac9067005cd3bc2bd033d05b2d41f88a3b57c438cfb7bcbc1 +size 1239000 diff --git a/wide-recipe-holder.stl b/wide-recipe-holder.stl new file mode 100644 index 0000000..8b12753 --- /dev/null +++ b/wide-recipe-holder.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b4761e1260675ef566407557b1fc1539ccb2bbd852cb5099674ac111f3288b8 +size 305584