Initial import

This commit is contained in:
Ian Gulliver
2026-07-12 11:43:06 -07:00
commit ff15b40ab3
18 changed files with 289 additions and 0 deletions
+4
View File
@@ -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
+74
View File
@@ -0,0 +1,74 @@
$fn = 100;
difference() {
color("grey")
cube([100, 50, 4.65]);
translate([15, 25, -0.05])
cylinder(h=4.75, d=8.1);
translate([25, 25, -0.05])
cylinder(h=4.75, d=8.1);
translate([20, 16.5, -0.05])
cylinder(h=4.75, d=8.1);
translate([20, 22.5, 0])
xlr();
}
translate([15, 25, 0])
jack();
translate([25, 25, 0])
jack();
translate([20, 16.5, 0])
jack();
translate([20, 22.5, 0])
xlr();
module jack() {
difference() {
union() {
color("darkgrey")
translate([0, 0, -11.70])
cylinder(h=16.35, d=8);
color("darkgrey")
translate([0, 0, -1.5])
cylinder(h=1.5, d=10);
}
translate([0, 0, -10.34])
cylinder(h=15, d=3.6);
}
}
module xlr() {
translate([0, 0, 4.20]) {
difference() {
color("white")
cylinder(h=0.5, d=28);
translate([0, 0, -0.05])
cylinder(h=0.6, d=27);
}
color("blue")
translate([-9, 8.5, 0.4])
scale([1, 1, 0.1])
text(text="1", size=2, font="JetBrains Mono", direction="ttb");
color("red")
translate([9, 8.5, 0.4])
scale([1, 1, 0.1])
text(text="2", size=2, font="JetBrains Mono", direction="ttb");
color("white")
translate([4, -8.5, 0.4])
scale([1, 1, 0.1])
text(text="3", size=2, font="JetBrains Mono", direction="ttb");
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
+54
View File
@@ -0,0 +1,54 @@
$fn=100;
difference() {
cylinder(h=5, d=11);
translate([0, 0, -0.1])
cylinder(h=5.1, d=6);
}
cylinder(h=5, d=1);
color("blue")
translate([-3, 1.5, 0])
cube([6, 2, 5]);
color("red")
translate([0, 0, 5])
cylinder(h=1, d=15);
translate([0, 0, 6])
cylinder(h=18, d1=7, d2=6);
color("green")
union() {
for(r = [0 : 15 : 345]) {
rotate([0, 0, r])
translate([0, 3.5, 6])
rotate([1.6, 0, 0])
scale([1.2, 1, 1])
cylinder(h=18, d=0.5);
}
}
color("teal")
translate([0, 0, 24])
scale([1, 1, 0.15])
sphere(d=6.5);
color("pink")
difference() {
translate([0, 0, 3])
cylinder(h=2, r=7.5);
translate([0, 0, 3])
torus(r1=5.5, r2=9.5);
translate([0, 0, -0.1])
cylinder(h=5.1, d=6);
}
module torus(r1, r2) {
r=(r2-r1)/2;
rotate_extrude() translate([r1+r,0,0]) circle(r);
}
BIN
View File
Binary file not shown.
Binary file not shown.
+62
View File
@@ -0,0 +1,62 @@
// card: 38 x 76
// 1.5 corner radius
// 3.5 hole 2 from edge
$fn = 500;
card_x = 76;
card_y = 38;
card_z = 1;
card_cr = 1.5;
card_hole_inset = 2;
card_hole_r = 1.75;
card_hole_top_r = 3.75;
border = 1;
overhang = 1;
base = 0.6;
top = 0.6;
cr = 1;
incline = 1.3;
e = 0.02;
difference() {
// Outer shape
hull()
for (x=[-1, 1], y=[-1, 1]) {
translate([x * ((card_x / 2) + border), y * ((card_y / 2) + border), 0]) {
cylinder(h=(base + card_z + top - cr), r1=(incline * cr), r2=cr);
translate([0, 0, base + card_z + top - cr])
sphere(r=cr);
}
}
// Card cutout
hull()
for (x=[-1, 1], y=[-1, 1]) {
translate([x * ((card_x / 2) - card_cr), y * ((card_y / 2) - card_cr), base])
cylinder(h=card_z, r=card_cr);
}
// Window cutout
hull()
for (x=[-1, 1], y=[-1, 1]) {
translate([x * ((card_x / 2) - overhang - cr), y * ((card_y / 2) - overhang - cr), base]) {
cylinder(h=(card_z + top + e), r=cr);
}
}
// Holes
for (x=[-1, 1]) {
translate([x * ((card_x / 2) - card_hole_inset - card_hole_r), 0, -e]) {
cylinder(h=(e + base + card_z + top + e), r=card_hole_r);
translate([0, 0, base + card_z])
cylinder(h=(e + top + e), r=card_hole_top_r);
}
}
}
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+74
View File
@@ -0,0 +1,74 @@
$fn = 100;
difference() {
union() {
// Cylinder body
cylinder(h=60, d=50);
// Base plate
translate([0, -15, 30])
cube([100, 20, 60], center=true);
// Cylinder to base joints
translate([-20.5, -12.5, 30])
cube([9, 25, 60], center=true);
translate([20.5, -12.5, 30])
cube([9, 25, 60], center=true);
}
// Cylinder hole
translate([0, 0, -1])
cylinder(h=62, d=31);
// Screw holes
translate([-36, -4, 30])
rotate([90, 0, 0])
cylinder(h=22, d=8.2);
translate([36, -4, 30])
rotate([90, 0, 0])
cylinder(h=22, d=8.2);
// Nut holes
translate([36, -8, 30])
cube([13, 8, 7.5], center=true);
translate([36, -8, 30])
rotate([0, 60, 0])
cube([13, 8, 7.5], center=true);
translate([36, -8, 30])
rotate([0, 120, 0])
cube([13, 8, 7.5], center=true);
translate([-36, -8, 30])
cube([13, 8, 7.5], center=true);
translate([-36, -8, 30])
rotate([0, 60, 0])
cube([13, 8, 7.5], center=true);
translate([-36, -8, 30])
rotate([0, 120, 0])
cube([13, 8, 7.5], center=true);
}
translate([15.5, 0, 12.5])
difference() {
rotate([0, 0, 45])
cube([15, 15, 25], center=true);
translate([15, 0, 0])
cube([30, 30, 27], center=true);
}
translate([-15.5, 0, 12.5])
difference() {
rotate([0, 0, 45])
cube([15, 15, 25], center=true);
translate([-15, 0, 0])
cube([30, 30, 27], center=true);
}
BIN
View File
Binary file not shown.
Binary file not shown.