This commit is contained in:
Kaan Barmore-Genç 2023-12-14 22:27:42 -06:00
commit 5c5975cdce
Signed by: kaan
GPG key ID: B2E280771CD62FCF
25 changed files with 245 additions and 0 deletions

3
.gitattributes vendored Normal file
View file

@ -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

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
*.gcode

BIN
coffee-bean-dozing-cup.blend (Stored with Git LFS) Normal file

Binary file not shown.

BIN
coffee-bean-dozing-cup.stl (Stored with Git LFS) Normal file

Binary file not shown.

BIN
contact-lens-case-holder.blend (Stored with Git LFS) Normal file

Binary file not shown.

BIN
contact-lens-case-holder.blend1 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
contact-lens-case-holder.stl (Stored with Git LFS) Normal file

Binary file not shown.

BIN
display-camera-pi-mount-experiment.stl (Stored with Git LFS) Normal file

Binary file not shown.

102
display-camera-pi.scad Normal file
View file

@ -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);
};
};

BIN
display-camera-pi.stl (Stored with Git LFS) Normal file

Binary file not shown.

17
grommet.scad Normal file
View file

@ -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);
};

BIN
grommet.stl (Stored with Git LFS) Normal file

Binary file not shown.

27
parametric-stand.scad Normal file
View file

@ -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);
}
}

38
recipe-holder.scad Normal file
View file

@ -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]);
};
};

BIN
recipe-holder.stl (Stored with Git LFS) Normal file

Binary file not shown.

BIN
stand-short.blend (Stored with Git LFS) Normal file

Binary file not shown.

BIN
stand-short.stl (Stored with Git LFS) Normal file

Binary file not shown.

BIN
stand-very-short.blend (Stored with Git LFS) Normal file

Binary file not shown.

BIN
stand-very-short.stl (Stored with Git LFS) Normal file

Binary file not shown.

BIN
stand.blend (Stored with Git LFS) Normal file

Binary file not shown.

BIN
stand.blend1 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
stand.stl (Stored with Git LFS) Normal file

Binary file not shown.

BIN
wide-recipe-holder.blend (Stored with Git LFS) Normal file

Binary file not shown.

BIN
wide-recipe-holder.blend1 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
wide-recipe-holder.stl (Stored with Git LFS) Normal file

Binary file not shown.