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
|
||||
LFS
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
@@ -0,0 +1,157 @@
|
||||
$fn = 300;
|
||||
|
||||
outer = 25.9;
|
||||
|
||||
part = "b";
|
||||
|
||||
if (part == "a" || part == "*") {
|
||||
difference() {
|
||||
assembly();
|
||||
clips(mask=true);
|
||||
}
|
||||
}
|
||||
|
||||
if (part == "b" || part == "*") {
|
||||
intersection() {
|
||||
assembly();
|
||||
clips(mask=true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module tenten() {
|
||||
color("red")
|
||||
union() {
|
||||
difference() {
|
||||
hull() {
|
||||
for (x=[0.75, outer - 0.75], y=[0.75, outer - 0.75])
|
||||
translate([x, y, 0]) {
|
||||
cylinder(h=30, r=0.75);
|
||||
}
|
||||
}
|
||||
|
||||
for (t=[[-1, (outer - 9) / 2], [outer - 1.0, (outer - 9) / 2]])
|
||||
translate([t[0], t[1], -1])
|
||||
cube([2, 9, 32]);
|
||||
|
||||
for (t=[[-1, (outer - 9) / 2], [outer - 3, (outer - 9) / 2]])
|
||||
translate([t[0], t[1] + 1.1, -1])
|
||||
cube([4, 6.8, 32]);
|
||||
|
||||
for (t=[[(outer - 9) / 2, -1], [(outer - 9) / 2, outer - 1.0]])
|
||||
translate([t[0], t[1], -1])
|
||||
cube([9, 2, 32]);
|
||||
|
||||
for (t=[[(outer - 9) / 2, -1], [(outer - 9) / 2, outer - 3]])
|
||||
translate([t[0] + 1.1, t[1], -1])
|
||||
cube([6.8, 4, 32]);
|
||||
}
|
||||
|
||||
for (x=[(outer - 9) / 2,(outer - 9) / 2 + 9], y=[1.1,outer-1.1]) {
|
||||
translate([x, y, 0])
|
||||
cylinder(h=30, d=2.2);
|
||||
|
||||
translate([y, x, 0])
|
||||
cylinder(h=30, d=2.2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module assembly() {
|
||||
difference() {
|
||||
union() {
|
||||
hull() {
|
||||
for (x=[1, outer + 3], y=[1, outer])
|
||||
translate([x, y, 0])
|
||||
cylinder(h=12, r=1.4);
|
||||
}
|
||||
|
||||
hull() {
|
||||
for (x=[1.7, outer + 2.3], y=[1.7, outer - 0.7])
|
||||
translate([x, y, 0])
|
||||
cylinder(h=20, r=1.2);
|
||||
}
|
||||
}
|
||||
|
||||
translate([2, -1.01, -1])
|
||||
tenten();
|
||||
|
||||
translate([10, -1, -1])
|
||||
cube([15, 5, 30]);
|
||||
}
|
||||
|
||||
clips();
|
||||
}
|
||||
|
||||
|
||||
module clips(mask=false) {
|
||||
translate([-3.51, 1, 0]) {
|
||||
if (mask) {
|
||||
clipmask();
|
||||
} else {
|
||||
clip();
|
||||
}
|
||||
}
|
||||
|
||||
translate([outer + 7.51, 1, 0])
|
||||
mirror([1, 0, 0]) {
|
||||
if (mask) {
|
||||
clipmask();
|
||||
} else {
|
||||
clip();
|
||||
}
|
||||
}
|
||||
|
||||
translate([3, outer + 4.5, 0])
|
||||
rotate([0, 0, -90]) {
|
||||
if (mask) {
|
||||
clipmask();
|
||||
} else {
|
||||
clip();
|
||||
}
|
||||
}
|
||||
|
||||
translate([27, outer + 9.5, 0])
|
||||
mirror([1, 0, 0])
|
||||
rotate([0, 0, -90]) {
|
||||
if (mask) {
|
||||
clipmask();
|
||||
} else {
|
||||
clip();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module clip() {
|
||||
difference() {
|
||||
hull() {
|
||||
for (y=[0, 20])
|
||||
translate([0, y, 0]) {
|
||||
translate([1, 2, 0])
|
||||
cylinder(h=12, d=4);
|
||||
|
||||
translate([1, 0, 0])
|
||||
cube([4, 4, 12]);
|
||||
}
|
||||
}
|
||||
|
||||
translate([1.2, -1.75, -1])
|
||||
rotate([0, 0, 25])
|
||||
cube([2.4, 2, 14]);
|
||||
|
||||
for (y=[0.8:1.7:18])
|
||||
translate([2.4, y, -1])
|
||||
rotate([0, 0, 65])
|
||||
cube([0.5, 2.0, 14]);
|
||||
|
||||
for (y=[0.4:1.7:18])
|
||||
translate([0.7, y, -1])
|
||||
rotate([0, 0, -65])
|
||||
cube([0.5, 2.1, 14]);
|
||||
}
|
||||
}
|
||||
|
||||
module clipmask() {
|
||||
translate([0.3, -1, -1])
|
||||
cube([2.7, 20.1, 14]);
|
||||
}
|
||||
Reference in New Issue
Block a user