i really need to clean this up
This commit is contained in:
@ -25,7 +25,7 @@ module _frontPlateBody() {
|
||||
|
||||
module _plateHole() {
|
||||
rotate(a=[90,0,0])
|
||||
cylinder(r=m4RadiusSlacked, h=inf, center=true);
|
||||
cylinder(r=m4RadiusSlacked, h=inf, center=true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
96
cases/rack-tray/rack-tray.scad
Normal file
96
cases/rack-tray/rack-tray.scad
Normal file
@ -0,0 +1,96 @@
|
||||
|
||||
eps=0.01;
|
||||
vU = 2;
|
||||
uHeight = 10;
|
||||
|
||||
plateScrewDiffV = uHeight*vU;
|
||||
plateScrewDiffH = 180;
|
||||
|
||||
plateScrewToHEdge = 4.5;
|
||||
plateScrewToVEdge = 5.5;
|
||||
|
||||
frontPlateThickness = 3;
|
||||
|
||||
frontPlateV = plateScrewDiffV + 2*plateScrewToHEdge;
|
||||
frontPlateH = plateScrewDiffH + 2*plateScrewToVEdge;
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
trayOuterHeight = 28;
|
||||
trayOuterWidth = 168;
|
||||
trayOuterDepth = 130;
|
||||
|
||||
trayBottomThickness = 2;
|
||||
traySideThickness = 3;
|
||||
trayFrontThickness = 2;
|
||||
|
||||
|
||||
trayInnerWidth = trayOuterWidth - 2*traySideThickness;
|
||||
trayInnerDepth = trayOuterDepth - trayFrontThickness;
|
||||
trayInnerHeight = trayOuterHeight - trayBottomThickness;
|
||||
|
||||
module _trayBody() {
|
||||
|
||||
difference() {
|
||||
cube(size = [trayOuterWidth, trayOuterDepth, trayOuterHeight]);
|
||||
|
||||
union() {
|
||||
translate(v = [traySideThickness, trayFrontThickness, trayBottomThickness])
|
||||
cube(size = [trayInnerWidth + eps, trayInnerDepth + eps, trayInnerHeight + eps]);
|
||||
|
||||
|
||||
translate(v=[0,0, trayOuterHeight])
|
||||
rotate(a=[-atan(trayInnerHeight/trayOuterDepth),0,0])
|
||||
cube(size=[trayOuterWidth+eps, 2*trayOuterDepth+eps, trayInnerHeight+eps]);
|
||||
|
||||
translate(v=[5+traySideThickness,0,trayBottomThickness])
|
||||
cube(size=[trayInnerWidth-10, trayFrontThickness+eps, trayOuterHeight]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// todo make a nice module for this (triangular prism)
|
||||
module _sideHole_N() {
|
||||
scale(v=[2,0.65,0.65])
|
||||
difference () {
|
||||
cube(size = [trayOuterWidth, trayOuterDepth, trayOuterHeight]);
|
||||
translate(v = [0, 0, trayOuterHeight])
|
||||
rotate(a = [- atan(trayInnerHeight / trayOuterDepth), 0, 0])
|
||||
cube(size = [trayOuterWidth + eps, 2 * trayOuterDepth + eps, trayInnerHeight + eps]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module trayBody() {
|
||||
union() {
|
||||
difference() {
|
||||
_trayBody();
|
||||
union() {
|
||||
// bottom holes
|
||||
for (i = [0:7]) {
|
||||
translate(v = [35, i * 15 + 10, - eps])
|
||||
*cube(size = [100, 5, 10]);
|
||||
}
|
||||
translate(v=[-10,5,5])
|
||||
_sideHole_N();
|
||||
}
|
||||
}
|
||||
|
||||
// lugs for front
|
||||
translate(v=[0,-2,0])
|
||||
cube(size=[5,2,5]);
|
||||
translate(v=[trayOuterWidth-5,-2,0])
|
||||
cube(size=[5,2,5]);
|
||||
|
||||
translate(v=[0,-2,20])
|
||||
cube(size=[5,2,5]);
|
||||
translate(v=[trayOuterWidth-5,-2,20])
|
||||
cube(size=[5,2,5]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//trayBody();
|
||||
|
||||
125
cases/rockpro/dual-tray-plate-part.scad
Normal file
125
cases/rockpro/dual-tray-plate-part.scad
Normal file
@ -0,0 +1,125 @@
|
||||
include <../rack-tray/rack-tray.scad>
|
||||
include <../common.scad>
|
||||
include <../rack/screws.scad>
|
||||
include <./rockpro.scad>
|
||||
|
||||
vU = 3;
|
||||
uHeight = 10;
|
||||
|
||||
plateScrewDiffV = uHeight*vU;
|
||||
plateScrewDiffH = 180;
|
||||
|
||||
plateScrewToHEdge = 4.5;
|
||||
plateScrewToVEdge = 5.5;
|
||||
|
||||
frontPlateThickness = 3;
|
||||
|
||||
frontPlateV = plateScrewDiffV + 2*plateScrewToHEdge;
|
||||
frontPlateH = plateScrewDiffH + 2*plateScrewToVEdge;
|
||||
|
||||
|
||||
plateScrewToBoxMin = 6;
|
||||
|
||||
module _frontPlateBody() {
|
||||
translate(v=[-plateScrewToVEdge,0,-plateScrewToHEdge])
|
||||
cube(size=[frontPlateH,frontPlateThickness,frontPlateV]);
|
||||
}
|
||||
|
||||
module _plateHole() {
|
||||
rotate(a=[90,0,0])
|
||||
cylinder(r=m4RadiusSlacked, h=inf, center=true);
|
||||
}
|
||||
|
||||
|
||||
module frontPlate() {
|
||||
|
||||
difference() {
|
||||
_frontPlateBody();
|
||||
|
||||
union() {
|
||||
// TODO: introduce helper modules for this pattern
|
||||
_plateHole();
|
||||
|
||||
translate(v=[plateScrewDiffH,0,0])
|
||||
_plateHole();
|
||||
|
||||
translate(v=[0,0,plateScrewDiffV])
|
||||
_plateHole();
|
||||
|
||||
translate(v=[plateScrewDiffH,0,plateScrewDiffV])
|
||||
_plateHole();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
difference() {
|
||||
frontPlate();
|
||||
union() {
|
||||
translate(v = [13, 0, - 10])
|
||||
cube(size = [300, 100, 100]);
|
||||
|
||||
translate(v=[6,0,0])
|
||||
cube(size=[5,5,5]);
|
||||
|
||||
translate(v=[6,0,20])
|
||||
cube(size=[5,5,5]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// todo use library constants
|
||||
module screwRiser(height) {
|
||||
difference() {
|
||||
cylinder(d=5, h=height, $fn=64);
|
||||
cylinder(d=2.88, h=height, $fn=64);
|
||||
}
|
||||
}
|
||||
|
||||
module mountPoints_N(cylHeight, cylRad1, cylRad2, cylFn, center) {
|
||||
for (i=[0:3]) {
|
||||
p = mountPoints[i];
|
||||
translate(v=[p[0], p[1], p[2]])
|
||||
cylinder(r1=cylRad1, r2=cylRad2, h=cylHeight, $fn=cylFn, center=center);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module rockProScrewMounts() {
|
||||
for (i=[0:3]) {
|
||||
p = mountPoints[i];
|
||||
translate(v=[p[0], p[1], p[2]])
|
||||
screwRiser(5);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module rockProDualTray() {
|
||||
|
||||
|
||||
trayBody();
|
||||
translate(v=[9,8,trayBottomThickness])
|
||||
rockProScrewMounts();
|
||||
|
||||
translate(v=[9 + pcbDimensions[0],8,trayBottomThickness])
|
||||
rockProScrewMounts();
|
||||
|
||||
}
|
||||
|
||||
*difference() {
|
||||
rockProDualTray();
|
||||
// file specific bottom holes
|
||||
union() {
|
||||
translate(v = [10, 15, 0])
|
||||
minkowski() {
|
||||
cube(size = [69, 100, 5]);
|
||||
cylinder(r = 1);
|
||||
}
|
||||
|
||||
translate(v=[88,15,0])
|
||||
minkowski() {
|
||||
cube(size = [69, 100, 5]);
|
||||
cylinder(r=1);
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
cases/rockpro/dual-tray-plate-part.stl
Normal file
BIN
cases/rockpro/dual-tray-plate-part.stl
Normal file
Binary file not shown.
126
cases/rockpro/dual-tray.scad
Normal file
126
cases/rockpro/dual-tray.scad
Normal file
@ -0,0 +1,126 @@
|
||||
include <../rack-tray/rack-tray.scad>
|
||||
include <../common.scad>
|
||||
include <../rack/screws.scad>
|
||||
include <./rockpro.scad>
|
||||
|
||||
vU = 3;
|
||||
uHeight = 10;
|
||||
|
||||
plateScrewDiffV = uHeight*vU;
|
||||
plateScrewDiffH = 180;
|
||||
|
||||
plateScrewToHEdge = 4.5;
|
||||
plateScrewToVEdge = 5.5;
|
||||
|
||||
frontPlateThickness = 2;
|
||||
|
||||
frontPlateV = plateScrewDiffV + 2*plateScrewToHEdge;
|
||||
frontPlateH = plateScrewDiffH + 2*plateScrewToVEdge;
|
||||
|
||||
|
||||
plateScrewToBoxMin = 6;
|
||||
|
||||
module _frontPlateBody() {
|
||||
translate(v=[-plateScrewToVEdge,0,-plateScrewToHEdge])
|
||||
cube(size=[frontPlateH,frontPlateThickness,frontPlateV]);
|
||||
}
|
||||
|
||||
module _plateHole() {
|
||||
rotate(a=[90,0,0])
|
||||
cylinder(r=m4RadiusSlacked, h=inf, center=true);
|
||||
}
|
||||
|
||||
|
||||
module frontPlate() {
|
||||
|
||||
difference() {
|
||||
_frontPlateBody();
|
||||
|
||||
union() {
|
||||
// TODO: introduce helper modules for this pattern
|
||||
_plateHole();
|
||||
|
||||
translate(v=[plateScrewDiffH,0,0])
|
||||
_plateHole();
|
||||
|
||||
translate(v=[0,0,plateScrewDiffV])
|
||||
_plateHole();
|
||||
|
||||
translate(v=[plateScrewDiffH,0,plateScrewDiffV])
|
||||
_plateHole();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
difference() {
|
||||
frontPlate();
|
||||
union() {
|
||||
translate(v = [13, 0, - 10])
|
||||
cube(size = [300, 100, 100]);
|
||||
|
||||
translate(v=[6,0,-2])
|
||||
cube(size=[5.5,5.5,5.5]);
|
||||
|
||||
translate(v=[6,0,20-2])
|
||||
cube(size=[5.5,5.5,5.5]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// todo use library constants
|
||||
// TODO these risers are prone to snapping off
|
||||
module screwRiser(height) {
|
||||
difference() {
|
||||
cylinder(d=5, h=height, $fn=64);
|
||||
cylinder(d=2.88, h=height, $fn=64);
|
||||
}
|
||||
}
|
||||
|
||||
module mountPoints_N(cylHeight, cylRad1, cylRad2, cylFn, center) {
|
||||
for (i=[0:3]) {
|
||||
p = mountPoints[i];
|
||||
translate(v=[p[0], p[1], p[2]])
|
||||
cylinder(r1=cylRad1, r2=cylRad2, h=cylHeight, $fn=cylFn, center=center);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module rockProScrewMounts() {
|
||||
for (i=[0:3]) {
|
||||
p = mountPoints[i];
|
||||
translate(v=[p[0], p[1], p[2]])
|
||||
screwRiser(5);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module rockProDualTray() {
|
||||
|
||||
|
||||
trayBody();
|
||||
translate(v=[9,8,trayBottomThickness])
|
||||
rockProScrewMounts();
|
||||
|
||||
translate(v=[9 + pcbDimensions[0],8,trayBottomThickness])
|
||||
rockProScrewMounts();
|
||||
|
||||
}
|
||||
|
||||
*difference() {
|
||||
rockProDualTray();
|
||||
// file specific bottom holes
|
||||
union() {
|
||||
translate(v = [10, 15, 0])
|
||||
minkowski() {
|
||||
cube(size = [69, 100, 5]);
|
||||
cylinder(r = 1);
|
||||
}
|
||||
|
||||
translate(v=[88,15,0])
|
||||
minkowski() {
|
||||
cube(size = [69, 100, 5]);
|
||||
cylinder(r=1);
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
cases/rockpro/dual-tray.stl
Normal file
BIN
cases/rockpro/dual-tray.stl
Normal file
Binary file not shown.
@ -55,7 +55,7 @@ module cutoutProfile_N() {
|
||||
}
|
||||
}
|
||||
|
||||
cutoutProfile_N();
|
||||
//cutoutProfile_N();
|
||||
|
||||
|
||||
//mountPoints_N(10,2,2, true);
|
||||
|
||||
@ -1,22 +0,0 @@
|
||||
|
||||
|
||||
|
||||
rockProMountDeltaXY = [[0,0,0], [117.62,0,0], [117.62,71.00,0], [0,71.00,0]];
|
||||
|
||||
|
||||
module rockProMountPoints(cylHeight, cylRad, cylFn, center) {
|
||||
|
||||
for (i=[0:3]) {
|
||||
p = rockProMountDeltaXY[i];
|
||||
translate(v=[p[0], p[1], p[2]])
|
||||
cylinder(r=cylRad, h=cylHeight, $fn=cylFn, center=center);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,3 +1,14 @@
|
||||
/*
|
||||
TODO this case has many many problems as it currently is. The following
|
||||
should be addressed before it is printed again:
|
||||
- not enough space for I/O connectors (the plastic handles have
|
||||
to go though the IO holes right now and they usually don't fit)
|
||||
- risers are made of plastic and really easily break
|
||||
- side perforations for ventilation do not print nicely (probably a printer issue)
|
||||
- not enough space for sd card
|
||||
- no locking lid for case
|
||||
*/
|
||||
|
||||
include <../common.scad>
|
||||
|
||||
// All coordinates are in [x,y], or [x,y,z] format
|
||||
@ -78,9 +89,6 @@ module cutoutProfileAirflow_N() {
|
||||
cube(size=[inf50, 80, 15]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
difference() {
|
||||
|
||||
union() {
|
||||
@ -100,12 +108,8 @@ difference() {
|
||||
cutoutProfileAirflow_N();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//cutoutProfileAirflow_N();
|
||||
|
||||
|
||||
|
||||
module mountPoints_N(cylHeight, cylRad1, cylRad2, cylFn, center) {
|
||||
for (i=[0:3]) {
|
||||
p = mountPoints[i];
|
||||
@ -122,8 +126,6 @@ module mountPoints_N(cylHeight, cylRad1, cylRad2, cylFn, center) {
|
||||
mountPoints_N(7, mountPointDiameter/2.5, mountPointDiameter/2.5, 32, false);
|
||||
mountPoints_N(5, mountPointDiameter, mountPointDiameter, 32, false);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
module cutoutProfile_N() {
|
||||
|
||||
2
cases/side.scad
Normal file
2
cases/side.scad
Normal file
@ -0,0 +1,2 @@
|
||||
|
||||
|
||||
Reference in New Issue
Block a user