Initial import
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
*.stl filter=lfs diff=lfs merge=lfs -text
|
||||
*.STL filter=lfs diff=lfs merge=lfs -text
|
||||
*.3mf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,246 @@
|
||||
$fn = 100;
|
||||
eps = 0.01;
|
||||
|
||||
board = true;
|
||||
stripes = true;
|
||||
fans = true;
|
||||
|
||||
only = "*";
|
||||
|
||||
if (board && (only == "*" || only == "b")) {
|
||||
color("red")
|
||||
difference() {
|
||||
difference() {
|
||||
union() {
|
||||
board();
|
||||
tail();
|
||||
}
|
||||
|
||||
stripes();
|
||||
}
|
||||
|
||||
antiboard();
|
||||
}
|
||||
}
|
||||
|
||||
if (stripes && (only == "*" || only == "s")) {
|
||||
color("white")
|
||||
difference() {
|
||||
translate([0, 0, eps])
|
||||
intersection() {
|
||||
board();
|
||||
stripes();
|
||||
}
|
||||
|
||||
antiboard();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (fans && (only == "*" || only == "f")) {
|
||||
color("silver")
|
||||
fans();
|
||||
}
|
||||
|
||||
|
||||
module board() {
|
||||
cube([100, 20, 4]);
|
||||
|
||||
translate([100, 10, 0])
|
||||
cylinder(h=4, d=20);
|
||||
|
||||
translate([0, 0, 2])
|
||||
rotate([0, 90, 0])
|
||||
cylinder(h=100, d=4);
|
||||
|
||||
translate([0, 20, 2])
|
||||
rotate([0, 90, 0])
|
||||
cylinder(h=100, d=4);
|
||||
|
||||
translate([100, 10, 2])
|
||||
torus(or=12, ir=8);
|
||||
|
||||
translate([0, 0, 2])
|
||||
rotate([-90, 0, 0])
|
||||
cylinder(h=20, d=4);
|
||||
|
||||
translate([0, 0, 2])
|
||||
sphere(d=4);
|
||||
|
||||
translate([0, 20, 2])
|
||||
sphere(d=4);
|
||||
}
|
||||
|
||||
module antiboard() {
|
||||
translate([90, 10, -1])
|
||||
cylinder(h=6, d=16);
|
||||
|
||||
translate([90, 10, 1])
|
||||
cylinder(h=2, d=18);
|
||||
|
||||
translate([55, 10, -1])
|
||||
cylinder(h=6, d=16);
|
||||
|
||||
translate([55, 10, 1])
|
||||
cylinder(h=2, d=18);
|
||||
|
||||
translate([20, 10, -1])
|
||||
cylinder(h=6, d=16);
|
||||
|
||||
translate([20, 10, 1])
|
||||
cylinder(h=2, d=18);
|
||||
}
|
||||
|
||||
module stripes() {
|
||||
o = 6;
|
||||
|
||||
difference() {
|
||||
union() {
|
||||
translate([-5, 4, -1])
|
||||
cube([120, 4, 6]);
|
||||
|
||||
translate([-5, 12, -1])
|
||||
cube([120, 4, 6]);
|
||||
|
||||
|
||||
difference() {
|
||||
translate([o + 0, 4, 1])
|
||||
cube([10, 12, 2]);
|
||||
|
||||
translate([-8, 0, 0])
|
||||
cube([10, 14, 4]);
|
||||
}
|
||||
|
||||
translate([o + 20, 4, 1])
|
||||
cube([10, 12, 2]);
|
||||
|
||||
translate([o + 40, 4, 1])
|
||||
cube([10, 12, 2]);
|
||||
|
||||
translate([o + 60, 4, 1])
|
||||
cube([10, 12, 2]);
|
||||
|
||||
translate([o + 80, 4, 1])
|
||||
cube([10, 12, 2]);
|
||||
|
||||
difference() {
|
||||
translate([o + 100, 4, 1])
|
||||
cube([10, 12, 2]);
|
||||
|
||||
translate([108, 0, 0])
|
||||
cube([10, 14, 4]);
|
||||
}
|
||||
}
|
||||
|
||||
difference() {
|
||||
translate([o - 10, 3, 1])
|
||||
cube([10, 14, 2]);
|
||||
|
||||
translate([-8, 0, 0])
|
||||
cube([10, 16, 4]);
|
||||
}
|
||||
|
||||
translate([o + 10, 3, 1])
|
||||
cube([10, 14, 2]);
|
||||
|
||||
translate([o + 30, 3, 1])
|
||||
cube([10, 14, 2]);
|
||||
|
||||
translate([o + 50, 3, 1])
|
||||
cube([10, 14, 2]);
|
||||
|
||||
translate([o + 70, 3, 1])
|
||||
cube([10, 14, 2]);
|
||||
|
||||
translate([o + 90, 3, 1])
|
||||
cube([10, 14, 2]);
|
||||
}
|
||||
}
|
||||
|
||||
module fans() {
|
||||
translate([90, 10, 0])
|
||||
fan();
|
||||
|
||||
translate([55, 10, 0])
|
||||
fan();
|
||||
|
||||
translate([20, 10, 0])
|
||||
fan();
|
||||
}
|
||||
|
||||
module fan() {
|
||||
difference() {
|
||||
cylinder(h=4, d=16);
|
||||
|
||||
translate([0, 0, -1])
|
||||
cylinder(h=6, d=15);
|
||||
}
|
||||
|
||||
difference() {
|
||||
cylinder(h=4, d=12);
|
||||
|
||||
translate([0, 0, -1])
|
||||
cylinder(h=6, d=11);
|
||||
}
|
||||
|
||||
difference() {
|
||||
cylinder(h=4, d=8);
|
||||
|
||||
translate([0, 0, -1])
|
||||
cylinder(h=6, d=7);
|
||||
}
|
||||
|
||||
translate([0, 0, 1])
|
||||
difference() {
|
||||
cylinder(h=2, d=18);
|
||||
|
||||
translate([0, 0, -1])
|
||||
cylinder(h=4, d=15);
|
||||
}
|
||||
|
||||
translate([0, 0, 2])
|
||||
rotate([0, 0, 0])
|
||||
cube([16, 0.5, 4], center=true);
|
||||
|
||||
translate([0, 0, 2])
|
||||
rotate([0, 0, 90])
|
||||
cube([16, 0.5, 4], center=true);
|
||||
|
||||
translate([0, 0, 2])
|
||||
rotate([0, 0, 45])
|
||||
cube([16, 0.5, 4], center=true);
|
||||
|
||||
translate([0, 0, 2])
|
||||
rotate([0, 0, -45])
|
||||
cube([16, 0.5, 4], center=true);
|
||||
}
|
||||
|
||||
module tail() {
|
||||
intersection() {
|
||||
union() {
|
||||
translate([0, 8, 0])
|
||||
cube([10, 4, 16]);
|
||||
|
||||
translate([0, 10, 2])
|
||||
cylinder(h=10, d=4);
|
||||
}
|
||||
|
||||
translate([0, 10, 2])
|
||||
resize([20, 4, 20])
|
||||
sphere(d=20);
|
||||
}
|
||||
|
||||
translate([0, 12, 2])
|
||||
rotate([90, 0, 0])
|
||||
cylinder(h=4, d=4);
|
||||
}
|
||||
|
||||
|
||||
module torus(or, ir) {
|
||||
r = (or - ir) / 2;
|
||||
|
||||
rotate_extrude()
|
||||
|
||||
translate([ir + r, 0, 0])
|
||||
circle(r);
|
||||
}
|
||||
Reference in New Issue
Block a user