update sidewalls
This commit is contained in:
10
README.md
10
README.md
@ -56,19 +56,19 @@ Requirements:
|
||||
### Examples:
|
||||
Generate all project files for the `micro` profile:
|
||||
|
||||
`python3 rbuild.py -b all --nightly -c micro`
|
||||
`python3 rbuild.py -b all -c micro`
|
||||
|
||||
This will build all the required STLs for a micro rack in the `stl/custom/` directory. The `--nightly` is optional and
|
||||
means the build script will use the `openscad-nightly` command, instead of `openscad`. This usually results in much
|
||||
faster build times and is generally recommended.
|
||||
This will build all the required STLs for a micro rack in the `stl/custom/` directory.
|
||||
|
||||
For generating a specific part:
|
||||
|
||||
`python3 rbuild.py -b yBar --nightly -c micro -t custom`
|
||||
`python3 rbuild.py -b yBar -c micro -t custom`
|
||||
|
||||
Generated stls are put into the `stl/` directories. The actual variable values for different profiles can be found in
|
||||
[rack/profiles.scad](config/rackFrame.scad).
|
||||
|
||||
`rbuild.py` also support an optional `--nightly` flag, which means the build script will use the `openscad-nightly` command, instead of `openscad`.
|
||||
|
||||
We recommend you start by printing the `eval_P.stl` file first, just to determine if the default slack/layer height
|
||||
configurations work for you. If parts are too tight/loose please take a look at
|
||||
[config/slack.scad](config/slack.scad). Please also adjust [config/printing.scad](config/printing.scad) to match your
|
||||
|
||||
@ -13,15 +13,15 @@
|
||||
- These values depend on print orientation and it's assumed parts are printed in their recommended orientations.
|
||||
*/
|
||||
|
||||
xySlack = 0.3;
|
||||
xySlack = 0.4;
|
||||
|
||||
radiusXYSlack = xySlack/2;
|
||||
|
||||
zSlack = 0.2;
|
||||
zSlack = 0.0;
|
||||
|
||||
overhangSlack = 0.4;
|
||||
overhangSlack = 0.7;
|
||||
|
||||
supportedOverhangSlack = 0.4;
|
||||
supportedOverhangSlack = 0.7;
|
||||
|
||||
// special slack cases, change if neccessary
|
||||
xBarYBarDovetailSlack = xySlack;
|
||||
@ -5,7 +5,7 @@ use <./rackEars.scad>
|
||||
|
||||
// Config variables
|
||||
//trayAlignment = "middle"; // middle, right, left
|
||||
trayWidth = 150;
|
||||
trayWidth = 110;
|
||||
trayDepth = 100;
|
||||
trayThickness = 3;
|
||||
|
||||
@ -17,26 +17,47 @@ bottomScrewTray(u=5);
|
||||
|
||||
module bottomScrewTray(u) {
|
||||
|
||||
screwDx = rackMountScrewWidth;
|
||||
echo(screwDx);
|
||||
|
||||
frontLipHeight = 5;
|
||||
backLipHeight = 5; // also applies to sides
|
||||
lipThickness = 3;
|
||||
|
||||
rackEarSideThickness = 3;
|
||||
rackEarFrontThickness = 3;
|
||||
|
||||
screwDx = rackMountScrewWidth; // x dist between the mount holes
|
||||
screwDz = uDiff * u;
|
||||
|
||||
plateLength = screwDx + 2*rackMountScrewXDist;
|
||||
plateHeight = screwDz + 2*rackMountScrewZDist;
|
||||
|
||||
leftScrewDistToTray = 10+4+3;
|
||||
assert(leftScrewDistToTray >= 5);
|
||||
minScrewToTraySpacing = 8;
|
||||
|
||||
// TODO: toggle this based on left/right/middle alignment
|
||||
leftScrewDistToTray = minScrewToTraySpacing + 2 +5;
|
||||
|
||||
leftScrewGlobalX = -leftScrewDistToTray;
|
||||
rightScrewGlobalX = screwDx + leftScrewGlobalX;
|
||||
|
||||
cube(size=[trayWidth, trayDepth, trayThickness]);
|
||||
|
||||
translate(v=[rackMountScrewXDist+leftScrewGlobalX+3,0,rackMountScrewZDist])
|
||||
rackEarModule(frontThickness=3,sideThickness=3,frontWidth=leftScrewDistToTray, sideDepth=trayDepth-3, u=5);
|
||||
translate(v=[0,0,trayThickness])
|
||||
cube(size=[trayWidth, lipThickness, frontLipHeight]);
|
||||
|
||||
translate(v=[0,trayDepth-lipThickness,trayThickness])
|
||||
cube(size=[trayWidth, lipThickness, backLipHeight]);
|
||||
|
||||
translate(v=[0,0,trayThickness])
|
||||
cube(size=[lipThickness, trayDepth, backLipHeight]);
|
||||
|
||||
translate(v=[trayWidth-lipThickness,0,trayThickness])
|
||||
cube(size=[lipThickness, trayDepth, backLipHeight]);
|
||||
|
||||
translate(v=[leftScrewGlobalX,0,rackMountScrewZDist])
|
||||
rackEarModule(frontThickness=rackEarFrontThickness,sideThickness=rackEarSideThickness,frontWidth=leftScrewDistToTray+rackMountScrewXDist+rackEarSideThickness, sideDepth=trayDepth-lipThickness, u=u);
|
||||
|
||||
translate(v=[rightScrewGlobalX,0,rackMountScrewZDist])
|
||||
mirror(v=[1,0,0])
|
||||
rackEarModule(frontThickness=3,sideThickness=3,frontWidth=30, sideDepth=trayDepth-3, u=5);
|
||||
rackEarModule(frontThickness=rackEarFrontThickness,sideThickness=rackEarSideThickness,frontWidth=rightScrewGlobalX-trayWidth+rackMountScrewXDist+rackEarSideThickness, sideDepth=trayDepth-lipThickness, u=u);
|
||||
|
||||
}
|
||||
BIN
rack-mount/bottomScrewTray.stl
Normal file
BIN
rack-mount/bottomScrewTray.stl
Normal file
Binary file not shown.
@ -4,7 +4,7 @@ include <../sharedVariables.scad>
|
||||
include <./sideWallVariables.scad>
|
||||
|
||||
translate(v=[10,20,-2 - sideWallZHingeTotalClearance])
|
||||
hingeModule();
|
||||
*hingeModule();
|
||||
|
||||
module hingeModule() {
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@ include <../sharedVariables.scad>
|
||||
include <./sideWallVariables.scad>
|
||||
|
||||
translate(v=[10,-5,-(2+sideWallZHingeTotalClearance)])
|
||||
magnetModule();
|
||||
*magnetModule();
|
||||
|
||||
magnetModuleMagnetMountDy = magnetMountToYBarFront - sideWallSlotToXZ;
|
||||
magnetModuleMagnetMountDz = magnetMountToYBarTop + sideWallConnLugDepression;
|
||||
|
||||
@ -5,13 +5,13 @@ sideWallLeft();
|
||||
module sideWallLeft() {
|
||||
|
||||
applySideWallVerticalRibs()
|
||||
//applyEpicVentilation()
|
||||
applyEpicVentilation()
|
||||
sideWallBase();
|
||||
|
||||
module applyEpicVentilation() {
|
||||
apply_n() {
|
||||
for (i = [1:8]) {
|
||||
translate(v = [0, 41, i * 18 + 10])
|
||||
translate(v = [0, 41, i * 12 + 10])
|
||||
vent();
|
||||
}
|
||||
children(0);
|
||||
@ -20,17 +20,18 @@ module sideWallLeft() {
|
||||
module vent() {
|
||||
minkowski() {
|
||||
rotate(a=[0,90,0])
|
||||
cylinder(r=1,h=1);
|
||||
cylinder(r=2,h=1);
|
||||
|
||||
cube(size = [10, 80, 5]);
|
||||
cube(size = [10, 100, 1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module applySideWallVerticalRibs() {
|
||||
echo("sideWallZ", sideWallZ);
|
||||
apply_p() {
|
||||
translate(v = [0, 20, 0])
|
||||
sideWallVerticalRibs(numRibs = 9, ribZ = sideWallZ, ribYDiff = 20, ribExtrusion = 1.5);
|
||||
translate(v = [0, 30, 0])
|
||||
sideWallVerticalRibs(numRibs = 2, ribZ = sideWallZ, ribYDiff = 120, ribExtrusion = 1.5);
|
||||
|
||||
children(0);
|
||||
}
|
||||
|
||||
@ -4,17 +4,17 @@ sideWallRight();
|
||||
|
||||
module sideWallRight() {
|
||||
|
||||
//applyEpicVentilation()
|
||||
applyEpicVentilation()
|
||||
mirror(v=[1,0,0])
|
||||
applySideWallVerticalRibs()
|
||||
//render()
|
||||
sideWallBase();
|
||||
|
||||
module applyEpicVentilation() {
|
||||
|
||||
apply_n() {
|
||||
translate(v=[-10,0,0])
|
||||
for (i = [1:8]) {
|
||||
translate(v = [0, 41, i * 18 + 10])
|
||||
translate(v = [0, 41, i * 12 + 10])
|
||||
vent();
|
||||
}
|
||||
children(0);
|
||||
@ -22,8 +22,10 @@ module sideWallRight() {
|
||||
|
||||
module vent() {
|
||||
minkowski() {
|
||||
sphere(r=1);
|
||||
cube(size = [10, 40, 3]);
|
||||
rotate(a=[0,90,0])
|
||||
cylinder(r=2,h=1);
|
||||
|
||||
cube(size = [10, 100, 1]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -31,8 +33,8 @@ module sideWallRight() {
|
||||
|
||||
module applySideWallVerticalRibs() {
|
||||
apply_p() {
|
||||
translate(v = [0, 20, 0])
|
||||
sideWallVerticalRibs(numRibs = 9, ribZ = sideWallZ, ribYDiff = 20, ribExtrusion = 1.5);
|
||||
translate(v = [0, 30, 0])
|
||||
sideWallVerticalRibs(numRibs = 2, ribZ = sideWallZ, ribYDiff = 120, ribExtrusion = 1.5);
|
||||
|
||||
children(0);
|
||||
}
|
||||
|
||||
@ -115,7 +115,6 @@ def run_build(args):
|
||||
if filename_rack_mount:
|
||||
build_single(RACK_MOUNT_BUILD_DIR, rackMountBuildDirFull, filename_rack, config_var, dz, nightly)
|
||||
|
||||
|
||||
def build_single(build_dir, target_dir, filename, config, dz, nightly):
|
||||
print('Building:', filename, 'from', build_dir, 'to', target_dir)
|
||||
openscad_args = construct_openscad_args(build_dir, target_dir, filename, config, dz)
|
||||
@ -171,7 +170,7 @@ def run_openscad(options, nightly):
|
||||
else:
|
||||
command = ['openscad']
|
||||
|
||||
command += ['-q', '--export-format', 'binstl'] + options
|
||||
command += ['--export-format', 'binstl'] + options
|
||||
try:
|
||||
subprocess.check_output(command, universal_newlines=True, stderr=subprocess.DEVNULL)
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user