diff --git a/lib/grommet.scad b/lib/grommet.scad index ee7c7d8..b9e2747 100644 --- a/lib/grommet.scad +++ b/lib/grommet.scad @@ -78,7 +78,7 @@ module grommet(face = "bottom", style = "sleeve", od, id, wall, assembly, mask) } translate([0,0,-adj]) cylinder(d=id, h=height+(2*adj)); translate([-lip_od/2,-cut/2,-adj]) cube([lip_od+(2*adj),cut,height+(2*adj)]); - translate([0,0,2.5+wall]) grommet_clip(style,od,id,wall); + translate([0,0,2.75+wall]) grommet_clip(style,od,id,wall); } if(assembly == true) { translate([0,0,2.5+wall]) grommet_clip(style,od,id,wall); @@ -99,11 +99,11 @@ module grommet_clip(style,od,id,wall) { difference() { cylinder(d=lip_od, h=2.5); difference() { - translate([0,0,-adj]) cylinder(d=od, h=wall+2*adj); + translate([0,0,-adj]) cylinder(d=od, h=wall+2.5); translate([-lip_od/2,-od/2,-adj]) cube([lip_od+(2*adj),2,height-2]); translate([-lip_od/2,-2+od/2,-adj]) cube([lip_od+(2*adj),2,height-2]); } - translate([-lip_od,-(od-6)/2,-adj]) cube([lip_od+(2*adj),od-6,wall+(2*adj)]); + translate([-lip_od,-(od-6)/2,-adj]) cube([lip_od+(2*adj),od-6,wall+2.5]); } } } diff --git a/lib/hd.scad b/lib/hd.scad index 2fc10b6..b034534 100644 --- a/lib/hd.scad +++ b/lib/hd.scad @@ -19,7 +19,7 @@ hd25_tab(side) hd25_vtab(side) hd35(orientation, mask) - hdd35_25holder(length) + hd35_25holder(length,width) hd35_tab(side) hd35_vtab(side) hd_bottom_holes(hd, orientation, side, thick, holetype) diff --git a/mod/case_rack.scad b/mod/case_rack.scad index 9e1db35..7a2ef32 100644 --- a/mod/case_rack.scad +++ b/mod/case_rack.scad @@ -285,7 +285,69 @@ if(case_design == "rack" && side == "bottom") { translate([300-gap-wallthick,(depth/2)-gap-wallthick,floorthick-adj-.5]) panel_clamp("bottom", "sloped", "m2", 6, 18, 5, [true,10,2,"holes"]); } + // case upper panel clamp holes + translate([150-gap-wallthick,-gap-adj,case_z-13+4]) + panel_clamp("rear", "sloped", "m2", 6, 18, 5, [true,10,2,"holes"]); + translate([150-gap-wallthick,depth-gap-(2*wallthick)+adj, + case_z-13+4]) panel_clamp("front", "sloped", "m2", 6, 18, 5, [true,10,2,"holes"]); + if(rack_width == 19) { + translate([300-gap-wallthick,-gap-adj,case_z-13+4]) + panel_clamp("rear", "sloped", "m2", 6, 18, 5, [true,10,2,"holes"]); + translate([300-gap-wallthick,depth-gap-(2*wallthick)+adj, + case_z-13+4]) panel_clamp("front", "sloped", "m2", 6, 18, 5, [true,10,2,"holes"]); + } + + // case lower block assembly holes + // rear left + translate([150-gap-wallthick-rack_asm_size-adj,-gap-adj+(rack_asm_size/2), + floorthick-adj+(rack_asm_size/2)]) rotate([0,90,0]) + cylinder(d=rack_asm_hole, h=rack_asm_gap+(2*rack_asm_size)+(2*adj)); + // rear left nut + translate([150-gap-wallthick-rack_asm_size-adj,-gap-adj+(rack_asm_size/2), + floorthick-adj+(rack_asm_size/2)]) rotate([0,90,0]) + cylinder(d=4*2/sqrt(3), h=2, $fn=6); + // rear left recess + translate([150-gap-wallthick+rack_asm_size+adj+rack_asm_gap-2,-gap-adj+(rack_asm_size/2), + floorthick-adj+(rack_asm_size/2)]) rotate([0,90,0]) + cylinder(d=4*2/sqrt(3), h=2); + // rear right + translate([300-gap-wallthick-rack_asm_size-adj,-gap-adj+(rack_asm_size/2), + floorthick-adj+(rack_asm_size/2)]) rotate([0,90,0]) + cylinder(d=rack_asm_hole, h=rack_asm_gap+(2*rack_asm_size)+(2*adj)); + // rear right nut + translate([300-gap-wallthick-rack_asm_size-adj,-gap-adj+(rack_asm_size/2), + floorthick-adj+(rack_asm_size/2)]) rotate([0,90,0]) + cylinder(d=4*2/sqrt(3), h=2, $fn=6); + // rear right recess + translate([300-gap-wallthick+rack_asm_size+adj+rack_asm_gap-2,-gap-adj+(rack_asm_size/2), + floorthick-adj+(rack_asm_size/2)]) rotate([0,90,0]) + cylinder(d=4*2/sqrt(3), h=2); + // front left + translate([150-gap-wallthick-rack_asm_size-adj,depth-gap-(2*wallthick)-(rack_asm_size/2)+adj, + floorthick-adj+(rack_asm_size/2)]) rotate([0,90,0]) + cylinder(d=rack_asm_hole, h=rack_asm_gap+(2*rack_asm_size)+(2*adj)); + // front left nut + translate([150-gap-wallthick-rack_asm_size-adj,depth-gap-(2*wallthick)-(rack_asm_size/2)+adj, + floorthick-adj+(rack_asm_size/2)]) rotate([0,90,0]) + cylinder(d=4*2/sqrt(3), h=2, $fn=6); + // front left recess + translate([150-gap-wallthick+rack_asm_size+adj+rack_asm_gap-2,depth-gap-(2*wallthick)-(rack_asm_size/2)+adj, + floorthick-adj+(rack_asm_size/2)]) rotate([0,90,0]) + cylinder(d=4*2/sqrt(3), h=2); + // front right + translate([300-gap-wallthick-rack_asm_size-adj,depth-gap-(2*wallthick)+adj-(rack_asm_size/2), + floorthick-adj+(rack_asm_size/2)]) rotate([0,90,0]) + cylinder(d=rack_asm_hole, h=rack_asm_gap+(2*rack_asm_size)+(2*adj)); + // front right nut + translate([300-gap-wallthick-rack_asm_size-adj,depth-gap-(2*wallthick)-(rack_asm_size/2)+adj, + floorthick-adj+(rack_asm_size/2)]) rotate([0,90,0]) + cylinder(d=4*2/sqrt(3), h=2, $fn=6); + // front right recess + translate([300-gap-wallthick+rack_asm_size+adj+rack_asm_gap-2,depth-gap-(2*wallthick)-(rack_asm_size/2)+adj, + floorthick-adj+(rack_asm_size/2)]) rotate([0,90,0]) + cylinder(d=4*2/sqrt(3), h=2); } + // pcb and multi-pcb standoffs for(r = [0:len(rack_bay_sbc)-1]) { if(rack_bay_sbc[r] != "none" && rack_bay_face[r] != "removable") { diff --git a/sbc_case_builder.json b/sbc_case_builder.json index c0ea487..7c66c45 100644 --- a/sbc_case_builder.json +++ b/sbc_case_builder.json @@ -1488,9 +1488,9 @@ }, "c-series_rack10-1u": { "$fn": "90", - "Rack_Bay1": "c4", + "Rack_Bay1": "c2", "Rack_Bay2": "c4", - "Rack_Bay3": "c4", + "Rack_Bay3": "c5", "Rack_Bay4": "none", "Rack_Bay5": "none", "Rack_Bay6": "none", @@ -1749,18 +1749,18 @@ }, "c-series_rack19-1u": { "$fn": "90", - "Rack_Bay1": "c4", + "Rack_Bay1": "c2", "Rack_Bay2": "c4", - "Rack_Bay3": "c4", - "Rack_Bay4": "c4", - "Rack_Bay5": "c4", - "Rack_Bay6": "c4", + "Rack_Bay3": "c5", + "Rack_Bay4": "hc4", + "Rack_Bay5": "none", + "Rack_Bay6": "none", "access_panel_location": "[10, 15]", "access_panel_orientation": "landscape", "access_panel_rotation": "0", "access_panel_size": "[70, 30]", "accessory_highlight": "false", - "accessory_name": "none", + "accessory_name": "c-series_rack19-1u", "adj": "0.01", "bend_allowance": "1", "bottom_access_panel_enable": "false", @@ -1940,23 +1940,23 @@ "rack_bay3_rotation": "270", "rack_bay3_wall": "true", "rack_bay3_xyz_loc": "[163.5, 0, 0]", - "rack_bay4_face": "vent", + "rack_bay4_face": "fixed", "rack_bay4_rear_conduit": "grommet", "rack_bay4_rear_fan": "true", - "rack_bay4_rotation": "270", - "rack_bay4_wall": "true", - "rack_bay4_xyz_loc": "[238, 0, 0]", + "rack_bay4_rotation": "0", + "rack_bay4_wall": "false", + "rack_bay4_xyz_loc": "[225, 0, 0]", "rack_bay5_face": "vent", - "rack_bay5_rear_conduit": "grommet", + "rack_bay5_rear_conduit": "none", "rack_bay5_rear_fan": "true", - "rack_bay5_rotation": "270", - "rack_bay5_wall": "true", + "rack_bay5_rotation": "0", + "rack_bay5_wall": "false", "rack_bay5_xyz_loc": "[313.5, 0, 0]", "rack_bay6_face": "vent", - "rack_bay6_rear_conduit": "grommet", + "rack_bay6_rear_conduit": "none", "rack_bay6_rear_fan": "true", - "rack_bay6_rotation": "270", - "rack_bay6_xyz_loc": "[386.5, 0, 0]", + "rack_bay6_rotation": "0", + "rack_bay6_xyz_loc": "[353, 0, 0]", "rack_size": "1u", "rack_width": "19", "raise_top": "0", @@ -7440,11 +7440,11 @@ "view": "model", "wallthick": "3" }, - "h4_rack19-1u+": { + "h4-series_rack19-1u+": { "$fn": "90", - "Rack_Bay1": "h4_ultra", + "Rack_Bay1": "h4", "Rack_Bay2": "none", - "Rack_Bay3": "h4_ultra", + "Rack_Bay3": "h4+", "Rack_Bay4": "none", "Rack_Bay5": "h4_ultra", "Rack_Bay6": "none", @@ -12395,6 +12395,267 @@ "uart_opening": "default", "view": "model", "wallthick": "2" + }, + "hetro-mix_rack19-1u": { + "$fn": "90", + "Rack_Bay1": "visionfive2", + "Rack_Bay2": "none", + "Rack_Bay3": "nio12l", + "Rack_Bay4": "none", + "Rack_Bay5": "jetsonnano", + "Rack_Bay6": "none", + "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": "0", + "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": "2", + "gpio_opening": "default", + "hd_bays": "2", + "hd_center": "false", + "hd_reverse": "false", + "hd_space": "10", + "hd_y_position": "25", + "hd_z_position": "40", + "indents": "true", + "individual_part": "bottom", + "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": "none", + "rack_bay1_rear_fan": "true", + "rack_bay1_rotation": "0", + "rack_bay1_wall": "false", + "rack_bay1_xyz_loc": "[18, 0, 0]", + "rack_bay2_face": "fixed", + "rack_bay2_rear_conduit": "grommet", + "rack_bay2_rear_fan": "false", + "rack_bay2_rotation": "0", + "rack_bay2_wall": "true", + "rack_bay2_xyz_loc": "[0, 0, 0]", + "rack_bay3_face": "removable", + "rack_bay3_rear_conduit": "none", + "rack_bay3_rear_fan": "true", + "rack_bay3_rotation": "0", + "rack_bay3_wall": "false", + "rack_bay3_xyz_loc": "[1, 0, 5]", + "rack_bay4_face": "fixed", + "rack_bay4_rear_conduit": "grommet", + "rack_bay4_rear_fan": "false", + "rack_bay4_rotation": "0", + "rack_bay4_wall": "true", + "rack_bay4_xyz_loc": "[0, 0, 0]", + "rack_bay5_face": "removable", + "rack_bay5_rear_conduit": "none", + "rack_bay5_rear_fan": "true", + "rack_bay5_rotation": "0", + "rack_bay5_wall": "false", + "rack_bay5_xyz_loc": "[20, 0, 5]", + "rack_bay6_face": "fixed", + "rack_bay6_rear_conduit": "grommet", + "rack_bay6_rear_fan": "false", + "rack_bay6_rotation": "0", + "rack_bay6_xyz_loc": "[0, 0, 0]", + "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": "c1+", + "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": "default", + "view": "model", + "wallthick": "2" } }, "fileFormatVersion": "1" diff --git a/sbc_case_builder.scad b/sbc_case_builder.scad index 2c19efd..062dc1d 100644 --- a/sbc_case_builder.scad +++ b/sbc_case_builder.scad @@ -206,7 +206,7 @@ hd_y_position = 25; // [0:300] hd_z_position = 40; // [0:300] // case accessory group to load -accessory_name = "none"; // ["none", "hk_uart", "c4_shell_boombox", "c4_desktop_lcd3.5", "c4_deskboom_lcd3.5", "c4_panel_boombox", "c4_panel_lcd3.5", "c4_tray_boombox", "c4_round", "c4_hex", "xu4_shifter_shield", "xu4_keyhole", "hc4_panel_nas", "hc4_shell_drivebox2.5", "hc4_shell_drivebox2.5v", "hc4_shell_drivebox3.5", "hc4_tray_drivebox2.5", "n-series_rack19-1u", "n1_rack10-1u", "m2_shell", "m2_eyespi_eink1.54", "m2_eyespi_lcd2.8", "m1s_shell_nvme", "m1s_shell_ups", "m1s_tray_nvme", "m1_tray_ssd", "m1_fitted_pizzabox2.5", "m1_fitted_pizzabox3.5", "h3_shell", "h3_shell_router", "h3_lowboy", "h3_lowboy_router", "h3_panel_nas", "h3_ultimate", "h3_ultimate2", "h4_panel_nas", "show2_shell", "rpi5_m2hat", "rpi5_bottom_m2hat", "rock5b", "adapter_mini-stx_m1s", "nas", "cs_solarmeter", "n2l_env_sensors", "avr_env_sensors", "adafruit_solar_charger"] +accessory_name = "none"; // ["none", "hk_uart", "c4_shell_boombox", "c4_desktop_lcd3.5", "c4_deskboom_lcd3.5", "c4_panel_boombox", "c4_panel_lcd3.5", "c4_tray_boombox", "c4_round", "c4_hex", "c-series_rack19-1u", "xu4_shifter_shield", "xu4_keyhole", "hc4_panel_nas", "hc4_shell_drivebox2.5", "hc4_shell_drivebox2.5v", "hc4_shell_drivebox3.5", "hc4_tray_drivebox2.5", "n-series_rack19-1u", "n1_rack10-1u", "m2_shell", "m2_eyespi_eink1.54", "m2_eyespi_lcd2.8", "m1s_shell_nvme", "m1s_shell_ups", "m1s_tray_nvme", "m1_tray_ssd", "m1_fitted_pizzabox2.5", "m1_fitted_pizzabox3.5", "h3_shell", "h3_shell_router", "h3_lowboy", "h3_lowboy_router", "h3_panel_nas", "h3_ultimate", "h3_ultimate2", "h4_panel_nas", "show2_shell", "rpi5_m2hat", "rpi5_bottom_m2hat", "rock5b", "adapter_mini-stx_m1s", "nas", "cs_solarmeter", "n2l_env_sensors", "avr_env_sensors", "adafruit_solar_charger"] // sbc information text color text_color = "Green"; // [Green, Black, Dimgrey, White, Yellow, Orange, Red, DarkbBlue] @@ -1456,7 +1456,7 @@ if (view == "part") { } if(case_design == "rack") { // rear fan covers - ucount = rack_width == 10 ? 3 : len(rack_bay_sbc)-1; + ucount = rack_width == 10 ? 3 : len(rack_bay_sbc); for(r = [0:ucount-1]) { fan_offset = -75+(75-rear_fan_size)/2; if(rack_bay_rear_fan[r] == true) { @@ -1465,17 +1465,17 @@ if (view == "part") { } } // rear grommets - for(r = [0:len(rack_bay_sbc)-1]) { + for(r = [0:ucount-1]) { grommet_offset = -75+11; if(rack_bay_rear_conduit[r] == "grommet") { translate([0,0,0]) rotate([270,0,0]) difference() { translate([-gap-wallthick-1+.125+75*(r+1)+grommet_offset,0,0]) - grommet("bottom", "sleeve", 10, r+2, wallthick, false, [false,10,0,"default"]); + grommet("bottom", "sleeve", 10, r+1, wallthick, false, [false,10,0,"default"]); translate([-gap-wallthick-1+.125+75*(r+1)+grommet_offset-10,-.125,-3]) cube([20,10,20]); } translate([0,20,0]) rotate([270,0,0]) difference() { - translate([-gap-wallthick-1+.125+75*(r+1)+grommet_offset,0,0]) - grommet("bottom", "sleeve", 10, r+2, wallthick, false, [false,10,0,"default"]); + translate([-gap-wallthick-1+.125+75*(r+1)+grommet_offset,0,0]) + grommet("bottom", "sleeve", 10, r+1, wallthick, false, [false,10,0,"default"]); translate([-gap-wallthick-1+.125+75*(r+1)+grommet_offset-10,-.125,-3]) cube([20,10,20]); } translate([-gap-wallthick-1+.125+75*(r+1)+grommet_offset,-20,0]) diff --git a/sbc_case_builder_accessories.cfg b/sbc_case_builder_accessories.cfg index 5cc0470..18eb762 100644 --- a/sbc_case_builder_accessories.cfg +++ b/sbc_case_builder_accessories.cfg @@ -178,6 +178,11 @@ accessory_data = [ "suball","round",10.5,-2,14.5,"top",[90,0,0],["case",false,false,false],[11,0,18],[0],[false,10,2,"default"], "suball","rectangle",35,-26,4,"top",[0,0,0],["case",false,false,false],[21,10,15.5],[[1,1,1,1]],[false,10,2,"default"]], + ["c-series_rack19-1u", + "add2","hd_holder",320,9,1.99,"bottom",[0,0,0],["case",false,false,false],[0,0,0],[2.5,"landscape"],[false,10,2,"default"], + "model","hd25",320,9,2,"bottom",[0,0,0],["case",false,false,false],[0,0,0],["landscape",15],[true,25,2,"both"], + "model","hd25",320,9,20.5,"bottom",[0,0,0],["case",false,false,false],[0,0,0],["landscape",15],[true,25,2,"default"]], + // Odroid-XU4 ["xu4_shifter_shield", "model","pillar",3.5,3.5,8,"bottom",[0,0,0],["sbc",true,true,true],[4,3,19],["hex","silver","top"],[false,10,2,"default"], @@ -258,7 +263,7 @@ 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,3,"bottom",[0,0,180],["case",false,false,false],[0,0,0],["portrait",15],[true,10,2,"both"], + "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"]], ["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"],