diff --git a/README.md b/README.md index c1fcbaa..9e1f287 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ Template creation and i/o panel layouts in a dxf format can be easily created an ### Case Designs and Styles The case naming convention for standard cases in the configuration file follow the basic form of “sbc”_”design”_”style” e.g. c4_shell or c4_tray_vu5. -#### Current Case Count 368 +#### Current Case Count 377 ##### Hardkernel @@ -128,7 +128,7 @@ c4_tray_vu7, c4_shell_boombox, c4_panel_boombox, c4_deskboom_lcd3.5, c4_tray_boo **Odorid-XU4Q cases** - 11 : xu4q_shell, xu4q_panel, xu4q_stacked, xu4q_tray, xu4q_tray_sides, xu4q_tray_vu5, xu4q_tray_vu7, xu4q_round, xu4q_hex, xu4q_snap, xu4q_fitted -**Odroid-H2 cases** - 17 : h2_shell, h2_lowboy, h2_lowboy_router, h2_shell_router, h2_shell_routerssd, h2_panel, h2_stacked, h2_tray, h2_tray_sides, h2_tray_vu5, h2_tray_vu7, h2_tray_router, h2_router_station, h2_round, h2_hex, h2_snap, h2_fitted +**Odroid-H2 and H3 cases** - 17 : h2_shell, h2_lowboy, h2_lowboy_router, h2_shell_router, h2_shell_routerssd, h2_panel, h2_stacked, h2_tray, h2_tray_sides, h2_tray_vu5, h2_tray_vu7, h2_tray_router, h2_router_station, h2_round, h2_hex, h2_snap, h2_fitted **Odroid-Show2** cases - 1 : show2_shell @@ -172,6 +172,8 @@ c4_tray_vu7, c4_shell_boombox, c4_panel_boombox, c4_deskboom_lcd3.5, c4_tray_boo **ROCKPi 4c+** - 9 : rockpi4c+_shell, rockpi4c+_panel, rockpi4c+_stacked, rockpi4c+_tray, rockpi4c+_tray_sides, rockpi4c+_round, rockpi4c+_hex, rockpi4c+_snap, rockpi4c+_fitted +**ROCKPi5b** - 9 : rockpi5b_shell, rockpi5b_panel, rockpi5b_stacked, rockpi5b_tray, rockpi5b_tray_sides, rockpi5b_round, rockpi5b_hex, rockpi5b_snap, rockpi5b_fitted + ##### Khadas diff --git a/SBC_Model_Framework b/SBC_Model_Framework index f3759cc..feab076 160000 --- a/SBC_Model_Framework +++ b/SBC_Model_Framework @@ -1 +1 @@ -Subproject commit f3759ccbc2e710563b7aa0dca364157365037c03 +Subproject commit feab0761ffaf2bccacafcc464596c3cb0cb76537 diff --git a/sbc_case_builder.json b/sbc_case_builder.json index 6884563..730d427 100644 --- a/sbc_case_builder.json +++ b/sbc_case_builder.json @@ -15162,6 +15162,519 @@ "vu_rotation": "[15, 0, 0]", "wallthick": "2" }, + "rockpi5b_shell": { + "$fn": "90", + "accessory_highlight": "false", + "accessory_name": "none", + "adjust": "0.01", + "bottom_ext_standoff": "[6.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "bottom_front_left": "0", + "bottom_front_right": "0", + "bottom_rear_left": "0", + "bottom_rear_right": "0", + "bottom_standoff": "[6.75, 7, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "c_fillet": "3.5", + "case_design": "shell", + "case_ext_standoffs": "false", + "case_ffn": "90", + "case_fn": "360", + "case_offset_bz": "0", + "case_offset_tz": "0", + "case_offset_x": "0", + "case_offset_y": "0", + "case_style": "none", + "cooling": "fan", + "exhaust_vents": "vent", + "fillet": "0", + "floorthick": "2", + "gap": "1.5", + "gpio_opening": "none", + "indents": "false", + "lip": "5", + "lower_bottom": "0", + "move_front": "0", + "move_leftside": "0", + "move_rear": "0", + "move_rightside": "0", + "pcb_loc_x": "0", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "sata_punchout": "false", + "sbc_bottom_standoffs": "true", + "sbc_highlight": "false", + "sbc_model": "rockpi5b", + "sbc_off": "false", + "sbc_top_standoffs": "true", + "sidethick": "0", + "sidewall_support": "true", + "tol": "0.25", + "top_ext_standoff": "[6.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "top_front_left": "0", + "top_front_right": "0", + "top_rear_left": "0", + "top_rear_right": "0", + "top_standoff": "[6.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "view": "model", + "vu_rotation": "[15, 0, 0]", + "wallthick": "2" + }, + "rockpi5b_panel": { + "$fn": "90", + "accessory_highlight": "false", + "accessory_name": "none", + "adjust": "0.01", + "bottom_ext_standoff": "[6.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "bottom_front_left": "0", + "bottom_front_right": "0", + "bottom_rear_left": "0", + "bottom_rear_right": "0", + "bottom_standoff": "[6.75, 7, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "c_fillet": "3.5", + "case_design": "panel", + "case_ext_standoffs": "false", + "case_ffn": "90", + "case_fn": "360", + "case_offset_bz": "0", + "case_offset_tz": "0", + "case_offset_x": "0", + "case_offset_y": "0", + "case_style": "none", + "cooling": "fan", + "exhaust_vents": "vent", + "fillet": "0", + "floorthick": "2", + "gap": "1.5", + "gpio_opening": "none", + "indents": "false", + "lip": "5", + "lower_bottom": "0", + "move_front": "0", + "move_leftside": "0", + "move_rear": "0", + "move_rightside": "0", + "pcb_loc_x": "0", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "sata_punchout": "false", + "sbc_bottom_standoffs": "true", + "sbc_highlight": "false", + "sbc_model": "rockpi5b", + "sbc_off": "false", + "sbc_top_standoffs": "false", + "sidethick": "0", + "sidewall_support": "false", + "tol": "0.25", + "top_ext_standoff": "[6.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "top_front_left": "0", + "top_front_right": "0", + "top_rear_left": "0", + "top_rear_right": "0", + "top_standoff": "[6.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "view": "model", + "vu_rotation": "[15, 0, 0]", + "wallthick": "2" + }, + "rockpi5b_stacked": { + "$fn": "90", + "accessory_highlight": "false", + "accessory_name": "none", + "adjust": "0.01", + "bottom_ext_standoff": "[6.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "bottom_front_left": "0", + "bottom_front_right": "0", + "bottom_rear_left": "0", + "bottom_rear_right": "0", + "bottom_standoff": "[6.75, 7, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "c_fillet": "3.5", + "case_design": "stacked", + "case_ext_standoffs": "false", + "case_ffn": "90", + "case_fn": "360", + "case_offset_bz": "0", + "case_offset_tz": "0", + "case_offset_x": "0", + "case_offset_y": "0", + "case_style": "none", + "cooling": "fan", + "exhaust_vents": "vent", + "fillet": "0", + "floorthick": "2", + "gap": "1.5", + "gpio_opening": "none", + "indents": "false", + "lip": "5", + "lower_bottom": "0", + "move_front": "0", + "move_leftside": "0", + "move_rear": "0", + "move_rightside": "0", + "pcb_loc_x": "0", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "sata_punchout": "false", + "sbc_bottom_standoffs": "true", + "sbc_highlight": "false", + "sbc_model": "rockpi5b", + "sbc_off": "false", + "sbc_top_standoffs": "true", + "sidethick": "0", + "sidewall_support": "false", + "tol": "0.25", + "top_ext_standoff": "[6.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "top_front_left": "0", + "top_front_right": "0", + "top_rear_left": "0", + "top_rear_right": "0", + "top_standoff": "[6.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "view": "model", + "vu_rotation": "[15, 0, 0]", + "wallthick": "2" + }, + "rockpi5b_tray": { + "$fn": "90", + "accessory_highlight": "false", + "accessory_name": "none", + "adjust": "0.01", + "bottom_ext_standoff": "[6.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "bottom_front_left": "0", + "bottom_front_right": "0", + "bottom_rear_left": "0", + "bottom_rear_right": "0", + "bottom_standoff": "[6.75, 7, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "c_fillet": "3.5", + "case_design": "tray", + "case_ext_standoffs": "false", + "case_ffn": "90", + "case_fn": "360", + "case_offset_bz": "0", + "case_offset_tz": "0", + "case_offset_x": "0", + "case_offset_y": "0", + "case_style": "none", + "cooling": "fan", + "exhaust_vents": "vent", + "fillet": "2", + "floorthick": "2", + "gap": "1.5", + "gpio_opening": "none", + "indents": "false", + "lip": "5", + "lower_bottom": "0", + "move_front": "0", + "move_leftside": "0", + "move_rear": "0", + "move_rightside": "0", + "pcb_loc_x": "0", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "sata_punchout": "false", + "sbc_bottom_standoffs": "true", + "sbc_highlight": "false", + "sbc_model": "rockpi5b", + "sbc_off": "false", + "sbc_top_standoffs": "false", + "sidethick": "0", + "sidewall_support": "false", + "tol": "0.25", + "top_ext_standoff": "[6.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "top_front_left": "0", + "top_front_right": "0", + "top_rear_left": "0", + "top_rear_right": "0", + "top_standoff": "[6.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "view": "model", + "vu_rotation": "[15, 0, 0]", + "wallthick": "2" + }, + "rockpi5b_tray_sides": { + "$fn": "90", + "accessory_highlight": "false", + "accessory_name": "none", + "adjust": "0.01", + "bottom_ext_standoff": "[6.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "bottom_front_left": "0", + "bottom_front_right": "0", + "bottom_rear_left": "0", + "bottom_rear_right": "0", + "bottom_standoff": "[6.75, 7, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "c_fillet": "3.5", + "case_design": "tray", + "case_ext_standoffs": "false", + "case_ffn": "90", + "case_fn": "360", + "case_offset_bz": "0", + "case_offset_tz": "0", + "case_offset_x": "0", + "case_offset_y": "0", + "case_style": "sides", + "cooling": "fan", + "exhaust_vents": "vent", + "fillet": "2", + "floorthick": "2", + "gap": "1.5", + "gpio_opening": "none", + "indents": "false", + "lip": "5", + "lower_bottom": "0", + "move_front": "0", + "move_leftside": "0", + "move_rear": "0", + "move_rightside": "0", + "pcb_loc_x": "0", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "sata_punchout": "false", + "sbc_bottom_standoffs": "true", + "sbc_highlight": "false", + "sbc_model": "rockpi5b", + "sbc_off": "false", + "sbc_top_standoffs": "false", + "sidethick": "2", + "sidewall_support": "false", + "tol": "0.25", + "top_ext_standoff": "[6.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "top_front_left": "0", + "top_front_right": "0", + "top_rear_left": "0", + "top_rear_right": "0", + "top_standoff": "[6.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "view": "model", + "vu_rotation": "[15, 0, 0]", + "wallthick": "2" + }, + "rockpi5b_round": { + "$fn": "90", + "accessory_highlight": "false", + "accessory_name": "none", + "adjust": "0.01", + "bottom_ext_standoff": "[6.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "bottom_front_left": "0", + "bottom_front_right": "0", + "bottom_rear_left": "0", + "bottom_rear_right": "0", + "bottom_standoff": "[6.75, 7, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "c_fillet": "0", + "case_design": "round", + "case_ext_standoffs": "false", + "case_ffn": "90", + "case_fn": "360", + "case_offset_bz": "0", + "case_offset_tz": "0", + "case_offset_x": "0", + "case_offset_y": "0", + "case_style": "none", + "cooling": "fan", + "exhaust_vents": "vent", + "fillet": "0", + "floorthick": "2", + "gap": "1.5", + "gpio_opening": "none", + "indents": "false", + "lip": "5", + "lower_bottom": "0", + "move_front": "0", + "move_leftside": "0", + "move_rear": "0", + "move_rightside": "0", + "pcb_loc_x": "0", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "sata_punchout": "false", + "sbc_bottom_standoffs": "true", + "sbc_highlight": "false", + "sbc_model": "rockpi5b", + "sbc_off": "false", + "sbc_top_standoffs": "false", + "sidethick": "1", + "sidewall_support": "false", + "tol": "0.25", + "top_ext_standoff": "[6.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "top_front_left": "0", + "top_front_right": "0", + "top_rear_left": "0", + "top_rear_right": "0", + "top_standoff": "[6.75, 20, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "view": "model", + "vu_rotation": "[15, 0, 0]", + "wallthick": "3" + }, + "rockpi5b_hex": { + "$fn": "90", + "accessory_highlight": "false", + "accessory_name": "none", + "adjust": "0.01", + "bottom_ext_standoff": "[6.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "bottom_front_left": "0", + "bottom_front_right": "0", + "bottom_rear_left": "0", + "bottom_rear_right": "0", + "bottom_standoff": "[6.75, 7, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "c_fillet": "0", + "case_design": "hex", + "case_ext_standoffs": "false", + "case_ffn": "90", + "case_fn": "360", + "case_offset_bz": "0", + "case_offset_tz": "0", + "case_offset_x": "0", + "case_offset_y": "0", + "case_style": "none", + "cooling": "fan", + "exhaust_vents": "vent", + "fillet": "0", + "floorthick": "2", + "gap": "1.5", + "gpio_opening": "none", + "indents": "false", + "lip": "5", + "lower_bottom": "0", + "move_front": "0", + "move_leftside": "0", + "move_rear": "0", + "move_rightside": "0", + "pcb_loc_x": "0", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "sata_punchout": "false", + "sbc_bottom_standoffs": "true", + "sbc_highlight": "false", + "sbc_model": "rockpi5b", + "sbc_off": "false", + "sbc_top_standoffs": "false", + "sidethick": "1", + "sidewall_support": "false", + "tol": "0.25", + "top_ext_standoff": "[6.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "top_front_left": "0", + "top_front_right": "0", + "top_rear_left": "0", + "top_rear_right": "0", + "top_standoff": "[6.75, 20, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "view": "model", + "vu_rotation": "[15, 0, 0]", + "wallthick": "3" + }, + "rockpi5b_snap": { + "$fn": "90", + "accessory_highlight": "false", + "accessory_name": "none", + "adjust": "0.01", + "bottom_ext_standoff": "[6.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "bottom_front_left": "0", + "bottom_front_right": "0", + "bottom_rear_left": "0", + "bottom_rear_right": "0", + "bottom_standoff": "[6.75, 7, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "c_fillet": "3.5", + "case_design": "snap", + "case_ext_standoffs": "false", + "case_ffn": "90", + "case_fn": "360", + "case_offset_bz": "0", + "case_offset_tz": "0", + "case_offset_x": "0", + "case_offset_y": "0", + "case_style": "none", + "cooling": "fan", + "exhaust_vents": "vent", + "fillet": "0", + "floorthick": "2", + "gap": "1", + "gpio_opening": "none", + "indents": "true", + "lip": "5", + "lower_bottom": "0", + "move_front": "0", + "move_leftside": "0", + "move_rear": "0", + "move_rightside": "0", + "pcb_loc_x": "0", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "sata_punchout": "false", + "sbc_bottom_standoffs": "true", + "sbc_highlight": "false", + "sbc_model": "rockpi5b", + "sbc_off": "false", + "sbc_top_standoffs": "false", + "sidethick": "1", + "sidewall_support": "true", + "tol": "0.25", + "top_ext_standoff": "[6.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "top_front_left": "0", + "top_front_right": "0", + "top_rear_left": "0", + "top_rear_right": "0", + "top_standoff": "[6.75, 20, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "view": "model", + "vu_rotation": "[15, 0, 0]", + "wallthick": "2" + }, + "rockpi5b_fitted": { + "$fn": "90", + "accessory_highlight": "false", + "accessory_name": "none", + "adjust": "0.01", + "bottom_ext_standoff": "[6.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "bottom_front_left": "0", + "bottom_front_right": "0", + "bottom_rear_left": "0", + "bottom_rear_right": "0", + "bottom_standoff": "[6.75, 7, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "c_fillet": "3.5", + "case_design": "fitted", + "case_ext_standoffs": "false", + "case_ffn": "90", + "case_fn": "360", + "case_offset_bz": "0", + "case_offset_tz": "0", + "case_offset_x": "0", + "case_offset_y": "0", + "case_style": "none", + "cooling": "fan", + "exhaust_vents": "vent", + "fillet": "0", + "floorthick": "2", + "gap": "1", + "gpio_opening": "none", + "indents": "true", + "lip": "5", + "lower_bottom": "0", + "move_front": "0", + "move_leftside": "0", + "move_rear": "0", + "move_rightside": "0", + "pcb_loc_x": "0", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "sata_punchout": "false", + "sbc_bottom_standoffs": "true", + "sbc_highlight": "false", + "sbc_model": "rockpi5b", + "sbc_off": "false", + "sbc_top_standoffs": "false", + "sidethick": "1", + "sidewall_support": "true", + "tol": "0.25", + "top_ext_standoff": "[6.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "top_front_left": "0", + "top_front_right": "0", + "top_rear_left": "0", + "top_rear_right": "0", + "top_standoff": "[6.75, 20, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "view": "model", + "vu_rotation": "[15, 0, 0]", + "wallthick": "2" + }, "vim1_shell": { "$fn": "90", "accessory_highlight": "false", diff --git a/sbc_case_builder.scad b/sbc_case_builder.scad index e5dd279..8366ee0 100644 --- a/sbc_case_builder.scad +++ b/sbc_case_builder.scad @@ -78,7 +78,7 @@ case_design = "shell"; // [shell,panel,stacked,tray,round,hex,snap,fitted] // base case style case_style = "none"; // ["none","vu5","vu7","sides"] // single board computer model -sbc_model = "c1+"; // ["c1+", "c2", "c4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2+_noheatsink", "m1", "m1_noheatsink", "h2", "hc4", "show2", "rpizero", "rpizero2w", "rpi1a+", "rpi1b+", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "a64", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "atomicpi", "jetsonnano", "rockpi4b+", "rockpi4c", "rockpi4c+", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-r2", "opizero", "opizero2", "opir1plus_lts", "test"] +sbc_model = "c1+"; // ["c1+", "c2", "c4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2+_noheatsink", "m1", "m1_noheatsink", "h2", "hc4", "show2", "rpizero", "rpizero2w", "rpi1a+", "rpi1b+", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "a64", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "atomicpi", "jetsonnano", "rockpi4b+", "rockpi4c", "rockpi4c+", "rockpi5b", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-r2", "opizero", "opizero2", "opir1plus_lts", "test"] // sbc location x axis pcb_loc_x = 0; //[0:.5:200] // sbc location y axis diff --git a/sbc_case_builder_library.scad b/sbc_case_builder_library.scad index 2c6da81..234c6c0 100644 --- a/sbc_case_builder_library.scad +++ b/sbc_case_builder_library.scad @@ -44,7 +44,7 @@ printer friendly punchout(),added remaining mask() entries, standardized mask() 20221005 version 2.0.0 increased mask projection for ir_1, added mask for usb2 and usb3 single_horizontal_a, hdmi_micro, video-hdmi_mini,microsdcard,momentary_7x3x3_90,rj45_single_short, added subtraction microusb and sphere - + 2022xxxx version 2.0.x added hdmi_a_vertical mask see https://github.com/hominoids/SBC_Case_Builder @@ -2562,6 +2562,19 @@ module mask(loc_x,loc_y,loc_z,rotation,side,class,type,wallthick,gap,floorthick, if(type == "hdmi_a" && side == "bottom" && rotation == 270) { place(loc_x-1,loc_y-1,loc_z-pcb_z,15,11.5,rotation,side) hdmi_open("hdmi_a"); } + // hdmi vertical opening + if(type == "hdmi_a_vertical" && side == "top" && rotation == 0) { + place(loc_x-.5,loc_y,loc_z,15,11.5,rotation,side) translate([-.25,0,17.4]) rotate([0,90,0]) hdmi_open("hdmi_a"); + } + if(type == "hdmi_a_vertical" && side == "top" && rotation == 90) { + place(loc_x-1,loc_y,loc_z,15,11.5,rotation,side) translate([-.25,0,17.4]) rotate([0,90,0]) hdmi_open("hdmi_a"); + } + if(type == "hdmi_a_vertical" && side == "top" && rotation == 180) { + place(loc_x,loc_y+1,loc_z,15,11.5,rotation,side) translate([-.25,0,17.4]) rotate([0,90,0]) hdmi_open("hdmi_a"); + } + if(type == "hdmi_a_vertical" && side == "top" && rotation == 270) { + place(loc_x+1,loc_y-.5,loc_z,15,11.5,rotation,side) translate([-.25,0,17.4]) rotate([0,90,0]) hdmi_open("hdmi_a"); + } // hdmi micro opening if(class == "video" && type == "hdmi_micro" && rotation == 0 && side == "top") { place(loc_x,loc_y,loc_z,7.25,6.5,rotation,side) hdmi_open("hdmi_micro"); @@ -2952,6 +2965,23 @@ module mask(loc_x,loc_y,loc_z,rotation,side,class,type,wallthick,gap,floorthick, place(loc_x+2,loc_y+1.5,loc_z-3.25,6,8,rotation,side) rotate([90,0,0]) slot(3.75,6,8); } + // single vertical usbc opening + if(class == "usbc" && type == "single_vertical" && rotation == 0 && side == "top") { + place(loc_x+1.5,loc_y+2,loc_z+1.75,6,8,rotation,side) + translate([.25,0,5.5]) rotate([90,90,0]) slot(3.75,5.5,8); + } + if(class == "usbc" && type == "single_vertical" && rotation == 90 && side == "top") { + place(loc_x+2,loc_y+1.5,loc_z+1.75,6,8,rotation,side) + translate([.25,0,5.5]) rotate([90,90,0]) slot(3.75,5.5,8); + } + if(class == "usbc" && type == "single_vertical" && rotation == 180 && side == "top") { + place(loc_x+1.5,loc_y-3-adjust,loc_z+2,6,8,rotation,side) + translate([.25,0,5.5]) rotate([90,90,0]) slot(3.75,5.5,8); + } + if(class == "usbc" && type == "single_vertical" && rotation == 270 && side == "top") { + place(loc_x-3-adjust,loc_y+1.5,loc_z+1.75,6,8,rotation,side) + translate([.25,0,5.5]) rotate([90,90,0]) slot(3.75,5.5,8); + } // ir opening if(type == "ir_1" && rotation == 0) { place(loc_x,loc_y,loc_z,6,6,rotation,side)