update sidewalls

This commit is contained in:
zhao
2023-07-15 12:41:42 -04:00
parent 95020a2117
commit ab08f6392c
23 changed files with 57 additions and 34 deletions

View File

@ -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

View File

@ -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;

View File

@ -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);
}

Binary file not shown.

View File

@ -4,7 +4,7 @@ include <../sharedVariables.scad>
include <./sideWallVariables.scad>
translate(v=[10,20,-2 - sideWallZHingeTotalClearance])
hingeModule();
*hingeModule();
module hingeModule() {

View File

@ -4,7 +4,7 @@ include <../sharedVariables.scad>
include <./sideWallVariables.scad>
translate(v=[10,-5,-(2+sideWallZHingeTotalClearance)])
magnetModule();
*magnetModule();
magnetModuleMagnetMountDy = magnetMountToYBarFront - sideWallSlotToXZ;
magnetModuleMagnetMountDz = magnetMountToYBarTop + sideWallConnLugDepression;

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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.