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