Przeglądaj źródła

added grow lamp mount

Thomas Buck 3 lat temu
rodzic
commit
6ada55dd8e
2 zmienionych plików z 13078 dodań i 0 usunięć
  1. 140
    0
      grow_lamp_mount/lamp_mount.scad
  2. 12938
    0
      grow_lamp_mount/lamp_mount.stl

+ 140
- 0
grow_lamp_mount/lamp_mount.scad Wyświetl plik

@@ -0,0 +1,140 @@
1
+plate = 250;
2
+mount_dist = 58;
3
+trans_width = 45;
4
+trans_depth = 30;
5
+trans_height = 20;
6
+hole = 5.0;
7
+hole_dist = 2;
8
+arm_len = 70 + (hole / 2) + hole_dist;
9
+height = 3;
10
+width = 9;
11
+arm_height = 25;
12
+top_arm_len = 35.1;
13
+
14
+hook_width_add = 3;
15
+hook_dia = 15;
16
+hook_height = width;
17
+hook_size = 2;
18
+hook_off = 15;
19
+
20
+print_dist = 10;
21
+print = true;
22
+
23
+$fn = 42;
24
+
25
+module mount(layer) {
26
+    difference() {
27
+        cube([width, arm_len, height]);
28
+        
29
+        translate([width / 2, hole / 2 + hole_dist, -1])
30
+        cylinder(d = hole, h = height + 2);
31
+    }
32
+    
33
+    difference() {
34
+        translate([0, arm_len - height, 0]) {
35
+            cube([width, height, arm_height + (layer * height)]);
36
+            
37
+            translate([0, 0, arm_height + (layer * height)])
38
+            cube([width, top_arm_len, height]);
39
+        }
40
+    
41
+        translate([0, arm_len - height, 0])
42
+        translate([0, 0, arm_height + (layer * height)])
43
+        translate([width / 2, top_arm_len - 4.5, -4 * height + 2])
44
+        cylinder(d = hole, h = (height * 4) + 2);
45
+    }
46
+}
47
+
48
+module circles() {
49
+    translate([-hook_dia / 2 + hook_size, hook_height, 0])
50
+    rotate([90, 0, -0])
51
+    difference() {
52
+        cylinder(d = hook_dia, h = hook_height);
53
+        translate([0, 0, -1])
54
+        cylinder(d = hook_dia - hook_size * 2, h = hook_height + 2);
55
+        
56
+        translate([-hook_dia / 2 - 1, -hook_dia, -1])
57
+        cube([hook_dia + 2, hook_dia, hook_height + 2]);
58
+    }
59
+}
60
+
61
+module hook() {
62
+    difference() {
63
+        cube([width + hook_size + hook_width_add, width, height]);
64
+        
65
+        translate([width / 2, width / 2, -1])
66
+        cylinder(d = hole, h = height + 2);
67
+    }
68
+    
69
+    translate([width + hook_width_add, width - hook_height, height])
70
+    cube([hook_size, hook_height, hook_off]);
71
+    
72
+    translate([width + hook_width_add, width - hook_height, height + hook_off])
73
+    circles();
74
+}
75
+
76
+module print_arrangement() {
77
+    rotate([0, -90, 0])
78
+    mount(0);
79
+    
80
+    translate([print_dist, 10, 0])
81
+    rotate([0, -90, 0])
82
+    mount(1);
83
+    
84
+    translate([print_dist * 2, 20, 0])
85
+    rotate([0, -90, 0])
86
+    mount(2);
87
+    
88
+    translate([print_dist * 3, 30, 0])
89
+    rotate([0, -90, 0])
90
+    mount(3);
91
+    
92
+    translate([25, 0, width])
93
+    rotate([-90, 0, 0])
94
+    hook();
95
+}
96
+
97
+module preview_arrangement() {
98
+    // plate
99
+    translate([-plate / 2, -plate / 2, 0])
100
+    union() {
101
+        color("purple")
102
+        cube([plate, plate, 1]);
103
+        
104
+        color("green")
105
+        translate([mount_dist, mount_dist, 1])
106
+        cylinder(d = hole, h = height * 2);
107
+        
108
+        color("green")
109
+        translate([plate - mount_dist, mount_dist, 1])
110
+        cylinder(d = hole, h = height * 2);
111
+        
112
+        color("green")
113
+        translate([mount_dist, plate - mount_dist, 1])
114
+        cylinder(d = hole, h = height * 2);
115
+        
116
+        color("green")
117
+        translate([plate - mount_dist, plate - mount_dist, 1])
118
+        cylinder(d = hole, h = height * 2);
119
+        
120
+        color("orange")
121
+    translate([(plate - trans_width) / 2, (plate - trans_depth) / 2, 0])
122
+        cube([trans_width, trans_depth, trans_height]);
123
+    }
124
+
125
+    // arms
126
+    for (i = [0 : 3]) {
127
+        rotate([0, 0, 45 + (90 * i)])
128
+        translate([-width / 2, -arm_len - 27.6, 0])
129
+        mount(i);
130
+    }
131
+    
132
+    translate([-4.5, -4.5, 37])
133
+    hook();
134
+}
135
+
136
+if (print) {
137
+    print_arrangement();
138
+} else {
139
+    preview_arrangement();
140
+}

+ 12938
- 0
grow_lamp_mount/lamp_mount.stl
Plik diff jest za duży
Wyświetl plik


Ładowanie…
Anuluj
Zapisz