Initial commit
This commit is contained in:
commit
5e70566edc
60
centrifuge.scad
Normal file
60
centrifuge.scad
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
$fn=360;
|
||||||
|
|
||||||
|
AXLE_DIAMETER=5;
|
||||||
|
BASE_HEIGHT=100;
|
||||||
|
BASE_LOWER_DIAMETER=100;
|
||||||
|
BASE_UPPER_DIAMETER=50;
|
||||||
|
TEST_TUBE_HEIGHT=150;
|
||||||
|
TEST_TUBE_DIAMETER=10;
|
||||||
|
TEST_TUBE_ANGLE=33;
|
||||||
|
TEST_TUBE_SPREAD=100;
|
||||||
|
|
||||||
|
module testTube(height, diameter) {
|
||||||
|
cylinder(height, diameter, diameter);
|
||||||
|
}
|
||||||
|
|
||||||
|
module arrangedTestTubes(angle, spread, rotation) {
|
||||||
|
rotate([0, 0, rotation]) {
|
||||||
|
translate([0, spread, 10]) {
|
||||||
|
rotate([angle, 0, 0]) {
|
||||||
|
testTube(TEST_TUBE_HEIGHT, TEST_TUBE_DIAMETER);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
translate([0, -spread, 10]) {
|
||||||
|
rotate([-angle, 0, 0]) {
|
||||||
|
testTube(TEST_TUBE_HEIGHT, TEST_TUBE_DIAMETER);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
translate([spread, 0, 10]) {
|
||||||
|
rotate([0, -angle, 0]) {
|
||||||
|
testTube(TEST_TUBE_HEIGHT, TEST_TUBE_DIAMETER);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
translate([-spread, 0, 10]) {
|
||||||
|
rotate([0, angle, 0]) {
|
||||||
|
testTube(TEST_TUBE_HEIGHT, TEST_TUBE_DIAMETER);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module base(height, lowerDiameter, upperDiameter) {
|
||||||
|
cylinder(height, lowerDiameter, upperDiameter);
|
||||||
|
}
|
||||||
|
|
||||||
|
module axle(height, diameter) {
|
||||||
|
translate([0, 0, -1]) {
|
||||||
|
cylinder(height, diameter, diameter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module centrifuge() {
|
||||||
|
difference() {
|
||||||
|
base(BASE_HEIGHT, BASE_LOWER_DIAMETER, BASE_UPPER_DIAMETER);
|
||||||
|
axle(BASE_HEIGHT + 2, AXLE_DIAMETER);
|
||||||
|
arrangedTestTubes(TEST_TUBE_ANGLE, TEST_TUBE_SPREAD, 0);
|
||||||
|
arrangedTestTubes(TEST_TUBE_ANGLE, TEST_TUBE_SPREAD, 45);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
centrifuge();
|
Loading…
Reference in New Issue
Block a user