Initial commit

This commit is contained in:
Eric Meehan 2024-12-19 13:27:31 -05:00
commit 5e70566edc

60
centrifuge.scad Normal file
View 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();