Browse Source

Added truncated teardrop module and Sink bracket

The Sink bracket file comes with a module for a generic Sink mount,
suitable for inclusion in housings and other models.
Clara Hobbs 1 year ago
parent
commit
3b188155c8
2 changed files with 98 additions and 0 deletions
  1. 87
    0
      sink_bracket.scad
  2. 11
    0
      truncated_teardrop.scad

+ 87
- 0
sink_bracket.scad View File

@@ -0,0 +1,87 @@
1
+include <MCAD/polyholes.scad>;
2
+include <MCAD/units.scad>;
3
+
4
+include <truncated_teardrop.scad>;
5
+
6
+
7
+/*
8
+ * A general-purpose mount for the PD Buddy Sink
9
+ */
10
+module sink_mount(layer_thickness=0.25*mm, height=8*mm, nut_depth=4*mm,
11
+		cutout=0.5*mm, bolt_tolerance=0.3*mm, nut_tolerance=0.05*mm) {
12
+	/* Width of the PD Buddy Sink */
13
+	sink_width = 26*mm;
14
+
15
+	difference() {
16
+		/* Body of the mount */
17
+		cube([8*mm, sink_width, height]);
18
+
19
+		/* Bolt hole bottom height.  Leave one layer_thickness as a bridge. */
20
+		bhbot = nut_depth + layer_thickness;
21
+		/* Bolt holes */
22
+		translate([4*mm, 4*mm, bhbot])
23
+			polyhole(d=3*mm + bolt_tolerance, h=height - bhbot + epsilon);
24
+		translate([4*mm, sink_width-4*mm, bhbot])
25
+			polyhole(d=3*mm + bolt_tolerance, h=height - bhbot + epsilon);
26
+
27
+		/* Nut holes */
28
+		translate([4*mm, 4*mm, -epsilon])
29
+			rotate([0, 0, 30])
30
+			cylinder(r=6.4*mm / 2 + nut_tolerance, h=nut_depth + epsilon, $fn=6);
31
+		translate([4*mm, sink_width - 4*mm, -epsilon])
32
+			rotate([0, 0, 30])
33
+			cylinder(r=6.4*mm / 2 + nut_tolerance, h=nut_depth + epsilon, $fn=6);
34
+
35
+		/* Small cutout to clear any solder bulges under the USB connector */
36
+		translate([-epsilon, 8*mm, height - cutout])
37
+			cube([8*mm + 2*epsilon, sink_width - 2*8*mm, cutout + epsilon]);
38
+	}
39
+}
40
+
41
+/*
42
+ * A bracket for mounting the PD Buddy Sink on a panel
43
+ */
44
+module sink_bracket(layer_thickness=0.25*mm, height=8*mm, nut_depth=4*mm,
45
+		cutout=0.5*mm, bolt_tolerance=0.3*mm, nut_tolerance=0.05*mm) {
46
+	sink_width = 26*mm;
47
+	halfend_width = 8*mm;
48
+	bracket_width = sink_width + 2*halfend_width;
49
+
50
+	mount_distance = 5*mm;
51
+
52
+	difference() {
53
+		union() {
54
+			cube([8*mm, halfend_width, height]);
55
+
56
+			translate([0, halfend_width, 0])
57
+				sink_mount(layer_thickness=layer_thickness, height=height,
58
+						nut_depth=nut_depth, cutout=cutout,
59
+						bolt_tolerance=bolt_tolerance,
60
+						nut_tolerance=nut_tolerance);
61
+
62
+			translate([0, halfend_width + sink_width, 0])
63
+				cube([8*mm, halfend_width, height]);
64
+		}
65
+
66
+		/* Bolt holes */
67
+		translate([-epsilon, mount_distance, height/2])
68
+			truncated_teardrop(radius=(3*mm + bolt_tolerance)/2,
69
+					length=8*mm + 2*epsilon);
70
+		translate([-epsilon, bracket_width - mount_distance, height/2])
71
+			truncated_teardrop(radius=(3*mm + bolt_tolerance)/2,
72
+					length=8*mm + 2*epsilon);
73
+
74
+		/* Nut holes */
75
+		translate([4*mm, mount_distance, height/2])
76
+			rotate([0, 90, 0])
77
+			rotate([0, 0, 30])
78
+			cylinder(r=6.4*mm / 2 + nut_tolerance, h=nut_depth + epsilon, $fn=6);
79
+		translate([4*mm, bracket_width - mount_distance, height/2])
80
+			rotate([0, 90, 0])
81
+			rotate([0, 0, 30])
82
+			cylinder(r=6.4*mm / 2 + nut_tolerance, h=nut_depth + epsilon, $fn=6);
83
+	}
84
+}
85
+
86
+
87
+sink_bracket(layer_thickness=0.25);

+ 11
- 0
truncated_teardrop.scad View File

@@ -0,0 +1,11 @@
1
+include <MCAD/teardrop.scad>;
2
+
3
+module truncated_teardrop(radius, length) {
4
+	translate([length/2, 0, 0])
5
+	intersection() {
6
+		teardrop(radius, length, angle=90);
7
+
8
+		translate([-length/2, -radius, -radius])
9
+			cube([length, 2*radius, 2*radius]);
10
+	}
11
+}

Loading…
Cancel
Save