adjusted removable bay clearances, added example rack case and other cleanup

This commit is contained in:
Edward Kisiel
2025-05-27 21:04:24 -04:00
parent 9a037db8a4
commit 3aa7e5837a
5 changed files with 290 additions and 23 deletions

View File

@@ -366,7 +366,7 @@ module hd35(orientation, mask) {
DESCRIPTION: 3.5" hdd to 2.5" hdd holder
TODO: none
USAGE: hdd35_25holder(length, width=101.6)
USAGE: hd35_25holder(length, width=101.6)
length = length of holder min. 145mm for 3.5" drive
*/

View File

@@ -1007,35 +1007,41 @@ module bay_tray(depth, bay) {
slab([reminsert-wallthick-gap-2,bay_height-floorthick-1,1.5],.5);
}
// case floor panel clamp holes
translate([baysize-2.5,(depth/2)-gap-wallthick+3.75,-adj])
translate([baysize-2.5,(depth/2)-gap-wallthick+3,-adj])
cylinder(d=20, h=7);
translate([-gap-wallthick+.5,(depth/2)-gap-wallthick+3.75,-adj])
translate([-gap-wallthick+.5,(depth/2)-gap-wallthick+3,-adj])
cylinder(d=20, h=7);
if(reminsert/9 > 10) {
translate([reminsert-4,(depth/2)-gap-wallthick+3.75,-adj])
translate([reminsert-4,(depth/2)-gap-wallthick+3,-adj])
cylinder(d=20, h=7);
}
// rear assembly block opening
// rear left
translate([2-2*rack_asm_size,depth-wallthick-1.25,-adj])
translate([-rack_asm_size,depth-wallthick-gap-1.25,-adj])
cube([.125+(2*rack_asm_size),rack_asm_size,rack_asm_size+.25]);
// rear middle
translate([2+baysize-2*rack_asm_size,depth-wallthick-1.25,-adj])
cube([.125+(2*rack_asm_size),rack_asm_size,rack_asm_size+.25]);
translate([1+baysize-2*rack_asm_size,depth-wallthick-gap-1.25,-adj])
cube([.125+(2*rack_asm_size)+2,rack_asm_size,rack_asm_size+.25]);
// rear right
translate([2+2*baysize-2*rack_asm_size+1.25-.25,depth-wallthick-1.25,-adj])
translate([2*baysize-2*rack_asm_size-1.25,depth-wallthick-gap-1.25,-adj])
cube([.125+(2*rack_asm_size),rack_asm_size,rack_asm_size+.25]);
// front assembly block opening
// front left
translate([2-(2*rack_asm_size)-.25,-gap,-adj])
translate([-rack_asm_size,-adj,-adj])
cube([.25+(2*rack_asm_size),rack_asm_size,rack_asm_size+.25]);
// front middle
if((bay == 1 || bay) == 3 && reminsert/9 > 10)
translate([2+baysize-2*rack_asm_size,-gap,-adj])
cube([.125+(2*rack_asm_size),rack_asm_size,rack_asm_size+.25]);
if((bay == 1 || bay == 3) && reminsert/9 > 10)
translate([1+baysize-2*rack_asm_size,-gap,-adj])
cube([.125+(2*rack_asm_size)+2,rack_asm_size,rack_asm_size+1.25]);
// front right
translate([2*baysize-2*rack_asm_size+1.25-.25,-gap,-adj])
cube([.125+(2*rack_asm_size),rack_asm_size,rack_asm_size+.25]);
if(reminsert/9 > 10) {
translate([2*baysize-2*rack_asm_size-1.25,-adj,-adj])
cube([.125+(2*rack_asm_size),rack_asm_size,rack_asm_size+.25]);
}
else {
translate([baysize-2*rack_asm_size,-gap,-adj])
cube([.125+(2*rack_asm_size),rack_asm_size,rack_asm_size+1.25]);
}
// front vent
if(rack_bay_face[bay] == "removable") {

View File

@@ -12576,7 +12576,7 @@
"rack_bay1_rear_fan": "true",
"rack_bay1_rotation": "0",
"rack_bay1_wall": "false",
"rack_bay1_xyz_loc": "[18, 0, 0]",
"rack_bay1_xyz_loc": "[18, 1, 4]",
"rack_bay2_face": "fixed",
"rack_bay2_rear_conduit": "grommet",
"rack_bay2_rear_fan": "false",
@@ -12588,7 +12588,7 @@
"rack_bay3_rear_fan": "true",
"rack_bay3_rotation": "0",
"rack_bay3_wall": "false",
"rack_bay3_xyz_loc": "[1, 0, 5]",
"rack_bay3_xyz_loc": "[1, 0, 6]",
"rack_bay4_face": "fixed",
"rack_bay4_rear_conduit": "grommet",
"rack_bay4_rear_fan": "false",
@@ -12600,7 +12600,7 @@
"rack_bay5_rear_fan": "true",
"rack_bay5_rotation": "0",
"rack_bay5_wall": "false",
"rack_bay5_xyz_loc": "[20, 0, 5]",
"rack_bay5_xyz_loc": "[20, 0, 6]",
"rack_bay6_face": "fixed",
"rack_bay6_rear_conduit": "grommet",
"rack_bay6_rear_fan": "false",
@@ -12656,6 +12656,267 @@
"uart_opening": "default",
"view": "model",
"wallthick": "2"
},
"hetro-mix2_rack19-1u": {
"$fn": "90",
"Rack_Bay1": "c2",
"Rack_Bay2": "c4",
"Rack_Bay3": "c5",
"Rack_Bay4": "quartz64b",
"Rack_Bay5": "rock64",
"Rack_Bay6": "c5",
"access_panel_location": "[10, 15]",
"access_panel_orientation": "landscape",
"access_panel_rotation": "0",
"access_panel_size": "[70, 30]",
"accessory_highlight": "false",
"accessory_name": "none",
"adj": "0.01",
"bend_allowance": "1",
"bottom_access_panel_enable": "false",
"bottom_clearence": "3.5",
"bottom_cover_pattern": "solid",
"bottom_front_left_adjust": "0",
"bottom_front_left_enable": "true",
"bottom_front_left_support": "front",
"bottom_front_right_adjust": "0",
"bottom_front_right_enable": "true",
"bottom_front_right_support": "front",
"bottom_rear_left_adjust": "0",
"bottom_rear_left_enable": "true",
"bottom_rear_left_support": "rear",
"bottom_rear_right_adjust": "0",
"bottom_rear_right_enable": "true",
"bottom_rear_right_support": "rear",
"bottom_sidewall_support": "false",
"bottom_standoff_diameter": "5.75",
"bottom_standoff_hole_size": "3.4",
"bottom_standoff_insert": "false",
"bottom_standoff_insert_dia": "4.2",
"bottom_standoff_insert_height": "5.1",
"bottom_standoff_pillar": "hex",
"bottom_standoff_reverse": "false",
"bottom_standoff_size": "m3",
"bottom_standoff_support_height": "4",
"bottom_standoff_support_size": "10",
"bottom_standoff_type": "countersunk",
"case_design": "rack",
"case_offset_bz": "0",
"case_offset_tz": "0",
"case_offset_x": "0",
"case_offset_y": "10",
"cooling": "default",
"corner_fillet": "3",
"edge_fillet": "0",
"ext_bottom_front_left_adjust": "0",
"ext_bottom_front_left_enable": "true",
"ext_bottom_front_left_support": "front",
"ext_bottom_front_right_adjust": "0",
"ext_bottom_front_right_enable": "true",
"ext_bottom_front_right_support": "front",
"ext_bottom_rear_left_adjust": "0",
"ext_bottom_rear_left_enable": "true",
"ext_bottom_rear_left_support": "rear",
"ext_bottom_rear_right_adjust": "0",
"ext_bottom_rear_right_enable": "true",
"ext_bottom_rear_right_support": "rear",
"ext_bottom_sidewall_support": "true",
"ext_bottom_standoff_diameter": "5.75",
"ext_bottom_standoff_hole_size": "3.4",
"ext_bottom_standoff_insert": "false",
"ext_bottom_standoff_insert_dia": "4.2",
"ext_bottom_standoff_insert_height": "5.1",
"ext_bottom_standoff_pillar": "hex",
"ext_bottom_standoff_reverse": "false",
"ext_bottom_standoff_size": "m3",
"ext_bottom_standoff_support_height": "4",
"ext_bottom_standoff_support_size": "10",
"ext_bottom_standoff_type": "countersunk",
"ext_bottom_standoffs": "false",
"ext_top_front_left_adjust": "0",
"ext_top_front_left_enable": "true",
"ext_top_front_left_support": "front",
"ext_top_front_right_adjust": "0",
"ext_top_front_right_enable": "true",
"ext_top_front_right_support": "front",
"ext_top_rear_left_adjust": "0",
"ext_top_rear_left_enable": "true",
"ext_top_rear_left_support": "rear",
"ext_top_rear_right_adjust": "0",
"ext_top_rear_right_enable": "true",
"ext_top_rear_right_support": "rear",
"ext_top_sidewall_support": "true",
"ext_top_standoff_diameter": "5.75",
"ext_top_standoff_hole_size": "2.75",
"ext_top_standoff_insert": "false",
"ext_top_standoff_insert_dia": "4.2",
"ext_top_standoff_insert_height": "5.1",
"ext_top_standoff_pillar": "hex",
"ext_top_standoff_reverse": "true",
"ext_top_standoff_size": "m3",
"ext_top_standoff_support_height": "4",
"ext_top_standoff_support_size": "10",
"ext_top_standoff_type": "blind",
"ext_top_standoffs": "false",
"fan_size": "0",
"flat_blank_section": "false",
"floorthick": "2",
"front_cover_pattern": "solid",
"gap": "1",
"gpio_opening": "none",
"hd_bays": "2",
"hd_center": "false",
"hd_reverse": "false",
"hd_space": "10",
"hd_y_position": "25",
"hd_z_position": "40",
"indents": "false",
"individual_part": "accessories",
"lower_bottom": "0",
"material_thickness": "0.5",
"move_front": "0",
"move_leftside": "0",
"move_rear": "0",
"move_rightside": "0",
"multipcb_bottom_front_left_adjust": "0",
"multipcb_bottom_front_left_enable": "true",
"multipcb_bottom_front_left_support": "front",
"multipcb_bottom_front_right_adjust": "0",
"multipcb_bottom_front_right_enable": "true",
"multipcb_bottom_front_right_support": "front",
"multipcb_bottom_rear_left_adjust": "0",
"multipcb_bottom_rear_left_enable": "true",
"multipcb_bottom_rear_left_support": "rear",
"multipcb_bottom_rear_right_adjust": "0",
"multipcb_bottom_rear_right_enable": "true",
"multipcb_bottom_rear_right_support": "rear",
"multipcb_bottom_sidewall_support": "false",
"multipcb_bottom_standoff_diameter": "5.75",
"multipcb_bottom_standoff_hole_size": "3.4",
"multipcb_bottom_standoff_insert": "false",
"multipcb_bottom_standoff_insert_dia": "4.2",
"multipcb_bottom_standoff_insert_height": "5.1",
"multipcb_bottom_standoff_pillar": "hex",
"multipcb_bottom_standoff_reverse": "false",
"multipcb_bottom_standoff_size": "m2.5",
"multipcb_bottom_standoff_support_height": "4",
"multipcb_bottom_standoff_support_size": "7",
"multipcb_bottom_standoff_type": "countersunk",
"multipcb_bottom_standoffs": "false",
"multipcb_top_front_left_adjust": "0",
"multipcb_top_front_left_enable": "true",
"multipcb_top_front_left_support": "front",
"multipcb_top_front_right_adjust": "0",
"multipcb_top_front_right_enable": "true",
"multipcb_top_front_right_support": "front",
"multipcb_top_rear_left_adjust": "0",
"multipcb_top_rear_left_enable": "true",
"multipcb_top_rear_left_support": "rear",
"multipcb_top_rear_right_adjust": "0",
"multipcb_top_rear_right_enable": "true",
"multipcb_top_rear_right_support": "rear",
"multipcb_top_sidewall_support": "false",
"multipcb_top_standoff_diameter": "5.75",
"multipcb_top_standoff_hole_size": "2.75",
"multipcb_top_standoff_insert": "false",
"multipcb_top_standoff_insert_dia": "4.2",
"multipcb_top_standoff_insert_height": "5.1",
"multipcb_top_standoff_pillar": "hex",
"multipcb_top_standoff_reverse": "true",
"multipcb_top_standoff_size": "m2.5",
"multipcb_top_standoff_support_height": "4",
"multipcb_top_standoff_support_size": "7",
"multipcb_top_standoff_type": "blind",
"multipcb_top_standoffs": "false",
"nas_sbc_location": "top",
"pcb_loc_x": "0",
"pcb_loc_y": "0",
"pcb_loc_z": "0",
"rack_bay1_face": "removable",
"rack_bay1_rear_conduit": "grommet",
"rack_bay1_rear_fan": "true",
"rack_bay1_rotation": "270",
"rack_bay1_wall": "false",
"rack_bay1_xyz_loc": "[13, 1, 2]",
"rack_bay2_face": "removable",
"rack_bay2_rear_conduit": "grommet",
"rack_bay2_rear_fan": "true",
"rack_bay2_rotation": "270",
"rack_bay2_wall": "false",
"rack_bay2_xyz_loc": "[13, 1, 2]",
"rack_bay3_face": "removable",
"rack_bay3_rear_conduit": "grommet",
"rack_bay3_rear_fan": "true",
"rack_bay3_rotation": "270",
"rack_bay3_wall": "false",
"rack_bay3_xyz_loc": "[13, 1, 2]",
"rack_bay4_face": "removable",
"rack_bay4_rear_conduit": "grommet",
"rack_bay4_rear_fan": "true",
"rack_bay4_rotation": "270",
"rack_bay4_wall": "false",
"rack_bay4_xyz_loc": "[13, 1, 2]",
"rack_bay5_face": "removable",
"rack_bay5_rear_conduit": "grommet",
"rack_bay5_rear_fan": "true",
"rack_bay5_rotation": "270",
"rack_bay5_wall": "false",
"rack_bay5_xyz_loc": "[13, 1, 2]",
"rack_bay6_face": "removable",
"rack_bay6_rear_conduit": "grommet",
"rack_bay6_rear_fan": "true",
"rack_bay6_rotation": "270",
"rack_bay6_xyz_loc": "[10, 1, 2]",
"rack_size": "1u",
"rack_width": "19",
"raise_top": "0",
"rear_cooling": "fan_hex",
"rear_dualfan_spacing": "6",
"rear_fan": "1",
"rear_fan_center": "false",
"rear_fan_position": "0",
"rear_fan_size": "40",
"rear_io_shield": "false",
"sbc_bottom_standoffs": "true",
"sbc_highlight": "false",
"sbc_information": "false",
"sbc_model": "c4",
"sbc_off": "false",
"sbc_top_standoffs": "false",
"section_part": "false",
"sidethick": "3",
"standard_motherboard_thickness": "0",
"text_color": "Green",
"text_font": "Nimbus Mono PS",
"tol": "0.25",
"top_cover_pattern": "hex_8mm",
"top_front_left_adjust": "0",
"top_front_left_enable": "true",
"top_front_left_support": "front",
"top_front_right_adjust": "0",
"top_front_right_enable": "true",
"top_front_right_support": "front",
"top_rear_left_adjust": "0",
"top_rear_left_enable": "true",
"top_rear_left_support": "rear",
"top_rear_right_adjust": "0",
"top_rear_right_enable": "true",
"top_rear_right_support": "rear",
"top_sidewall_support": "false",
"top_standoff_diameter": "5.75",
"top_standoff_hole_size": "2.75",
"top_standoff_insert": "false",
"top_standoff_insert_dia": "4.2",
"top_standoff_insert_height": "5.1",
"top_standoff_pillar": "hex",
"top_standoff_reverse": "true",
"top_standoff_size": "m3",
"top_standoff_support_height": "4",
"top_standoff_support_size": "10",
"top_standoff_type": "blind",
"uart_opening": "none",
"view": "model",
"wallthick": "2"
}
},
"fileFormatVersion": "1"

View File

@@ -1,5 +1,5 @@
/*
SBC Case Builder Copyright 2022, 2023, 2024 Edward A. Kisiel hominoid@cablemi.com
SBC Case Builder Copyright 2022, 2023, 2024, 2025 Edward A. Kisiel hominoid@cablemi.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -644,7 +644,7 @@ if (view == "platter") {
}
for(r = [0:ucount-1]) {
if(rack_bay_face[r] == "removable") {
translate([-gap-wallthick-1+(75*(r))+8,-300,0]) bay_tray(depth, r);
translate([-gap-wallthick-1+(75*(r))+8,-300,0]) bay_tray(depth-2*wallthick-gap-.5-tol,r);
}
}
}
@@ -1484,7 +1484,7 @@ if (view == "part") {
}
for(r = [0:ucount-1]) {
if(rack_bay_face[r] == "removable") {
translate([-gap-wallthick-1+(75*(r))+8,-300,0]) bay_tray(depth, r);
translate([-gap-wallthick-1+(75*(r))+8,-300,0]) bay_tray(depth-2*wallthick-gap-.5-tol,r);
}
}
}

View File

@@ -262,9 +262,9 @@ accessory_data = [
// Odroid-N2
["n-series_rack19-1u",
"add2","hd_holder",229,102,1.99,"bottom",[0,0,180],["case",false,false,false],[0,0,0],[2.5,"portrait"],[false,10,2,"default"],
"model","hd25",229,102,2,"bottom",[0,0,180],["case",false,false,false],[0,0,0],["portrait",15],[true,10,2,"both"],
"model","hd25",229,102,20.5,"bottom",[0,0,180],["case",false,false,false],[0,0,0],["portrait",15],[true,10,2,"default"]],
"add2","hd_holder",234,101,1.99,"bottom",[0,0,180],["case",false,false,false],[0,0,0],[2.5,"portrait"],[false,10,2,"default"],
"model","hd25",234,101,2,"bottom",[0,0,180],["case",false,false,false],[0,0,0],["portrait",15],[true,10,2,"both"],
"model","hd25",234,101,20.5,"bottom",[0,0,180],["case",false,false,false],[0,0,0],["portrait",15],[true,10,2,"default"]],
["n1_rack10-1u",
"add2","hd_holder",1,10,1.99,"bottom",[0,0,0],["case",false,false,false],[0,0,0],[2.5,"landscape"],[false,10,2,"default"],
"model","hd25",1,10,3,"bottom",[0,0,0],["case",false,false,false],[0,0,0],["landscape",15],[true,20,2,"both"],