-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathEasyPhoresis.scad
111 lines (101 loc) · 2.23 KB
/
EasyPhoresis.scad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
// DIYbio EasyPhoresis
// by alec_djinn 2014
// www.diybiogroningen.org
show_body = false;
show_gel = true;
show_comb = false;
use_nice_bottom = true;
// dimensions
width = 40;
height = 20;
depth = 110;
thickness = 2.5;
// body shape
module body(width,height,depth,thickness){
difference() {
minkowski(){
cube([width,depth,height], center=true);
cylinder(r=thickness, h=1);
}
if (use_nice_bottom)
{
translate([0,0,height]){
rotate([0,90,0]){
cylinder (h=3*height, r=height, center=true);
}
}
}
}
}
module gel(width,height,depth,thickness){
translate([0,0,-height]){
difference(){
difference(){
union(){
translate([0,0,-height/8]){
cube([width+2*thickness,depth/1.5,height/8], center=true);
}
cube([width-2,depth/1.5,height/4], center=true);
}
translate([0,0,-height/12]){
cube([width-(2*thickness),depth/1.2,height/4], center=true);
}
}
// comb holder
translate([-width/2,depth/3.5,-2*thickness]){
cylinder(h=thickness, r=thickness/2);
}
translate([width/2,depth/3.5,-2*thickness]){
cylinder(h=thickness, r=thickness/2);
}
translate([-width/2,-depth/(6*3.5),-2*thickness]){
cylinder(h=thickness, r=thickness/2);
}
translate([width/2,-depth/(6*3.5),-2*thickness]){
cylinder(h=thickness, r=thickness/2);
}
}
}
}
// 9 wells comb
module comb(width,height,depth,thickness){
translate([0,0,-1.5*height]){
union(){
translate([-width/2,depth/3.5,-2*thickness]){
cylinder(h=thickness, r=thickness/2);
}
translate([width/2,depth/3.5,-2*thickness]){
cylinder(h=thickness, r=thickness/2);
}
translate([0,depth/3.5,(-height/8)-thickness]){
cube([width+2*thickness,depth/12,height/8],center=true);
}
translate([thickness/2,0,0]){
// numbers of wells
for(n=[1:2.4*width/10]){
translate([(-width/2)+thickness*n*1.5,depth/3.5,-height/10]){
cube([thickness,depth/64,height/5],center=true);
}
}
}
}
}
}
if (show_body)
{
// body: shape - void
difference(){
body(width,height,depth,thickness);
translate([0,0,-thickness]){
body(width-thickness,height-thickness,depth-thickness);
}
}
}
if (show_gel)
{
gel(width,height,depth,thickness);
}
if (show_comb)
{
comb(width,height,depth,thickness);
}