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

View File

@ -0,0 +1,52 @@
// test for screw tolerances
$fn = 128;
outerD = 4.65;
innerD = 2.95;
*difference() {
cube(size=[10,50,10]);
union() {
translate(v=[5,10,-1])
cylinder(h=30,r=innerD/2-0.2);
translate(v=[5,25,-1])
cylinder(h=30,r=innerD/2);
translate(v=[5,40,-1])
cylinder(h=30,r=innerD/2+0.2);
}
}
module caseOuter() {
rotate(a=[90,0,0])
minkowski() {
cube(size=[90,40,195], center=true);
cylinder(h=0.00000000001, r=10);
}
}
module caseInner() {
translate(v=[0,0,-2])
rotate(a=[90,0,0])
minkowski() {
cube(size=[90,47,195+0.01], center=true);
*cylinder(h=0.00000000001, r=5);
}
}
module caseShell() {
difference() {
caseOuter();
caseInner();
}
}
caseShell();

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();

113
old/power/src/join.scad Normal file
View File

@ -0,0 +1,113 @@
/*
// from corner cube
frameExtrusions = [
0, // north
0, // east
10, // south
10, // west
0, // up
0 // down
];
unitVectors = [
[ 1, 0, 0], // north
[ 0, 1, 0], // east
[-1, 0, 0], // south
[ 0, -1, 0], // west
[ 0, 0, 1], // up
[ 0, 0, -1] // down
];
*/
cornerCubeDimensions = [10,10,10];
slack = 0.45 ;
legOuterDim = [10,10,10];
legInnerDim = [5,5,5];
$fn=128;
//
module leg() {
difference() {
cube(size=legOuterDim, center=true);
translate(v=[0,0,(legOuterDim[2]-legInnerDim[2])/2])
cube(size=[legInnerDim[0]+slack, legInnerDim[1]+slack, legInnerDim[2]+slack], center=true);
}
}
module threeJoin() {
// corner cube
difference() {
rotate(a=90, v=[0,0,1])
union() {
cube(size=cornerCubeDimensions, center=true);
translate(v=[0,0,10])
leg();
translate(v=[0,-10,0])
rotate(a=[90,0,0])
leg();
translate(v=[10,0,0])
rotate(a=[0,90,0])
leg();
}
translate(v=[10,10,-20])
rotate(a=135, v=[1,-1,0])
cube(size=[100,100,100]);
}
}
translate(v=[10,10,-20])
rotate(a=135, v=[1,-1,0])
*cube(size=[100,100,100]);
module frameBar(slack) {
cube(size=[20,20,20], center=true);
translate(v=[(20/2) + (10+slack)/2,0,0])
cube(size=[10+slack,10+slack,10+slack], center=true);
}
*frameBar(-0.6);
translate(v=[0,30,0])
*frameBar(-0.7);
translate(v=[0,60,0])
*frameBar(-0.8);
translate(v=[0,0,5])
rotate(a=45, v=[1,-1,0])
*threeJoin();
*frameBar();
oslack = 0.05;
module old() {
cube(size=[160,10,10], center=true);
translate(v=[82.5,0,0])
cube(size=[5+oslack,5+oslack,5+oslack], center=true);
translate(v=[-82.5,0,0])
cube(size=[5+oslack,5+oslack,5+oslack], center=true);
}
module baseBar() {
}
cylinder(r1=8, r2=10, h=10);
//old();

2130
old/power/src/plate.stl Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,58 @@
module sfxPowerSupply() {
// corsair sf450
length = 125.3;
width = 100.2;
height = 63.8;
screwD = 3.5;
eps = 0.001;
// body
color([0,1,0]) cube(size=[length, width, height]);
// main fan
translate([62.5, 50,0])
color([0,1,1])
circle(d=88);
// open faces
translate([10,-eps, 7])
color([0,1,1])
cube(size=[length-20, eps, height-7]);
// screw holes
color([1,0,1])
translate([length-6, eps, height-6])
rotate(a=[90,0,0])
circle(d=screwD);
color([1,0,1])
translate([6, eps, height-6])
rotate(a=[90,0,0])
circle(d=screwD);
color([1,0,1])
translate([6, eps, 6])
rotate(a=[90,0,0])
circle(d=screwD);
color([1,0,1])
translate([length-6, eps, 6])
rotate(a=[90,0,0])
circle(d=screwD);
color([1,0,1])
translate([6, eps, height-(6+25.5)])
rotate(a=[90,0,0])
circle(d=screwD);
color([1,0,1])
translate([length-6, eps, height-(6+25.5)])
rotate(a=[90,0,0])
circle(d=screwD);
}