diff --git a/.gitignore b/.gitignore index 9eecd61..12dc266 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,9 @@ *~ [#]* -.idea \ No newline at end of file +.idea + + +stl/ +!stl/mini/ +!stl/micro/ +!stl/nano/ diff --git a/README.md b/README.md index a5762d2..a3b1a6b 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ See the [renders for difference parametric profiles here](media/renders) ## Assembly -Pre-generated STLs for roughly 200mm^3 (mini), 170mm^3 (micro), and 100mm^3 (nano) rack frames can be found in [stl](stl). +Pre-generated STLs for roughly 200mm^3 (mini), 180mm^3 (micro), and 100mm^3 (nano) rack frames can be found in [stl](stl). These STLs are generated from the files in [rack/print](rack/print), and [rack-mount/print](rack-mount/print) - further information about printing these parts (supports, orientation) can be found in these files. @@ -54,13 +54,16 @@ Requirements: - `python3` ### Examples: -Generate all project files for the `mini` profile: +Generate all project files for the `micro` profile: -`python3 rbuild.py -b all -c micro` +`python3 rbuild.py -b all -c micro -t custom` -Generate specific part: +This will build all the required STLs for a micro rack in the `stl/custom/` directory. -`python3 rbuild.py -b yBar` + +For generating a specific part: + +`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](rack/profiles.scad). \ No newline at end of file diff --git a/rack/profiles.scad b/rack/profiles.scad index 884676c..6967876 100644 --- a/rack/profiles.scad +++ b/rack/profiles.scad @@ -12,7 +12,7 @@ _profileConfigs = [ ["default", [ - ["maxUnitWidth", 170], + ["maxUnitWidth", 180], ["maxUnitDepth", 180], ["numRailScrews", 18], ["screwDiff", 10], @@ -27,7 +27,7 @@ _profileConfigs = [ ["numRailScrews", 10] ]], ["micro", [ - ["maxUnitWidth", 170], + ["maxUnitWidth", 180], ["maxUnitDepth", 180], ["numRailScrews", 18] ]], diff --git a/rbuild.py b/rbuild.py index 5e31931..aa13b27 100644 --- a/rbuild.py +++ b/rbuild.py @@ -30,8 +30,7 @@ def main(): parser = argparse.ArgumentParser( prog='rbuild', description='CLI-based helper utility to build project items. ' - 'This includes both the rack and also rack-mount items', - epilog='That\'s all folks!' + 'This includes both the rack and also rack-mount items' ) parser.add_argument( @@ -44,24 +43,43 @@ def main(): parser.add_argument( '-c', - default=BuildSizeConfig.MINI, + default=BuildSizeConfig.MICRO, choices=[BuildSizeConfig.NANO, BuildSizeConfig.MINI, BuildSizeConfig.MICRO], help='Build size config profile. This will determine the size of the rack you wish to generate. ' 'For actual dimensions, please see profiles.scad.' ) + parser.add_argument( + '-t', + default="", + help='Target directory to build STLs in (is under the /stl directory). Default target directory is based on ' + 'the config.' + ) + + parser.add_argument( + '-dz', + default=0, + help='Override number of rail screws (ie override rail height). Defaults to profile settings.' + ) + args = parser.parse_args() + run_build(args) + + +def run_build(args): build_var = args.b config_var = args.c + target_var = args.t + dz = args.dz - run_build(build_var, config_var) + if target_var != "": + final_target_directory_name = target_var + else: + final_target_directory_name = config_var - -def run_build(build_var, config_var): - - rackBuildDirFull = os.path.join(BUILD_PARENT_DIR, config_var, RACK_BUILD_TARGET_SUB_DIR) - rackMountBuildDirFull = os.path.join(BUILD_PARENT_DIR, config_var, RACK_MOUNT_BUILD_TARGET_SUB_DIR) + rackBuildDirFull = os.path.join(BUILD_PARENT_DIR, final_target_directory_name, RACK_BUILD_TARGET_SUB_DIR) + rackMountBuildDirFull = os.path.join(BUILD_PARENT_DIR, final_target_directory_name, RACK_MOUNT_BUILD_TARGET_SUB_DIR) if not os.path.exists(rackBuildDirFull): os.makedirs(rackBuildDirFull) @@ -71,10 +89,10 @@ def run_build(build_var, config_var): if build_var == 'all': for dir_file in os.listdir(RACK_BUILD_DIR): - build_single(RACK_BUILD_DIR, rackBuildDirFull, dir_file, config_var) + build_single(RACK_BUILD_DIR, rackBuildDirFull, dir_file, config_var, dz) for dir_file in os.listdir(RACK_MOUNT_BUILD_DIR): - build_single(RACK_MOUNT_BUILD_DIR, rackMountBuildDirFull, dir_file, config_var) + build_single(RACK_MOUNT_BUILD_DIR, rackMountBuildDirFull, dir_file, config_var, dz) return filename_rack = find_rack(build_var) @@ -85,23 +103,30 @@ def run_build(build_var, config_var): return if filename_rack: - build_single(RACK_BUILD_DIR, rackBuildDirFull, filename_rack, config_var) + build_single(RACK_BUILD_DIR, rackBuildDirFull, filename_rack, config_var, dz) if filename_rack_mount: - build_single(RACK_MOUNT_BUILD_DIR, rackMountBuildDirFull, filename_rack, config_var) + build_single(RACK_MOUNT_BUILD_DIR, rackMountBuildDirFull, filename_rack, config_var, dz) -def build_single(build_dir, target_dir, filename, config): +def build_single(build_dir, target_dir, filename, config, dz): print('Building:', filename, 'from', build_dir, 'to', target_dir) - openscad_args = construct_openscad_args(build_dir, target_dir, filename, config) + openscad_args = construct_openscad_args(build_dir, target_dir, filename, config, dz) run_openscad(openscad_args) -def construct_openscad_args(build_dir, target_dir, filename, config): +def construct_openscad_args(build_dir, target_dir, filename, config, dz): source = os.path.join(build_dir, filename) target = os.path.join(target_dir, os.path.splitext(filename)[0] + '.stl') - return ['-D', 'profileName=\"' + config + '\"', '-o', target, source] + openscad_args = ['-D', 'profileName=\"' + config + '\"'] + + if dz != 0: + openscad_args += ['-D', 'numRailScrews=' + dz] + + openscad_args += ['-o', target, source] + + return openscad_args def find_rack(filename): diff --git a/stl/micro/rack-mount/dualLBracketSupportRail_P1.stl b/stl/micro/rack-mount/dualLBracketSupportRail_P1.stl deleted file mode 100644 index e8288e5..0000000 Binary files a/stl/micro/rack-mount/dualLBracketSupportRail_P1.stl and /dev/null differ diff --git a/stl/micro/rack-mount/dualLBracketSupportRail_P2.stl b/stl/micro/rack-mount/dualLBracketSupportRail_P2.stl deleted file mode 100644 index cf354ba..0000000 Binary files a/stl/micro/rack-mount/dualLBracketSupportRail_P2.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 58ecf62..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 93b6a41..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 b451ed8..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 3242b8e..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 36735a4..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 4c1230c..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 0115f77..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 f197e88..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 0e2eea6..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 b0b2238..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 20be09e..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 d4445d7..0000000 Binary files a/stl/micro/rack/yBar_P.stl and /dev/null differ diff --git a/stl/mini/rack-mount/dualLBracketSupportRail_P1.stl b/stl/mini/rack-mount/dualLBracketSupportRail_P1.stl deleted file mode 100644 index 01c0da4..0000000 Binary files a/stl/mini/rack-mount/dualLBracketSupportRail_P1.stl and /dev/null differ diff --git a/stl/mini/rack-mount/dualLBracketSupportRail_P2.stl b/stl/mini/rack-mount/dualLBracketSupportRail_P2.stl deleted file mode 100644 index b4ad827..0000000 Binary files a/stl/mini/rack-mount/dualLBracketSupportRail_P2.stl and /dev/null differ diff --git a/stl/mini/rack/eval_P.stl b/stl/mini/rack/eval_P.stl deleted file mode 100644 index 6180fdf..0000000 Binary files a/stl/mini/rack/eval_P.stl and /dev/null differ diff --git a/stl/mini/rack/hingeModule_P1.stl b/stl/mini/rack/hingeModule_P1.stl deleted file mode 100644 index d51d436..0000000 Binary files a/stl/mini/rack/hingeModule_P1.stl and /dev/null differ diff --git a/stl/mini/rack/magnetModule_P1.stl b/stl/mini/rack/magnetModule_P1.stl deleted file mode 100644 index a544f90..0000000 Binary files a/stl/mini/rack/magnetModule_P1.stl and /dev/null differ diff --git a/stl/mini/rack/magnetModule_P2.stl b/stl/mini/rack/magnetModule_P2.stl deleted file mode 100644 index 91bd4d2..0000000 Binary files a/stl/mini/rack/magnetModule_P2.stl and /dev/null differ diff --git a/stl/mini/rack/mainRail_P.stl b/stl/mini/rack/mainRail_P.stl deleted file mode 100644 index aae62c9..0000000 Binary files a/stl/mini/rack/mainRail_P.stl and /dev/null differ diff --git a/stl/mini/rack/sideWallLeft_P.stl b/stl/mini/rack/sideWallLeft_P.stl deleted file mode 100644 index d38c915..0000000 Binary files a/stl/mini/rack/sideWallLeft_P.stl and /dev/null differ diff --git a/stl/mini/rack/sideWallRight_P.stl b/stl/mini/rack/sideWallRight_P.stl deleted file mode 100644 index df15aa3..0000000 Binary files a/stl/mini/rack/sideWallRight_P.stl and /dev/null differ diff --git a/stl/mini/rack/stackConnectorBottom_P.stl b/stl/mini/rack/stackConnectorBottom_P.stl deleted file mode 100644 index 1794b5e..0000000 Binary files a/stl/mini/rack/stackConnectorBottom_P.stl and /dev/null differ diff --git a/stl/mini/rack/stackConnectorDual_P.stl b/stl/mini/rack/stackConnectorDual_P.stl deleted file mode 100644 index dd5ecff..0000000 Binary files a/stl/mini/rack/stackConnectorDual_P.stl and /dev/null differ diff --git a/stl/mini/rack/xBar_P.stl b/stl/mini/rack/xBar_P.stl deleted file mode 100644 index 4eb4536..0000000 Binary files a/stl/mini/rack/xBar_P.stl and /dev/null differ diff --git a/stl/mini/rack/xyPlate_P.stl b/stl/mini/rack/xyPlate_P.stl deleted file mode 100644 index 887529e..0000000 Binary files a/stl/mini/rack/xyPlate_P.stl and /dev/null differ diff --git a/stl/mini/rack/yBar_P.stl b/stl/mini/rack/yBar_P.stl deleted file mode 100644 index a2289aa..0000000 Binary files a/stl/mini/rack/yBar_P.stl and /dev/null differ diff --git a/stl/nano/rack-mount/dualLBracketSupportRail_P1.stl b/stl/nano/rack-mount/dualLBracketSupportRail_P1.stl deleted file mode 100644 index 6442b4a..0000000 Binary files a/stl/nano/rack-mount/dualLBracketSupportRail_P1.stl and /dev/null differ diff --git a/stl/nano/rack-mount/dualLBracketSupportRail_P2.stl b/stl/nano/rack-mount/dualLBracketSupportRail_P2.stl deleted file mode 100644 index 59f452c..0000000 Binary files a/stl/nano/rack-mount/dualLBracketSupportRail_P2.stl and /dev/null differ diff --git a/stl/nano/rack/eval_P.stl b/stl/nano/rack/eval_P.stl deleted file mode 100644 index 6dfc629..0000000 Binary files a/stl/nano/rack/eval_P.stl and /dev/null differ diff --git a/stl/nano/rack/hingeModule_P1.stl b/stl/nano/rack/hingeModule_P1.stl deleted file mode 100644 index 841bc1b..0000000 Binary files a/stl/nano/rack/hingeModule_P1.stl and /dev/null differ diff --git a/stl/nano/rack/magnetModule_P1.stl b/stl/nano/rack/magnetModule_P1.stl deleted file mode 100644 index 37fd88a..0000000 Binary files a/stl/nano/rack/magnetModule_P1.stl and /dev/null differ diff --git a/stl/nano/rack/magnetModule_P2.stl b/stl/nano/rack/magnetModule_P2.stl deleted file mode 100644 index 8f4064d..0000000 Binary files a/stl/nano/rack/magnetModule_P2.stl and /dev/null differ diff --git a/stl/nano/rack/mainRail_P.stl b/stl/nano/rack/mainRail_P.stl deleted file mode 100644 index ab212f2..0000000 Binary files a/stl/nano/rack/mainRail_P.stl and /dev/null differ diff --git a/stl/nano/rack/sideWallLeft_P.stl b/stl/nano/rack/sideWallLeft_P.stl deleted file mode 100644 index 44b6c63..0000000 Binary files a/stl/nano/rack/sideWallLeft_P.stl and /dev/null differ diff --git a/stl/nano/rack/sideWallRight_P.stl b/stl/nano/rack/sideWallRight_P.stl deleted file mode 100644 index f6e2dd4..0000000 Binary files a/stl/nano/rack/sideWallRight_P.stl and /dev/null differ diff --git a/stl/nano/rack/stackConnectorBottom_P.stl b/stl/nano/rack/stackConnectorBottom_P.stl deleted file mode 100644 index 438d39e..0000000 Binary files a/stl/nano/rack/stackConnectorBottom_P.stl and /dev/null differ diff --git a/stl/nano/rack/stackConnectorDual_P.stl b/stl/nano/rack/stackConnectorDual_P.stl deleted file mode 100644 index 822b958..0000000 Binary files a/stl/nano/rack/stackConnectorDual_P.stl and /dev/null differ diff --git a/stl/nano/rack/xBar_P.stl b/stl/nano/rack/xBar_P.stl deleted file mode 100644 index 0b89fe6..0000000 Binary files a/stl/nano/rack/xBar_P.stl and /dev/null differ diff --git a/stl/nano/rack/xyPlate_P.stl b/stl/nano/rack/xyPlate_P.stl deleted file mode 100644 index d167128..0000000 Binary files a/stl/nano/rack/xyPlate_P.stl and /dev/null differ diff --git a/stl/nano/rack/yBar_P.stl b/stl/nano/rack/yBar_P.stl deleted file mode 100644 index cbd324c..0000000 Binary files a/stl/nano/rack/yBar_P.stl and /dev/null differ