diff --git a/README.md b/README.md
index d84359e..813e1b6 100644
--- a/README.md
+++ b/README.md
@@ -9,9 +9,6 @@
- ***No cage nuts!*** Sliding hex nut design for the front rails allows one to easily mount items without dealing with cage nuts.
- ***Stackable:*** Individual racks can be easily stacked and fastened together. Mix and match different color and design combinations!
-### Renders
-See the [renders for difference parametric profiles here](media/renders)
-
## Assembly
Pre-generated STLs for roughly 200mm^3 (mini), 180mm^3 (micro), and 100mm^3 (nano) rack frames can be found in [stl](stl).
@@ -30,27 +27,45 @@ Please see [the assembly README here](./assembly-guide)
| Item | Name | Quantity | Comment |
|---------------------------------------------------------------|---------------------------|----------|----------------------------------------------------------------------------------------------------------------------------------|
-|
| M3x12 FHCS | 20 | Extras are useful and inexpensive. If you plan on eventually stacking multiple racks together, don't hesitate to get a lot more. |
+|
| M3x8 FHCS | 8 | Extras are useful and inexpensive. If you plan on eventually stacking multiple racks together, don't hesitate to get a lot more. |
+|
| M3x12 FHCS | 12 | ☝️ |
|
| M3x16 FHCS | 16 | ☝️ |
|
| M3 hex nut | 36 | ☝️ |
|
| 3x10 steel dowel pin | 4 | 3mm diameter, 10mm height |
|
| 6x2 neodymium disc magnet | 8 | 6mm diameter, 2mm height |
|
| super glue | \>= 2ml | Used to glue magnets to plastic |
-
+
+
+### Printing - Single Rack:
+| Part | Quantity |
+|--------------------------------------------------------------|----------|
+| [Y-Bar](./rack/print/yBar_P.scad) | 4 |
+| [X-Bar](./rack/print/xBar_P.scad) | 4 |
+| [Main Rail](./rack/print/mainRail_P.scad) | 4 |
+| [Left Magnet Module](./rack/print/magnetModuleLeft_P.scad) | 2 |
+| [Right Magnet Module](./rack/print/magnetModuleRight_P.scad) | 2 |
+| [Hinge Module](./rack/print/hingeModule.scad) | 4 |
+| [Left Side Wall](./rack/print/sideWallLeft_P.scad) | 1 |
+| [Right Side Wall](./rack/print/sideWallRight_P.scad) | 1 |
+| [XY-Plate](./rack/print/xyPlate_P.scad) | 2 |
+| [Feet](./rack/print/feet_P.scad) (optional) | 2 |
+
+
+
#### Notes:
- Omitted actual plastic for printing. Any conventional 3d printing plastic should do (PLA, PETG, ABS),
but beware of PLA's thermal limits. Higher infill is recommended for all parts.
-- For joining two racks, you will need 8 M3 hex nuts, and 8 M3x12 FHCS.
+- For joining two racks, you will need to print 4 [stackConnectorDuals](./rack/print/stackConnectorDual_P.scad), as well as 8 M3 hex nuts, and 8 M3x12 FHCS.
- Main front rails use M4 hex nuts and screws.
- Side rails are mounted using M3 hex nuts and screws.
## Configuring + Generating STLs
-A python script: `rbuild.py` is provided to generate different project stls.
+A python script: [rbuild.py](./rbuild.py) is provided to generate different project stls.
Requirements:
- - `openscad` cli (Currently only supported on Linux/Mac)
+ - `openscad` cli (Currently only supported on Linux/Mac). Please configure the path to the OpenSCAD binary in [rbuild.py](./rbuild.py)
- `python3`
### Examples:
diff --git a/assembly-guide/README.md b/assembly-guide/README.md
index 093f9e9..550b286 100644
--- a/assembly-guide/README.md
+++ b/assembly-guide/README.md
@@ -1,50 +1,52 @@
# Rack Assembly Instructions
-**Note**: This rack uses two different types of M3 flat heat screws: a 6mm length screw, referred to as type A; and a 10mm length screw, referred as type B.
-
-
-TODO: Add image reference for parts
+**Note**: Please see
+- [BOM](../README.md#bom---single-rack) for required materials, beyond the actual 3-d printed parts.
+- [Print BOM](../README.md#printing---single-rack) for all the required 3-d printed parts for a single rack.
## Instructions:
-Insert heatset inserts into Y-bars - 4 times:
-
+Slide in M3 hex nuts into the Y-bars - 4 times. Each corner should have 3 hex nuts:
+
Glue magnets into magnet side-modules - 4 times:
-
+
Glue top and bottom magnets into side walls - 2 times:
-
+
Insert top and bottom dowel rods into side walls - 2 times:
-
+
Slide Y-bars into X-bars - 2 times:
-
+
-Screw together Y-bars and X-bars using 4 B-type screws (one screw per corner) - 2 times:
-
+Screw together Y-bars and X-bars using 4 M3x12 FHCS screws (one screw per corner) - 2 times:
+
-Screw in the side-modules with A-type screws: two magnet side modules in front with the magnets facing outwards, and two dowel holder side modules in the back - 2 times:
-
-
-Screw in the main rails with A-type screws:
-
+Screw in the side-modules with M3x8 FHCS screws. Orientation matters here. The magnets modules should be on the eventual front side, facing outwards, and the two hinge modules should be in the back. Do this 2 times (for both trays):
+
+Screw in the main rails with M3x16 FHCS screws.
+
Prop us the side wall using the side modules. Make sure the dowels are inserted properly, and the magnets align:
-
+
-Slide in the other (top) tray. Make sure the magnets and dowels align. Screw in the main rails with A-type screws:
-
+Slide in the other (top) tray. Make sure the magnets and dowels align. Screw in the main rails with M3x16 FHCS screws:
+
+
+Attach the top and bottom plates with 4 M3x8 screws each:
+
+
Slide in hex nuts into feet - 2 times:
-
+
Insert feet into the bottom of the rack:
-
+
-Screw in feet using 4 B-type screws:
-
+Screw in feet using 4 M3x12 FHCS screws:
+
-Finally, attach the top and bottom plates with 4 A-type screws each:
-
+
+**FIN**
\ No newline at end of file
diff --git a/assembly-guide/connectXYTrays.gif b/assembly-guide/connectXYTrays.gif
deleted file mode 100644
index 978b069..0000000
Binary files a/assembly-guide/connectXYTrays.gif and /dev/null differ
diff --git a/assembly-guide/gifs/addMagnetsToMagnetModules.gif b/assembly-guide/gifs/addMagnetsToMagnetModules.gif
index b8b135e..684c050 100644
Binary files a/assembly-guide/gifs/addMagnetsToMagnetModules.gif and b/assembly-guide/gifs/addMagnetsToMagnetModules.gif differ
diff --git a/assembly-guide/gifs/addMagnetsToSideWall.gif b/assembly-guide/gifs/addMagnetsToSideWall.gif
index 38fc350..8d02121 100644
Binary files a/assembly-guide/gifs/addMagnetsToSideWall.gif and b/assembly-guide/gifs/addMagnetsToSideWall.gif differ
diff --git a/assembly-guide/gifs/attachSideConnectorModulesToYBars.gif b/assembly-guide/gifs/attachSideConnectorModulesToYBars.gif
index 16a2488..b1ee590 100644
Binary files a/assembly-guide/gifs/attachSideConnectorModulesToYBars.gif and b/assembly-guide/gifs/attachSideConnectorModulesToYBars.gif differ
diff --git a/assembly-guide/gifs/attachXYPlates.gif b/assembly-guide/gifs/attachXYPlates.gif
index a8d3b43..08db9f3 100644
Binary files a/assembly-guide/gifs/attachXYPlates.gif and b/assembly-guide/gifs/attachXYPlates.gif differ
diff --git a/assembly-guide/gifs/attachXYTrays.gif b/assembly-guide/gifs/attachXYTrays.gif
index ac3b4d6..a305058 100644
Binary files a/assembly-guide/gifs/attachXYTrays.gif and b/assembly-guide/gifs/attachXYTrays.gif differ
diff --git a/assembly-guide/gifs/connectXYTrayWithMainRails.gif b/assembly-guide/gifs/connectXYTrayWithMainRails.gif
index 15118bc..4770148 100644
Binary files a/assembly-guide/gifs/connectXYTrayWithMainRails.gif and b/assembly-guide/gifs/connectXYTrayWithMainRails.gif differ
diff --git a/assembly-guide/gifs/insertFeet.gif b/assembly-guide/gifs/insertFeet.gif
index 379e270..328c26f 100644
Binary files a/assembly-guide/gifs/insertFeet.gif and b/assembly-guide/gifs/insertFeet.gif differ
diff --git a/assembly-guide/gifs/propUpBottomXYTraywithSideWalls.gif b/assembly-guide/gifs/propUpBottomXYTraywithSideWalls.gif
index 691f13c..caed860 100644
Binary files a/assembly-guide/gifs/propUpBottomXYTraywithSideWalls.gif and b/assembly-guide/gifs/propUpBottomXYTraywithSideWalls.gif differ
diff --git a/assembly-guide/gifs/screwFeet.gif b/assembly-guide/gifs/screwFeet.gif
index c84ae2d..eb980cb 100644
Binary files a/assembly-guide/gifs/screwFeet.gif and b/assembly-guide/gifs/screwFeet.gif differ
diff --git a/assembly-guide/gifs/screwXBarAndYBar.gif b/assembly-guide/gifs/screwXBarAndYBar.gif
index e35c1a2..63ad2ed 100644
Binary files a/assembly-guide/gifs/screwXBarAndYBar.gif and b/assembly-guide/gifs/screwXBarAndYBar.gif differ
diff --git a/assembly-guide/gifs/slideHexNutsIntoYBar.gif b/assembly-guide/gifs/slideHexNutsIntoYBar.gif
index 50b9c96..b0c0bca 100644
Binary files a/assembly-guide/gifs/slideHexNutsIntoYBar.gif and b/assembly-guide/gifs/slideHexNutsIntoYBar.gif differ
diff --git a/assembly-guide/gifs/slideHexNutsIntoYBarXYPlate.gif b/assembly-guide/gifs/slideHexNutsIntoYBarXYPlate.gif
index 26d0a70..e75975c 100644
Binary files a/assembly-guide/gifs/slideHexNutsIntoYBarXYPlate.gif and b/assembly-guide/gifs/slideHexNutsIntoYBarXYPlate.gif differ
diff --git a/assembly-guide/insertDowels.gif b/assembly-guide/insertDowels.gif
deleted file mode 100644
index edabeff..0000000
Binary files a/assembly-guide/insertDowels.gif and /dev/null differ
diff --git a/assembly-guide/insertHeatsetInserts.gif b/assembly-guide/insertHeatsetInserts.gif
deleted file mode 100644
index f638525..0000000
Binary files a/assembly-guide/insertHeatsetInserts.gif and /dev/null differ
diff --git a/assembly-guide/magnetToMagnetModule.gif b/assembly-guide/magnetToMagnetModule.gif
deleted file mode 100644
index 18d2ca6..0000000
Binary files a/assembly-guide/magnetToMagnetModule.gif and /dev/null differ
diff --git a/assembly-guide/magnetToSideWall.gif b/assembly-guide/magnetToSideWall.gif
deleted file mode 100644
index 12bd9ad..0000000
Binary files a/assembly-guide/magnetToSideWall.gif and /dev/null differ
diff --git a/assembly-guide/screwFeetIntoYBar.gif b/assembly-guide/screwFeetIntoYBar.gif
deleted file mode 100644
index 0ec4baf..0000000
Binary files a/assembly-guide/screwFeetIntoYBar.gif and /dev/null differ
diff --git a/assembly-guide/screwXYPlates.gif b/assembly-guide/screwXYPlates.gif
deleted file mode 100644
index 07b3443..0000000
Binary files a/assembly-guide/screwXYPlates.gif and /dev/null differ
diff --git a/assembly-guide/screwYBarMainRail.gif b/assembly-guide/screwYBarMainRail.gif
deleted file mode 100644
index aec1475..0000000
Binary files a/assembly-guide/screwYBarMainRail.gif and /dev/null differ
diff --git a/assembly-guide/screwYBarSideModules.gif b/assembly-guide/screwYBarSideModules.gif
deleted file mode 100644
index e11ea54..0000000
Binary files a/assembly-guide/screwYBarSideModules.gif and /dev/null differ
diff --git a/assembly-guide/screwYBarXBar.gif b/assembly-guide/screwYBarXBar.gif
deleted file mode 100644
index f6cd4da..0000000
Binary files a/assembly-guide/screwYBarXBar.gif and /dev/null differ
diff --git a/assembly-guide/slideFeetIntoYBar.gif b/assembly-guide/slideFeetIntoYBar.gif
deleted file mode 100644
index 15caa8b..0000000
Binary files a/assembly-guide/slideFeetIntoYBar.gif and /dev/null differ
diff --git a/assembly-guide/slideHexNutToFeet.gif b/assembly-guide/slideHexNutToFeet.gif
deleted file mode 100644
index c46ee1d..0000000
Binary files a/assembly-guide/slideHexNutToFeet.gif and /dev/null differ
diff --git a/assembly-guide/slideInSideWall.gif b/assembly-guide/slideInSideWall.gif
deleted file mode 100644
index 20c0798..0000000
Binary files a/assembly-guide/slideInSideWall.gif and /dev/null differ
diff --git a/assembly-guide/slideYBarIntoXBar.gif b/assembly-guide/slideYBarIntoXBar.gif
deleted file mode 100644
index 31549de..0000000
Binary files a/assembly-guide/slideYBarIntoXBar.gif and /dev/null differ
diff --git a/rack/assembly/addMagnetsToMagnetModules.scad b/rack/assembly/addMagnetsToMagnetModules.scad
index 0038d98..7bf0302 100644
--- a/rack/assembly/addMagnetsToMagnetModules.scad
+++ b/rack/assembly/addMagnetsToMagnetModules.scad
@@ -8,7 +8,7 @@ $vpf = 22.50;
addMagnetsToMagnetModules(at=$t);
module addMagnetsToMagnetModules(at=0) {
- t = lerp(a=8,b=0,t=at);
+ t = lerp(a=6,b=0,t=at);
if (!plasticMask) {
magnetModule();
diff --git a/rack/assembly/addMagnetsToSideWall.scad b/rack/assembly/addMagnetsToSideWall.scad
index e0395b7..4c0389f 100644
--- a/rack/assembly/addMagnetsToSideWall.scad
+++ b/rack/assembly/addMagnetsToSideWall.scad
@@ -1,7 +1,7 @@
include <./common.scad>
-$vpt = [40,44,70];
-$vpr = [77,0,40];
+$vpt = [23,105,70];
+$vpr = [84,0,133];
$vpd = 370;
$vpf = 22.50;
diff --git a/rack/assembly/attachSideConnectorModulesToYBars.scad b/rack/assembly/attachSideConnectorModulesToYBars.scad
index 2d68a59..1ee6f2e 100644
--- a/rack/assembly/attachSideConnectorModulesToYBars.scad
+++ b/rack/assembly/attachSideConnectorModulesToYBars.scad
@@ -25,7 +25,7 @@ module attachSideConnectorModulesToYBars(at=0) {
addMagnetsToMagnetModules(at=1);
translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,sideWallConnLugDepression + 2*elevation])
- caseScrewA();
+ caseScrewShort();
}
multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * sideModuleTrans(elevation))
@@ -33,7 +33,7 @@ module attachSideConnectorModulesToYBars(at=0) {
addMagnetsToMagnetModules(at=1);
translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,sideWallConnLugDepression + 2*elevation])
- caseScrewA();
+ caseScrewShort();
}
multmatrix(yBarMirrorOtherCornerTrans * sideModuleTrans(elevation))
@@ -44,7 +44,7 @@ module attachSideConnectorModulesToYBars(at=0) {
}
translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,sideWallConnLugDepression + 2*elevation])
- caseScrewA();
+ caseScrewShort();
}
multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * yBarMirrorOtherCornerTrans * sideModuleTrans(elevation))
@@ -54,6 +54,6 @@ module attachSideConnectorModulesToYBars(at=0) {
}
translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,sideWallConnLugDepression + 2*elevation])
- caseScrewA();
+ caseScrewShort();
}
}
\ No newline at end of file
diff --git a/rack/assembly/attachXYPlates.scad b/rack/assembly/attachXYPlates.scad
index 99b687c..b880070 100644
--- a/rack/assembly/attachXYPlates.scad
+++ b/rack/assembly/attachXYPlates.scad
@@ -28,7 +28,7 @@ module attachXYPlates(at=0,r=0) {
module screw(t=0) {
translate(v=[0,0,-t])
mirror(v=[0,0,1])
- caseScrewA();
+ caseScrewMedium();
}
if (!plasticMask) {
diff --git a/rack/assembly/attachXYTrays.scad b/rack/assembly/attachXYTrays.scad
index b85f444..c0871c5 100644
--- a/rack/assembly/attachXYTrays.scad
+++ b/rack/assembly/attachXYTrays.scad
@@ -2,9 +2,9 @@ include <./common.scad>
use <./attachSideConnectorModulesToYBars.scad>
use <./propUpBottomXYTraywithSideWalls.scad>
-$vpt = [71,123,88];
-$vpr = [44,0,47];
-$vpd = 450;
+$vpt = [115,58,113];
+$vpr = [98,0,17];
+$vpd = 620;
$vpf = 22.50;
attachXYTrays(at=$t);
@@ -17,8 +17,8 @@ module attachXYTrays(at=0,r=0) {
module singleScrew() {
translate(v = [mainRailSlideHexOnYBarDx, mainRailSlideHexOnYBarDy, -5])
rotate(a=[-45,0,0])
- translate(v=[0,0,14 + t2]) // length of caseScrewB
- caseScrewA();
+ translate(v=[0,0,14 + t2]) // length of caseScrewLong
+ caseScrewMedium();
}
translate(v=[0,0,t1])
diff --git a/rack/assembly/common.scad b/rack/assembly/common.scad
index 930ad69..42917e9 100644
--- a/rack/assembly/common.scad
+++ b/rack/assembly/common.scad
@@ -54,13 +54,12 @@ module mirrorAllTrayCornersFromYBarSpace() {
secondStackTrans = upperXYTrayTrans * mirror(v=[0,0,1]);
-
-module caseScrewA() {
+module caseScrewShort() {
if (!screwMask) {
color([1, 1, 1]) {
difference() {
scale(v = [0.9, 0.9, 0.9])
- counterSunkHead_N(rackFrameScrewType, screwExtension = 10, headExtension = 0.5);
+ counterSunkHead_N(rackFrameScrewType, screwExtension = 8, headExtension = 0.5);
cylinder($fn = 6, r = 1.5);
}
@@ -68,12 +67,25 @@ module caseScrewA() {
}
}
-module caseScrewB() {
+module caseScrewMedium() {
if (!screwMask) {
color([1, 1, 1]) {
difference() {
scale(v = [0.9, 0.9, 0.9])
- counterSunkHead_N(rackFrameScrewType, screwExtension = 14, headExtension = 0.5);
+ counterSunkHead_N(rackFrameScrewType, screwExtension = 12, headExtension = 0.5);
+
+ cylinder($fn = 6, r = 1.5);
+ }
+ }
+ }
+}
+
+module caseScrewLong() {
+ if (!screwMask) {
+ color([1, 1, 1]) {
+ difference() {
+ scale(v = [0.9, 0.9, 0.9])
+ counterSunkHead_N(rackFrameScrewType, screwExtension = 16, headExtension = 0.5);
cylinder($fn = 6, r = 1.5);
}
diff --git a/rack/assembly/connectXYTrayWithMainRails.scad b/rack/assembly/connectXYTrayWithMainRails.scad
index 0568c22..05539a4 100644
--- a/rack/assembly/connectXYTrayWithMainRails.scad
+++ b/rack/assembly/connectXYTrayWithMainRails.scad
@@ -28,8 +28,8 @@ module connectXYTrayWithMainRails(at=0) {
multmatrix(
translate(v = [mainRailSlideHexOnYBarDx, mainRailSlideHexOnYBarDy, -5])*
rotate(a = [-45, 0, 0]))
- translate(v = [0, 0, 14 + t2]) // length of caseScrewB
- caseScrewB();
+ translate(v = [0, 0, 14 + t2]) // length of caseScrewLong
+ caseScrewLong();
}
}
diff --git a/rack/assembly/finalBuilds.scad b/rack/assembly/finalBuilds.scad
index a88cca0..8bec1cf 100644
--- a/rack/assembly/finalBuilds.scad
+++ b/rack/assembly/finalBuilds.scad
@@ -1,39 +1,12 @@
include <./common.scad>
+include <./screwFeet.scad>
$vpt = [23,22,20];
$vpr = [57,0,46];
$vpd = 60;
-// TODO: this is completly broken. fix this and figure out a nice way to run this with cli commands
-assemblyInstructions(stepNum=0);
-
-module assemblyInstructions (stepNum=1) {
-
- screwMask = false;
- plasticMask = false;
- sideSupportRailMask = true;
-
- module pickStep(stepNum) {
- children(stepNum);
- }
-
- pickStep(stepNum=stepNum) {
- slideHexNutsIntoYBar(at = $t); // moved
- addMagnetsToMagnetModules(at = $t); // moved
- addMagnetsToSideWall(at = $t); // moved
- attachXBarWithYBar(at = $t); // moved
- screwXBarAndYBar(at=$t); // moved
- attachSideConnectorModulesToYBars(at=$t); // moved
- connectXYTrayWithMainRails(at=1); // moved
- insertDowelsIntoSideWall(at=$t); // moved
- propUpBottomXYTraywithSideWalls(at=$t); // moved
- attachXYTrays(at=$t); // moved
- slideHexNutToFeet(at=$t);
- insertFeet(at=$t); // moved
- screwFeet(at=$t); // moved
- attachXYPlates(at=$t); // moved
- }
-
+// TODO fix this
+module finalBuilds () {
// Final builds:
// render()
@@ -46,384 +19,6 @@ module assemblyInstructions (stepNum=1) {
// stackable(at=$t); // recommended at least 32 frames for animation
// sideSwivel(at=$t);
-
- module slideHexNutsIntoYBar(at=0) {
-
-
- t = lerp(a=10,b=0.35,t=at); // non zero b for exposing the heatset gears for diagramming
-
- if (!plasticMask) {
- yBar();
- }
-
- heatSetHeight = heatSetInsertSlotHeightSlacked(rackFrameScrewType) * 0.95;
-
- function sideModuleHeatSetTrans(t=0) =
- translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,t-(heatSetHeight+sideWallConnLugDepression)]) *
- yBarSideModuleConnectorTrans;
-
- function mainRailHeatSetTrans(t=0) =
- translate(v=[mainRailSlideHexOnYBarDx,mainRailSlideHexOnYBarDy,t-heatSetHeight]) *
- yBarMainRailConnectorTrans;
-
- function xBarHeatSetTrans(t=0) =
- translate(v=[t-heatSetHeight,27,6]) *
- yBarXBarConnectorTrans *
- rotate(a=[0,90,0]);
-
- module heatSetInsertsOneCorner(t=0) {
- multmatrix(sideModuleHeatSetTrans(t = t))
- heatSetInsert(rackFrameScrewType);
-
- multmatrix(mainRailHeatSetTrans(t = t))
- heatSetInsert(rackFrameScrewType);
-
- multmatrix(xBarHeatSetTrans(t = t))
- heatSetInsert(rackFrameScrewType);
- }
-
- if (!screwMask) {
- heatSetInsertsOneCorner(t = t);
-
- multmatrix(yBarMirrorOtherCornerTrans)
- heatSetInsertsOneCorner(t = t);
- }
-
- }
-
- module addMagnetsToMagnetModules(at=0) {
- t = lerp(a=8,b=0,t=at);
-
- if (!plasticMask) {
- magnetModule();
- }
-
- function insertMagnetTrans(t=0) =
- translate(v=[sideWallConnW-(magnetFaceToSideWallConnOuterYEdge+magnetHSlacked) + t,
- magnetModuleMagnetMountDy,
- magnetModuleMagnetMountDz]) *
- rotate(a=[0,90,0]);
-
- multmatrix(insertMagnetTrans(t=t))
- magnet();
- }
-
- module addMagnetsToSideWall(at=0) {
- t = lerp(a=8,b=0,t=at);
-
- if (!plasticMask) {
- sideWallLeft();
- }
-
- function insertMagnetTrans(t=0) =
- translate(v=[sideWallThickness+t, magnetMountToYBarFront, magnetMountToYBarTop-sideWallZHingeTotalClearance]) *
- rotate(a=[0,90,0]);
-
- multmatrix(insertMagnetTrans(t=t))
- magnet();
-
- multmatrix(translate(v=[0,0,sideWallZ - 2*(magnetMountToYBarTop- sideWallZHingeTotalClearance)]) * insertMagnetTrans(t=t))
- magnet();
- }
-
- module attachXBarWithYBar(at=0) {
-
- t = lerp(a=20, b=0, t=at);
-
- // assemble x-y bar trays
- multmatrix(translate(v = [0, 0, t]))
- slideHexNutsIntoYBar(at=1);
-
- multmatrix(translate(v = [0, 0, t])*xBarSpaceToYBarSpace*xBarMirrorOtherCornerTrans*yBarSpaceToXBarSpace)
- slideHexNutsIntoYBar(at=1);
-
- if (!plasticMask) {
- multmatrix(xBarSpaceToYBarSpace)
- xBar();
-
- multmatrix(yBarMirrorOtherCornerTrans*xBarSpaceToYBarSpace)
- xBar();
- }
- }
-
- module screwXBarAndYBar(at=0) {
- screwExtension = lerp(a=15, b=0, t=at);
-
- // in x bar space
- function xBarYBarScrewTrans(extension) =
- translate(v=[27,xBarSideThickness + extension,6]) * rotate(a=[270,0,0]);
-
- // screw to connect x and y bars
- slideHexNutsIntoYBar(at=1);
-
- multmatrix(xBarSpaceToYBarSpace*xBarMirrorOtherCornerTrans*yBarSpaceToXBarSpace)
- slideHexNutsIntoYBar(at=1);
-
- multmatrix(xBarSpaceToYBarSpace)
- union() {
-
- if (!plasticMask) { xBar(); }
-
- multmatrix(xBarYBarScrewTrans(screwExtension))
- caseScrewB();
-
- multmatrix(xBarMirrorOtherCornerTrans * xBarYBarScrewTrans(screwExtension))
- caseScrewB();
- }
-
- multmatrix(yBarMirrorOtherCornerTrans*xBarSpaceToYBarSpace)
- union() {
- if (!plasticMask) { xBar(); }
-
- multmatrix(xBarYBarScrewTrans(screwExtension))
- caseScrewB();
-
- multmatrix(xBarMirrorOtherCornerTrans * xBarYBarScrewTrans(screwExtension))
- caseScrewB();
- }
- }
-
- module attachSideConnectorModulesToYBars(at=0) {
- elevation = lerp(a=8, b=0, t=at);
-
- // side module to front corner ybar
- function sideModuleTrans(t=0) =
- translate(v=[sideWallConnW,0,t-sideWallConnLugDepression])
- * yBarSideModuleConnectorTrans
- * mirror(v=[1,0,0]); // mirror for magnetModule
-
- screwXBarAndYBar(at=1);
-
- multmatrix(sideModuleTrans(elevation))
- union() {
- addMagnetsToMagnetModules(at=1);
-
- translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,sideWallConnLugDepression + 2*elevation])
- caseScrewA();
- }
-
- multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * sideModuleTrans(elevation))
- union() {
- addMagnetsToMagnetModules(at=1);
-
- translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,sideWallConnLugDepression + 2*elevation])
- caseScrewA();
- }
-
- multmatrix(yBarMirrorOtherCornerTrans * sideModuleTrans(elevation))
- union() {
-
- if (!plasticMask) {
- hingeModule();
- }
-
- translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,sideWallConnLugDepression + 2*elevation])
- caseScrewA();
- }
-
- multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * yBarMirrorOtherCornerTrans * sideModuleTrans(elevation))
- union() {
- if (!plasticMask) {
- hingeModule();
- }
-
- translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,sideWallConnLugDepression + 2*elevation])
- caseScrewA();
- }
- }
-
- module connectXYTrayWithMainRails(at=0) {
-
- elevation = lerp(a=5, b=0, t=at);
-
- attachSideConnectorModulesToYBars(at=1);
-
- function mainRailTrans(elevation) = translate(v=[0,0,elevation]) * yBarMainRailConnectorTrans;
-
- module railAndScrew(elevation) {
-
- if (!plasticMask) {
- mainRail();
- }
-
- translate(v=[railSideMountThickness + 5, railFrontThickness + 4,railFootThickness + 2*elevation])
- caseScrewA();
- }
-
- multmatrix(mainRailTrans(elevation=elevation))
- railAndScrew(elevation=elevation);
-
- multmatrix(yBarMirrorOtherCornerTrans * mainRailTrans(elevation=elevation))
- railAndScrew(elevation=elevation);
-
- multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * mainRailTrans(elevation=elevation))
- railAndScrew(elevation=elevation);
-
- multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * yBarMirrorOtherCornerTrans * mainRailTrans(elevation=elevation))
- railAndScrew(elevation=elevation);
- }
-
- module insertDowelsIntoSideWall(at=0) {
-
- t = lerp(a=10, b=0, t=at);
-
- hingeHoleH = hingePoleH-sideWallConnLugDepression;
-
- addMagnetsToSideWall(at=1);
-
- translate(v=[hingePoleDx,hingePoleDy, (sideWallZ-hingeHoleH) + t])
- hingeDowel();
-
- translate(v=[hingePoleDx,hingePoleDy, (hingeHoleH-hingePoleH)-t])
- hingeDowel();
-
- }
-
- module propUpBottomXYTraywithSideWalls(at=0, r=0) {
-
- t = lerp(a=10,b=0,t=at);
-
- function sideWallToYBarTrans(t=0,r=0) =
- yBarMirrorOtherCornerTrans *
- yBarSideModuleConnectorTrans * // bring to y bar space
- mirror(v=[0,1,0]) *
- translate(v=[0,0,t]) *
- translate(v=[sideWallConnW/2.0, -hingePoleR, sideWallZHingeTotalClearance]) * // bring to side module space
- rotate(a=[0,0,-r]) *
- translate(v=[-hingePoleDx, -hingePoleDy, 0]);
-
- connectXYTrayWithMainRails(at=1);
-
- multmatrix(sideWallToYBarTrans(t=t, r=r))
- insertDowelsIntoSideWall(at=1);
-
- multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * sideWallToYBarTrans(t=t,r=r))
- insertDowelsIntoSideWall(at=1);
- }
-
- module attachXYTrays(at=0,r=0) {
-
- t = lerp(a=10,b=0,t=at);
-
- module singleScrew(t=0) {
- translate(v = [railSideMountThickness+5, railFrontThickness+4, railFootThickness + 2*t])
- caseScrewA();
- }
-
- translate(v=[0,0,t])
- multmatrix(upperXYTrayTrans) {
- attachSideConnectorModulesToYBars(at=1);
-
- mirrorAllTrayCornersFromYBarSpace()
- multmatrix(yBarMainRailConnectorTrans)
- singleScrew(t=t);
- }
-
- propUpBottomXYTraywithSideWalls(at=1,r=r);
- }
-
- module attachXYPlates(at=0,r=0) {
-
- t = lerp(a=10,b=0,t=at);
-
- // TODO fix xyPlate transformations
- function xyPlateToYBarTrans() = translate(v=[6,6,0]) * yBarBasePlateConnectorTrans;
-
- attachXYTrays(at=1,r=r);
-
- multmatrix(xyPlateToYBarTrans())
- xyPlateWithScrews(t=t);
-
- multmatrix(upperXYTrayTrans * xyPlateToYBarTrans())
- xyPlateWithScrews(t=t);
-
- module xyPlateWithScrews(t=0) {
-
- module screw(t=0) {
- translate(v=[0,0,-t])
- mirror(v=[0,0,1])
- caseScrewA();
- }
-
- if (!plasticMask) {
- translate(v = [0, 0, -t])
- xyPlate();
- }
-
- screw(t=2*t);
-
- translate(v=[xyPlateConnDx, 0,0])
- screw(t=2*t);
-
- translate(v=[0, xyPlateConnDy,0])
- screw(t=2*t);
-
- translate(v=[xyPlateConnDx, xyPlateConnDy,0])
- screw(t=2*t);
- }
- }
-
- module slideHexNutToFeet(at=0) {
-
- t = lerp(a=8, b=0, t=at);
-
- module slideNut() {
- if (!screwMask) {
- rotate(a = [0, 0, 90])
- rotate(a = [90, 0, 0])
- hexNut(rackFrameScrewType);
- }
- }
-
- translate(v=[0,t,connectorBottomToScrew + 0.5]) // where does this come from again? slack?
- slideNut();
-
- translate(v=[stackConnectorDx,t,connectorBottomToScrew + 0.5]) // where does this come from again? slack?
- slideNut();
-
- if (!plasticMask) {
- stackConnectorFeet();
- }
- }
-
- module insertFeet(at=0,r=0) {
-
- t = lerp(a=10,b=0,t=at);
-
- attachXYPlates(at=1,r=r);
-
- multmatrix(feetToYBarTrans(t=t))
- slideHexNutToFeet(at=1);
-
- multmatrix(yBarMirrorOtherCornerTrans * feetToYBarTrans(t=t))
- slideHexNutToFeet(at=1);
- }
-
- module screwFeet(at=0,r=0) {
-
- t = lerp(a=20, b=0, t=at);
-
- function screwTrans(t=0) = translate(v=[-t - 9,0,connectorBottomToScrew]) * rotate(a=[0,-90,0]);
- mirrorOtherFeetStackConnectorTrans = translate(v=[stackConnectorDx,0,0]) * mirror(v=[1,0,0]);
-
-
- module screwToFeetModule() {
- multmatrix(feetToYBarTrans(t = 0)*screwTrans(t = t))
- caseScrewB(); // we might want a longer screw?
-
- multmatrix(feetToYBarTrans(t = 0)*mirrorOtherFeetStackConnectorTrans*screwTrans(t = t))
- caseScrewB();
- }
-
- screwToFeetModule();
-
- multmatrix(yBarMirrorOtherCornerTrans)
- screwToFeetModule();
-
- insertFeet(at=1,r=r);
- }
-
-
module finalSingle(r=0) {
screwFeet(at=1,r=r);
@@ -436,11 +31,11 @@ module assemblyInstructions (stepNum=1) {
}
rotate(a = [0, -90, 0])
- caseScrewA();
+ caseScrewMedium();
translate(v = [0, sideRailScrewMountDist, 0])
rotate(a = [0, -90, 0])
- caseScrewA();
+ caseScrewMedium();
}
}
@@ -453,11 +48,11 @@ module assemblyInstructions (stepNum=1) {
sideSupportRailBase("lBracket");
}
rotate(a=[0,-90,0])
- caseScrewA();
+ caseScrewMedium();
translate(v=[0,sideRailScrewMountDist,0])
rotate(a=[0,-90,0])
- caseScrewA();
+ caseScrewMedium();
}
}
}
@@ -522,7 +117,7 @@ module assemblyInstructions (stepNum=1) {
mirrorAllTrayCornersFromYBarSpace()
multmatrix(screwTrans)
- caseScrewB();
+ caseScrewLong();
}
if (!plasticMask) {
diff --git a/rack/assembly/insertFeet.scad b/rack/assembly/insertFeet.scad
index d5a3f78..e03a291 100644
--- a/rack/assembly/insertFeet.scad
+++ b/rack/assembly/insertFeet.scad
@@ -32,10 +32,10 @@ module screwFeet(at=0,r=0) {
module screwToFeetModule() {
multmatrix(feetToYBarTrans(t = 0)*screwTrans(t = t))
- caseScrewB(); // we might want a longer screw?
+ caseScrewLong(); // we might want a longer screw?
multmatrix(feetToYBarTrans(t = 0)*mirrorOtherFeetStackConnectorTrans*screwTrans(t = t))
- caseScrewB();
+ caseScrewLong();
}
screwToFeetModule();
diff --git a/rack/assembly/screwFeet.scad b/rack/assembly/screwFeet.scad
index 7debb1c..affae75 100644
--- a/rack/assembly/screwFeet.scad
+++ b/rack/assembly/screwFeet.scad
@@ -18,10 +18,10 @@ module screwFeet(at=0,r=0) {
module screwToFeetModule() {
multmatrix(feetToYBarTrans(t = 0)*screwTrans(t = t))
- caseScrewA();
+ caseScrewMedium();
multmatrix(feetToYBarTrans(t = 0)*mirrorOtherFeetStackConnectorTrans*screwTrans(t = t))
- caseScrewA();
+ caseScrewMedium();
}
screwToFeetModule();
diff --git a/rack/assembly/screwXBarAndYBar.scad b/rack/assembly/screwXBarAndYBar.scad
index 7307e7a..40d8363 100644
--- a/rack/assembly/screwXBarAndYBar.scad
+++ b/rack/assembly/screwXBarAndYBar.scad
@@ -23,10 +23,10 @@ module screwXBarAndYBar(at=0) {
if (!plasticMask) { xBar(); }
multmatrix(xBarYBarScrewTrans(screwExtension))
- caseScrewB();
+ caseScrewLong();
multmatrix(xBarMirrorOtherCornerTrans * xBarYBarScrewTrans(screwExtension))
- caseScrewB();
+ caseScrewLong();
}
multmatrix(yBarMirrorOtherCornerTrans*xBarSpaceToYBarSpace)
@@ -34,9 +34,9 @@ module screwXBarAndYBar(at=0) {
if (!plasticMask) { xBar(); }
multmatrix(xBarYBarScrewTrans(screwExtension))
- caseScrewB();
+ caseScrewLong();
multmatrix(xBarMirrorOtherCornerTrans * xBarYBarScrewTrans(screwExtension))
- caseScrewB();
+ caseScrewLong();
}
}
\ No newline at end of file
diff --git a/rack/print/feet_P.scad b/rack/print/feet_P.scad
new file mode 100644
index 0000000..1df7366
--- /dev/null
+++ b/rack/print/feet_P.scad
@@ -0,0 +1,4 @@
+use <../stackEnds.scad>
+
+
+stackConnectorFeet();
\ No newline at end of file
diff --git a/rack/print/hingeModule_P1.scad b/rack/print/hingeModule.scad
similarity index 100%
rename from rack/print/hingeModule_P1.scad
rename to rack/print/hingeModule.scad
diff --git a/rack/print/magnetModule_P2.scad b/rack/print/magnetModuleLeft_P.scad
similarity index 100%
rename from rack/print/magnetModule_P2.scad
rename to rack/print/magnetModuleLeft_P.scad
diff --git a/rack/print/magnetModule_P1.scad b/rack/print/magnetModuleRight_P.scad
similarity index 100%
rename from rack/print/magnetModule_P1.scad
rename to rack/print/magnetModuleRight_P.scad
diff --git a/rbuild.py b/rbuild.py
index 758f34a..f7e92a1 100644
--- a/rbuild.py
+++ b/rbuild.py
@@ -27,17 +27,17 @@ ASSEMBLY_GIF_TEMP_DIR = ASSEMBLY_GIF_BUILD_DIR + '/tmp'
BUILD_GIF_FROM_PNG_SCRIPT = './misc/animate.sh'
ASSEMBLY_STEPS = [
- ('slideHexNutsIntoYBar.scad', 16),
+ ('slideHexNutsIntoYBar.scad', 24),
('addMagnetsToMagnetModules.scad', 16),
('addMagnetsToSideWall.scad', 16),
('attachXBarWithYBar.scad', 16),
('screwXBarAndYBar.scad', 16),
('attachSideConnectorModulesToYBars.scad', 16),
- ('connectXYTrayWithMainRails.scad', 16),
+ ('connectXYTrayWithMainRails.scad', 24),
('insertDowelsIntoSideWall.scad', 16),
('propUpBottomXYTraywithSideWalls.scad', 16),
('slideHexNutsIntoYBarXYPlate.scad', 16),
- ('attachXYTrays.scad', 16),
+ ('attachXYTrays.scad', 24),
('slideHexNutToFeet.scad', 16),
('insertFeet.scad', 16),
('screwFeet.scad', 16),
diff --git a/stl/micro/rack-mount/patchPanel_P.stl b/stl/micro/rack-mount/patchPanel_P.stl
deleted file mode 100644
index e6fda61..0000000
Binary files a/stl/micro/rack-mount/patchPanel_P.stl and /dev/null differ
diff --git a/stl/micro/rack-mount/sideSupportRail_P1.stl b/stl/micro/rack-mount/sideSupportRail_P1.stl
deleted file mode 100644
index 5b77e9d..0000000
Binary files a/stl/micro/rack-mount/sideSupportRail_P1.stl and /dev/null differ
diff --git a/stl/micro/rack-mount/sideSupportRail_P2.stl b/stl/micro/rack-mount/sideSupportRail_P2.stl
deleted file mode 100644
index a4e8180..0000000
Binary files a/stl/micro/rack-mount/sideSupportRail_P2.stl and /dev/null differ
diff --git a/stl/micro/rack-mount/tray_P.stl b/stl/micro/rack-mount/tray_P.stl
deleted file mode 100644
index ccb8ab8..0000000
Binary files a/stl/micro/rack-mount/tray_P.stl and /dev/null differ
diff --git a/stl/micro/rack/eval_P.stl b/stl/micro/rack/eval_P.stl
deleted file mode 100644
index 8e55e04..0000000
Binary files a/stl/micro/rack/eval_P.stl and /dev/null differ
diff --git a/stl/micro/rack/hingeModule_P1.stl b/stl/micro/rack/hingeModule_P1.stl
deleted file mode 100644
index c8a855e..0000000
Binary files a/stl/micro/rack/hingeModule_P1.stl and /dev/null differ
diff --git a/stl/micro/rack/magnetModule_P1.stl b/stl/micro/rack/magnetModule_P1.stl
deleted file mode 100644
index 6122015..0000000
Binary files a/stl/micro/rack/magnetModule_P1.stl and /dev/null differ
diff --git a/stl/micro/rack/magnetModule_P2.stl b/stl/micro/rack/magnetModule_P2.stl
deleted file mode 100644
index b266505..0000000
Binary files a/stl/micro/rack/magnetModule_P2.stl and /dev/null differ
diff --git a/stl/micro/rack/mainRail_P.stl b/stl/micro/rack/mainRail_P.stl
deleted file mode 100644
index 7e6c3fd..0000000
Binary files a/stl/micro/rack/mainRail_P.stl and /dev/null differ
diff --git a/stl/micro/rack/sideWallLeft_P.stl b/stl/micro/rack/sideWallLeft_P.stl
deleted file mode 100644
index 8923ce9..0000000
Binary files a/stl/micro/rack/sideWallLeft_P.stl and /dev/null differ
diff --git a/stl/micro/rack/sideWallRight_P.stl b/stl/micro/rack/sideWallRight_P.stl
deleted file mode 100644
index e26a7dd..0000000
Binary files a/stl/micro/rack/sideWallRight_P.stl and /dev/null differ
diff --git a/stl/micro/rack/stackConnectorBottom_P.stl b/stl/micro/rack/stackConnectorBottom_P.stl
deleted file mode 100644
index 2a4ae16..0000000
Binary files a/stl/micro/rack/stackConnectorBottom_P.stl and /dev/null differ
diff --git a/stl/micro/rack/stackConnectorDual_P.stl b/stl/micro/rack/stackConnectorDual_P.stl
deleted file mode 100644
index a5fc881..0000000
Binary files a/stl/micro/rack/stackConnectorDual_P.stl and /dev/null differ
diff --git a/stl/micro/rack/xBar_P.stl b/stl/micro/rack/xBar_P.stl
deleted file mode 100644
index 3844623..0000000
Binary files a/stl/micro/rack/xBar_P.stl and /dev/null differ
diff --git a/stl/micro/rack/xyPlate_P.stl b/stl/micro/rack/xyPlate_P.stl
deleted file mode 100644
index 004d527..0000000
Binary files a/stl/micro/rack/xyPlate_P.stl and /dev/null differ
diff --git a/stl/micro/rack/yBar_P.stl b/stl/micro/rack/yBar_P.stl
deleted file mode 100644
index bacb141..0000000
Binary files a/stl/micro/rack/yBar_P.stl and /dev/null differ