This commit is contained in:
zhao
2023-01-10 23:30:19 -05:00
parent 43c2aceba5
commit bb6288ee32
83 changed files with 172 additions and 172 deletions

330
old/power/src/base.scad Normal file
View File

@ -0,0 +1,330 @@
include <./sfx-psu.scad>;
$fn=64;
eps=0.1;
module gill(he, isCenter) {
minkowski() {
cylinder(h = 1, r1 = 2, r2 = 2);
cube(size=[he, 3.5, 6], center=isCenter);
}
}
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 topBarInsert(slack) {
innerDim = 10+slack;
translate(v=[0,0,innerDim/4])
cube(size=[innerDim, innerDim, innerDim/2], center=true);
}
*topBarInsert(-0.6);
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, isCenter=true);
}
for (i = [0:1] ) {
rotate(a=[0,0,90])
translate(v=[-40,72.5 - i*12,0])
gill(he=80, isCenter=true) ;
}
}
}
}
module top() {
difference() {
union() {
translate(v=[90,90,-0.2])
topBarInsert(-0.6);
translate(v=[-90,90,-0.2])
topBarInsert(-0.6);
translate(v=[90,-90,-0.2])
topBarInsert(-0.6);
translate(v=[-90,-90,-0.2])
topBarInsert(-0.6);
difference() {
translate(v=[0,0,-1.5])
cube(size=[200,200,3], center=true);
union() {
for (i = [0:12] ) {
rotate(a=[0,0,90])
translate(v=[45,72.5 - i*12,0])
gill(he=75, isCenter=true);
}
for (i = [0:12] ) {
rotate(a=[0,0,90])
translate(v=[-45,72.5 - i*12,0])
gill(he=75, isCenter=true) ;
}
}
}
}
union() {
translate(v=[90,90,-6])
topBarInsert(0.5);
translate(v=[-90,90,-6])
topBarInsert(0.5);
translate(v=[90,-90,-6])
topBarInsert(0.5);
translate(v=[-90,-90,-6])
topBarInsert(0.5);
}
}
}
base();
*top();
legInsertInnerSlack = 0.4;
module legInsert(length, railSlack) {
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
for (i=[0:3]) {
rotate(a=[0,0,90*i])
translate(v=[10,0,-5])
cylinder(length*2,5+railSlack,5+railSlack,$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);
module joinTriangle(length) {
translate(v=[-10,0,0])
difference() {
translate(v=[5.5, -4.5, -length/2])
cube(size=[8,9,length]);
legInsert(length=length+eps, railSlack=-0.35);
}
}
module sidePlate() {
translate(v=[0,35,-5])
rotate(a=[0,-90,-90])
union() {
translate(v=[0,180,0])
joinTriangle(length=70);
joinTriangle(length=70);
translate(v=[2,-10,-40])
cube(size=[3,200,75]);
}
}
module frontPlateHoled() {
difference() {
sidePlate();
intersection() {
translate(v=[5,0,-25])
cube(size=[170,65,50]);
union() {
for (i=[0:11]) {
translate(v=[20+i*17, 0, 0])
rotate(a=[0,0,45])
cube(size=[8,1000,40], center=true);
}
}
}
}
}
module backPlateHoled() {
difference() {
sidePlate();
union() {
translate(v=[20,5,-25])
cube(size=[106,53,50]);
translate(v=[16,27.2,-50])
cylinder(h=100, r1=2, r2=2);
translate(v=[16,52.8,-50])
cylinder(h=100, r1=2, r2=2);
translate(v=[16,0.85,-50])
cylinder(h=100, r1=2, r2=2);
translate(v=[129.4,27.2,-50])
cylinder(h=100, r1=2, r2=2);
translate(v=[129.4,0.85,-50])
cylinder(h=100, r1=2, r2=2);
translate(v=[129.4,52.8,-50])
cylinder(h=100, r1=2, r2=2);
// power out
translate(v=[150,50,-50])
cylinder(h=100, r1=5.6, r2=5.6);
translate(v=[160,15+17.5,-50])
cylinder(h=100, r1=5.6, r2=5.6);
translate(v=[150,15,-50])
cylinder(h=100, r1=5.6, r2=5.6);
}
}
}
// messed up placement of the holes, mirroring as hack to approx solve
module mirroredBackPlateHoled() {
mirror(v=[0,0,1])
translate(v=[0,0,-10])
backPlateHoled();
}
module supportLBracket(length, h1, h2, thickness) {
numSegments = 2;
module triangleSupport() {
hull() {
translate(v=[0, h1-thickness, thickness-eps])
cube(size=[thickness, thickness, eps]);
translate(v=[0, 0, h2-eps])
cube(size=[thickness, thickness, eps]);
translate(v=[0, 0, 0])
cube(size=[thickness, thickness, eps]);
}
}
union() {
difference() {
cube(size=[length, h1, h2]);
translate(v=[-eps,thickness, thickness])
cube(size=[length+2*eps, h1+2*eps, h2+2*eps]);
}
for (i=[0:numSegments]) {
translate(v=[((length-thickness)/numSegments)*i, 0,0])
triangleSupport();
}
}
}
*supportLBracket(35, 8, 8, 1.5);
*mirroredBackPlateHoled();
translate(v=[10,-5,-1])
rotate(a=[-90,0,0])
*sfxPowerSupply();