121 lines
2.5 KiB
OpenSCAD
121 lines
2.5 KiB
OpenSCAD
|
|
include <./sfx-psu.scad>;
|
|
|
|
$fn=64;
|
|
|
|
|
|
module gill(he) {
|
|
minkowski() {
|
|
cylinder(h = 1, r1 = 2, r2 = 2);
|
|
cube(size=[he, 3.5, 6], center=true);
|
|
}
|
|
}
|
|
|
|
|
|
module basBarInsert() {
|
|
mainLength = 10;
|
|
upperDim = 20;
|
|
innerDim = 10;
|
|
|
|
translate(v=[0,0,mainLength/2]) {
|
|
difference() {
|
|
cube(size=[upperDim, upperDim, mainLength], center=true);
|
|
|
|
translate(v=[0,0,mainLength/2 - innerDim/4])
|
|
cube(size=[innerDim, innerDim, innerDim/2], center=true);
|
|
}
|
|
}
|
|
}
|
|
|
|
module base() {
|
|
translate(v=[90,90,-2.5])
|
|
basBarInsert();
|
|
|
|
translate(v=[-90,90,-2.5])
|
|
basBarInsert();
|
|
|
|
translate(v=[90,-90,-2.5])
|
|
basBarInsert();
|
|
|
|
translate(v=[-90,-90,-2.5])
|
|
basBarInsert();
|
|
|
|
difference() {
|
|
difference() {
|
|
cube(size=[200,200,5], center=true);
|
|
|
|
minkowski() {
|
|
translate(v=[17,-45,0])
|
|
cube(size=[90, 90, 6], center=true);
|
|
|
|
cylinder(h = 1, r1 = 2, r2 = 2);
|
|
}
|
|
}
|
|
|
|
union() {
|
|
|
|
for (i = [0:12] ) {
|
|
rotate(a=[0,0,90])
|
|
translate(v=[50,72.5 - i*12,0])
|
|
gill(he=65);
|
|
}
|
|
|
|
for (i = [0:1] ) {
|
|
rotate(a=[0,0,90])
|
|
translate(v=[-40,72.5 - i*12,0])
|
|
gill(he=80) ;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
translate(v=[-46,-95,0])
|
|
*sfxPowerSupply();
|
|
|
|
|
|
|
|
|
|
*base();
|
|
|
|
|
|
legInsertInnerSlack = 0.4;
|
|
|
|
module legInsert(length) {
|
|
iS = 10-legInsertInnerSlack;
|
|
|
|
difference() {
|
|
union() {
|
|
cube(size=[20,20,length], center=true);
|
|
|
|
translate(v=[0,0,iS/2-legInsertInnerSlack/2])
|
|
cube(size=[iS, iS, length], center=true);
|
|
}
|
|
|
|
union() {
|
|
// slot
|
|
translate(v=[0,0,-length/2 ])
|
|
cube(size=[10, 10, 10], center=true);
|
|
|
|
// linear sliding joins for walls
|
|
translate(v=[10,0,-5])
|
|
cylinder(length*2,5,5,$fn=3, center=true);
|
|
|
|
rotate(a=[0,0,90])
|
|
translate(v=[10,0,-5])
|
|
cylinder(length*2,5,5,$fn=3, center=true);
|
|
|
|
rotate(a=[0,0,180])
|
|
translate(v=[10,0,-5])
|
|
cylinder(length*2,5,5,$fn=3, center=true);
|
|
|
|
rotate(a=[0,0,270])
|
|
translate(v=[10,0,-5])
|
|
cylinder(length*2,5,5,$fn=3, center=true);
|
|
}
|
|
}
|
|
}
|
|
*cylinder(20,4,5,$fn=3);
|
|
|
|
legInsert(length=70);
|
|
|