diff --git a/lib/hd.scad b/lib/hd.scad index b034534..d37a7c2 100644 --- a/lib/hd.scad +++ b/lib/hd.scad @@ -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 */ diff --git a/mod/case_rack.scad b/mod/case_rack.scad index 7a2ef32..174e632 100644 --- a/mod/case_rack.scad +++ b/mod/case_rack.scad @@ -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") { diff --git a/sbc_case_builder.json b/sbc_case_builder.json index 7c66c45..6f7a95a 100644 --- a/sbc_case_builder.json +++ b/sbc_case_builder.json @@ -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" diff --git a/sbc_case_builder.scad b/sbc_case_builder.scad index 062dc1d..d371d50 100644 --- a/sbc_case_builder.scad +++ b/sbc_case_builder.scad @@ -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); } } } diff --git a/sbc_case_builder_accessories.cfg b/sbc_case_builder_accessories.cfg index 18eb762..e91e712 100644 --- a/sbc_case_builder_accessories.cfg +++ b/sbc_case_builder_accessories.cfg @@ -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"],