fixed standoff sidewall support placement, added fan masks for 60mm and code cleanup, finished h3_port_extender, created h3_ultimate2 for remote mount of port_extender.
This commit is contained in:
@@ -9351,7 +9351,7 @@
|
|||||||
"top_standoff": "[5.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]",
|
"top_standoff": "[5.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]",
|
||||||
"view": "model",
|
"view": "model",
|
||||||
"vu_rotation": "[15, 0, 0]",
|
"vu_rotation": "[15, 0, 0]",
|
||||||
"wallthick": "2"
|
"wallthick": "2.5"
|
||||||
},
|
},
|
||||||
"h3_tallboy-ssd": {
|
"h3_tallboy-ssd": {
|
||||||
"$fn": "90",
|
"$fn": "90",
|
||||||
@@ -9408,7 +9408,7 @@
|
|||||||
"top_standoff": "[5.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]",
|
"top_standoff": "[5.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]",
|
||||||
"view": "model",
|
"view": "model",
|
||||||
"vu_rotation": "[15, 0, 0]",
|
"vu_rotation": "[15, 0, 0]",
|
||||||
"wallthick": "2"
|
"wallthick": "2.5"
|
||||||
},
|
},
|
||||||
"h3_ultimate": {
|
"h3_ultimate": {
|
||||||
"$fn": "90",
|
"$fn": "90",
|
||||||
@@ -9421,7 +9421,7 @@
|
|||||||
"bottom_rear_left": "0",
|
"bottom_rear_left": "0",
|
||||||
"bottom_rear_right": "0",
|
"bottom_rear_right": "0",
|
||||||
"bottom_standoff": "[5.75, 7, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]",
|
"bottom_standoff": "[5.75, 7, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]",
|
||||||
"c_fillet": "3.5",
|
"c_fillet": "9",
|
||||||
"case_design": "shell",
|
"case_design": "shell",
|
||||||
"case_ext_standoffs": "false",
|
"case_ext_standoffs": "false",
|
||||||
"case_ffn": "90",
|
"case_ffn": "90",
|
||||||
@@ -9465,7 +9465,64 @@
|
|||||||
"top_standoff": "[5.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]",
|
"top_standoff": "[5.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]",
|
||||||
"view": "model",
|
"view": "model",
|
||||||
"vu_rotation": "[15, 0, 0]",
|
"vu_rotation": "[15, 0, 0]",
|
||||||
"wallthick": "2"
|
"wallthick": "2.5"
|
||||||
|
},
|
||||||
|
"h3_ultimate2": {
|
||||||
|
"$fn": "90",
|
||||||
|
"accessory_highlight": "false",
|
||||||
|
"accessory_name": "h3_ultimate2",
|
||||||
|
"adjust": "0.01",
|
||||||
|
"bottom_ext_standoff": "[6, 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, 7, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]",
|
||||||
|
"c_fillet": "9",
|
||||||
|
"case_design": "shell",
|
||||||
|
"case_ext_standoffs": "false",
|
||||||
|
"case_ffn": "90",
|
||||||
|
"case_fn": "360",
|
||||||
|
"case_offset_bz": "4",
|
||||||
|
"case_offset_tz": "15",
|
||||||
|
"case_offset_x": "30",
|
||||||
|
"case_offset_y": "10",
|
||||||
|
"case_style": "none",
|
||||||
|
"cooling": "none",
|
||||||
|
"exhaust_vents": "none",
|
||||||
|
"fillet": "0",
|
||||||
|
"floorthick": "2",
|
||||||
|
"gap": "1.5",
|
||||||
|
"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": "30",
|
||||||
|
"pcb_loc_y": "0",
|
||||||
|
"pcb_loc_z": "0",
|
||||||
|
"raise_top": "0",
|
||||||
|
"sata_punchout": "false",
|
||||||
|
"sbc_bottom_standoffs": "true",
|
||||||
|
"sbc_highlight": "false",
|
||||||
|
"sbc_model": "h3",
|
||||||
|
"sbc_off": "false",
|
||||||
|
"sbc_top_standoffs": "true",
|
||||||
|
"sidethick": "0",
|
||||||
|
"sidewall_support": "true",
|
||||||
|
"tol": "0.25",
|
||||||
|
"top_ext_standoff": "[6, 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, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]",
|
||||||
|
"view": "model",
|
||||||
|
"vu_rotation": "[15, 0, 0]",
|
||||||
|
"wallthick": "2.5"
|
||||||
},
|
},
|
||||||
"h3_shell_drivebox2.5v": {
|
"h3_shell_drivebox2.5v": {
|
||||||
"$fn": "90",
|
"$fn": "90",
|
||||||
@@ -9522,7 +9579,7 @@
|
|||||||
"top_standoff": "[5.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]",
|
"top_standoff": "[5.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]",
|
||||||
"view": "model",
|
"view": "model",
|
||||||
"vu_rotation": "[15, 0, 0]",
|
"vu_rotation": "[15, 0, 0]",
|
||||||
"wallthick": "2"
|
"wallthick": "2.5"
|
||||||
},
|
},
|
||||||
"h3_shell_router": {
|
"h3_shell_router": {
|
||||||
"$fn": "90",
|
"$fn": "90",
|
||||||
@@ -9636,7 +9693,7 @@
|
|||||||
"top_standoff": "[5.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]",
|
"top_standoff": "[5.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]",
|
||||||
"view": "model",
|
"view": "model",
|
||||||
"vu_rotation": "[15, 0, 0]",
|
"vu_rotation": "[15, 0, 0]",
|
||||||
"wallthick": "2"
|
"wallthick": "2.5"
|
||||||
},
|
},
|
||||||
"h3_lowboy": {
|
"h3_lowboy": {
|
||||||
"$fn": "90",
|
"$fn": "90",
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
20221101 Version 2.0.2 updated sbc model framework, h3/h3+ model and rockpi5b adjustments
|
20221101 Version 2.0.2 updated sbc model framework, h3/h3+ model and rockpi5b adjustments
|
||||||
20221207 Version 2.0.3 added part view to facilitate individual part prints, updated sbc model framework,
|
20221207 Version 2.0.3 added part view to facilitate individual part prints, updated sbc model framework,
|
||||||
added n2l and m1 cases
|
added n2l and m1 cases
|
||||||
|
2023xxxx Version 2.0.x fixed standoff sidewall support misplacement on sbc move,
|
||||||
|
|
||||||
see https://github.com/hominoids/SBC_Case_Builder
|
see https://github.com/hominoids/SBC_Case_Builder
|
||||||
*/
|
*/
|
||||||
@@ -165,7 +166,7 @@ cooling = "fan"; // [none,vents,fan,custom]
|
|||||||
exhaust_vents = "vent"; // [none,vent]
|
exhaust_vents = "vent"; // [none,vent]
|
||||||
// case accessory group to load
|
// case accessory group to load
|
||||||
|
|
||||||
accessory_name = "none"; // ["none", "c1+_shell_boombox", "c1+_panel_boombox", "c1+_panel_lcd3.5", "c1+_desktop_lcd3.5", "c1+_deskboom_lcd3.5", "c1+_tray_boombox", "c1+_round", "c1+_hex", "c2_shell_boombox", "c2_panel_boombox", "c2_panel_lcd3.5", "c2_desktop_lcd3.5", "c2_deskboom_lcd3.5", "c2_tray_boombox", "c2_round", "c2_hex", "c4_shell_boombox", "c4_panel_lcd3.5", "c4_desktop_lcd3.5", "c4_deskboom_lcd3.5", "c4_panel_boombox", "c4_tray_boombox", "c4_round", "c4_hex", "xu4_keyhole", "hc4_tray_drivebox2.5", "hc4_shell_drivebox2.5", "hc4_shell_drivebox2.5v", "hc4_shell_drivebox3.5", "n1_round", "n1_hex", "n2l_tray", "n2l_gpio", "n2+_tray_vu7_fan", "m1_panel", "m1_tray", "m1_tray_ssd", "m1_tray_sides", "m1_tray_vu5", "m1_tray_vu7", "m1_fitted_drivebox2.5", "m1_fitted_drivebox3.5", "m1_fitted_pizzabox", "m1_fitted_drivebox3.5v", "h2_shell", "h2_shell_router", "h2_shell_router-ssd", "h2_lowboy", "h2_lowboy_router", "h2_tray", "h2_tray_sides", "h2_tray_router", "h2_router_station", "h2_round", "h2_hex", "h3_shell", "h3_lowboy", "h3_lowboy_router", "h3_tallboy", "h3_tallboy-ssd", "h3_ultimate", "h3_shell_drivebox2.5v", "jetsonnano_shell", "jetsonnano_panel", "jetsonnano_stacked", "jetsonnano_tray", "jetsonnano_tray_sides", "jetsonnano_round", "jetsonnano_hex", "jetsonnano_snap", "jetsonnano_fitted", "rock64_shell", "rock64_panel", "rock64_stacked", "rock64_tray", "rock64_tray_sides", "rock64_round", "rock64_hex", "rock64_snap", "rock64_fitted", "rockpro64_shell", "rockpro64_panel", "rockpro64_stacked", "rockpro64_tray", "rockpro64_tray_sides", "rockpro64_round", "rockpro64_hex", "rockpro64_snap", "rockpro64_fitted", "quartz64b_stacked_poe_hat", "show2_shell", "rpi1a+_shell", "rpi1a+_panel", "rpi1a+_stacked", "rpi1a+_tray", "rpi1a+_tray_sides", "rpi1a+_round", "rpi1a+_hex", "rpi1a+_snap", "rpi1a+_fitted", "rpi1b+_shell", "rpi1b+_panel", "rpi1b+_stacked", "rpi1b+_tray", "rpi1b+_tray_sides", "rpi1b+_round", "rpi1b+_hex", "rpi1b+_snap", "rpi1b+_fitted", "rpi3a+_shell", "rpi3a+_panel", "rpi3a+_stacked", "rpi3a+_tray", "rpi3a+_tray_sides", "rpi3a+_round", "rpi3a+_hex", "rpi3a+_snap", "rpi3a+_fitted", "rpi3b_shell", "rpi3b_panel", "rpi3b_stacked", "rpi3b_tray", "rpi3b_tray_sides", "rpi3b_round", "rpi3b_hex", "rpi3b_snap", "rpi3b_fitted", "rpi3b+_shell", "rpi3b+_panel", "rpi3b+_stacked", "rpi3b+_tray", "rpi3b+_tray_sides", "rpi3b+_round", "rpi3b+_hex", "rpi3b+_snap", "rpi3b+_fitted", "rpi4b_shell", "rpi4b_shell_geeekpi_poe_hat", "rpi4b_panel", "rpi4b_stacked", "rpi4b_tray", "rpi4b_tray_sides", "rpi4b_round", "rpi4b_hex", "rpi4b_snap", "rpi4b_fitted", "rockpi4b+_shell", "rockpi4b+_panel", "rockpi4b+_stacked", "rockpi4b+_tray", "rockpi4b+_tray_sides", "rockpi4b+_round", "rockpi4b+_hex", "rockpi4b+_snap", "rockpi4b+_fitted", "rockpi4c_shell", "rockpi4c_panel", "rockpi4c_stacked", "rockpi4c_tray", "rockpi4c_tray_sides", "rockpi4c_round", "rockpi4c_hex", "rockpi4c_snap", "rockpi4c_fitted", "rockpi4c+_shell", "rockpi4c+_panel", "rockpi4c+_stacked", "rockpi4c+_tray", "rockpi4c+_tray_sides", "rockpi4c+_round", "rockpi4c+_hex", "rockpi4c+_snap", "rockpi4c+_fitted", "rockpi5b", "vim1_shell", "vim1_panel", "vim1_stacked", "vim1_tray", "vim1_tray_sides", "vim1_round", "vim1_hex", "vim1_snap", "vim1_fitted", "vim2_shell", "vim2_panel", "vim2_stacked", "vim2_tray", "vim2_tray_sides", "vim2_round", "vim2_hex", "vim2_snap", "vim2_fitted", "vim3l_shell", "vim3l_panel", "vim3l_stacked", "vim3l_tray", "vim3l_tray_sides", "vim3l_round", "vim3l_hex", "vim3l_snap", "vim3l_fitted", "vim3_shell", "vim3_panel", "vim3_stacked", "vim3_tray", "vim3_tray_sides", "vim3_round", "vim3_hex", "vim3_snap", "vim3_fitted", "vim4_shell", "vim4_panel", "vim4_stacked", "vim4_tray", "vim4_tray_sides", "vim4_round", "vim4_hex", "vim4_snap", "vim4_fitted", "tinkerboard_shell", "tinkerboard_panel", "tinkerboard_stacked", "tinkerboard_tray", "tinkerboard_tray_sides", "tinkerboard_round", "tinkerboard_hex", "tinkerboard_snap", "tinkerboard_fitted", "tinkerboard-s_shell", "tinkerboard-s_panel", "tinkerboard-s_stacked", "tinkerboard-s_tray", "tinkerboard-s_tray_sides", "tinkerboard-s_round", "tinkerboard-s_hex", "tinkerboard-s_snap", "tinkerboard-s_fitted", "tinkerboard-2_shell", "tinkerboard-2_panel", "tinkerboard-2_stacked", "tinkerboard-2_tray", "tinkerboard-2_tray_sides", "tinkerboard-2_round", "tinkerboard-2_hex", "tinkerboard-2_snap", "tinkerboard-2_fitted", "tinkerboard-r2_shell", "tinkerboard-r2_panel", "tinkerboard-r2_stacked", "tinkerboard-r2_tray", "tinkerboard-r2_tray_sides", "tinkerboard-r2_round", "tinkerboard-r2_hex", "tinkerboard-r2_snap", "tinkerboard-r2_fitted", "hk_uart"]
|
accessory_name = "none"; // ["none", "c1+_shell_boombox", "c1+_panel_boombox", "c1+_panel_lcd3.5", "c1+_desktop_lcd3.5", "c1+_deskboom_lcd3.5", "c1+_tray_boombox", "c1+_round", "c1+_hex", "c2_shell_boombox", "c2_panel_boombox", "c2_panel_lcd3.5", "c2_desktop_lcd3.5", "c2_deskboom_lcd3.5", "c2_tray_boombox", "c2_round", "c2_hex", "c4_shell_boombox", "c4_panel_lcd3.5", "c4_desktop_lcd3.5", "c4_deskboom_lcd3.5", "c4_panel_boombox", "c4_tray_boombox", "c4_round", "c4_hex", "xu4_keyhole", "hc4_tray_drivebox2.5", "hc4_shell_drivebox2.5", "hc4_shell_drivebox2.5v", "hc4_shell_drivebox3.5", "n1_round", "n1_hex", "n2l_tray", "n2l_gpio", "n2+_tray_vu7_fan", "m1_panel", "m1_tray", "m1_tray_ssd", "m1_tray_sides", "m1_tray_vu5", "m1_tray_vu7", "m1_fitted_drivebox2.5", "m1_fitted_drivebox3.5", "m1_fitted_pizzabox", "m1_fitted_drivebox3.5v", "h2_shell", "h2_shell_router", "h2_shell_router-ssd", "h2_lowboy", "h2_lowboy_router", "h2_tray", "h2_tray_sides", "h2_tray_router", "h2_router_station", "h2_round", "h2_hex", "h3_shell", "h3_lowboy", "h3_lowboy_router", "h3_tallboy", "h3_tallboy-ssd", "h3_ultimate", "h3_ultimate2", "h3_shell_drivebox2.5v", "jetsonnano_shell", "jetsonnano_panel", "jetsonnano_stacked", "jetsonnano_tray", "jetsonnano_tray_sides", "jetsonnano_round", "jetsonnano_hex", "jetsonnano_snap", "jetsonnano_fitted", "rock64_shell", "rock64_panel", "rock64_stacked", "rock64_tray", "rock64_tray_sides", "rock64_round", "rock64_hex", "rock64_snap", "rock64_fitted", "rockpro64_shell", "rockpro64_panel", "rockpro64_stacked", "rockpro64_tray", "rockpro64_tray_sides", "rockpro64_round", "rockpro64_hex", "rockpro64_snap", "rockpro64_fitted", "quartz64b_stacked_poe_hat", "show2_shell", "rpi1a+_shell", "rpi1a+_panel", "rpi1a+_stacked", "rpi1a+_tray", "rpi1a+_tray_sides", "rpi1a+_round", "rpi1a+_hex", "rpi1a+_snap", "rpi1a+_fitted", "rpi1b+_shell", "rpi1b+_panel", "rpi1b+_stacked", "rpi1b+_tray", "rpi1b+_tray_sides", "rpi1b+_round", "rpi1b+_hex", "rpi1b+_snap", "rpi1b+_fitted", "rpi3a+_shell", "rpi3a+_panel", "rpi3a+_stacked", "rpi3a+_tray", "rpi3a+_tray_sides", "rpi3a+_round", "rpi3a+_hex", "rpi3a+_snap", "rpi3a+_fitted", "rpi3b_shell", "rpi3b_panel", "rpi3b_stacked", "rpi3b_tray", "rpi3b_tray_sides", "rpi3b_round", "rpi3b_hex", "rpi3b_snap", "rpi3b_fitted", "rpi3b+_shell", "rpi3b+_panel", "rpi3b+_stacked", "rpi3b+_tray", "rpi3b+_tray_sides", "rpi3b+_round", "rpi3b+_hex", "rpi3b+_snap", "rpi3b+_fitted", "rpi4b_shell", "rpi4b_shell_geeekpi_poe_hat", "rpi4b_panel", "rpi4b_stacked", "rpi4b_tray", "rpi4b_tray_sides", "rpi4b_round", "rpi4b_hex", "rpi4b_snap", "rpi4b_fitted", "rockpi4b+_shell", "rockpi4b+_panel", "rockpi4b+_stacked", "rockpi4b+_tray", "rockpi4b+_tray_sides", "rockpi4b+_round", "rockpi4b+_hex", "rockpi4b+_snap", "rockpi4b+_fitted", "rockpi4c_shell", "rockpi4c_panel", "rockpi4c_stacked", "rockpi4c_tray", "rockpi4c_tray_sides", "rockpi4c_round", "rockpi4c_hex", "rockpi4c_snap", "rockpi4c_fitted", "rockpi4c+_shell", "rockpi4c+_panel", "rockpi4c+_stacked", "rockpi4c+_tray", "rockpi4c+_tray_sides", "rockpi4c+_round", "rockpi4c+_hex", "rockpi4c+_snap", "rockpi4c+_fitted", "rockpi5b", "vim1_shell", "vim1_panel", "vim1_stacked", "vim1_tray", "vim1_tray_sides", "vim1_round", "vim1_hex", "vim1_snap", "vim1_fitted", "vim2_shell", "vim2_panel", "vim2_stacked", "vim2_tray", "vim2_tray_sides", "vim2_round", "vim2_hex", "vim2_snap", "vim2_fitted", "vim3l_shell", "vim3l_panel", "vim3l_stacked", "vim3l_tray", "vim3l_tray_sides", "vim3l_round", "vim3l_hex", "vim3l_snap", "vim3l_fitted", "vim3_shell", "vim3_panel", "vim3_stacked", "vim3_tray", "vim3_tray_sides", "vim3_round", "vim3_hex", "vim3_snap", "vim3_fitted", "vim4_shell", "vim4_panel", "vim4_stacked", "vim4_tray", "vim4_tray_sides", "vim4_round", "vim4_hex", "vim4_snap", "vim4_fitted", "tinkerboard_shell", "tinkerboard_panel", "tinkerboard_stacked", "tinkerboard_tray", "tinkerboard_tray_sides", "tinkerboard_round", "tinkerboard_hex", "tinkerboard_snap", "tinkerboard_fitted", "tinkerboard-s_shell", "tinkerboard-s_panel", "tinkerboard-s_stacked", "tinkerboard-s_tray", "tinkerboard-s_tray_sides", "tinkerboard-s_round", "tinkerboard-s_hex", "tinkerboard-s_snap", "tinkerboard-s_fitted", "tinkerboard-2_shell", "tinkerboard-2_panel", "tinkerboard-2_stacked", "tinkerboard-2_tray", "tinkerboard-2_tray_sides", "tinkerboard-2_round", "tinkerboard-2_hex", "tinkerboard-2_snap", "tinkerboard-2_fitted", "tinkerboard-r2_shell", "tinkerboard-r2_panel", "tinkerboard-r2_stacked", "tinkerboard-r2_tray", "tinkerboard-r2_tray_sides", "tinkerboard-r2_round", "tinkerboard-r2_hex", "tinkerboard-r2_snap", "tinkerboard-r2_fitted", "hk_uart"]
|
||||||
|
|
||||||
a = search([accessory_name],accessory_data);
|
a = search([accessory_name],accessory_data);
|
||||||
s = search([sbc_model],sbc_data);
|
s = search([sbc_model],sbc_data);
|
||||||
@@ -1687,7 +1688,7 @@ module case_top(case_design) {
|
|||||||
pcb_hole_size = sbc_data[s[0]][i+2];
|
pcb_hole_size = sbc_data[s[0]][i+2];
|
||||||
if(pcb_hole_x!=0 && pcb_hole_y!=0) {
|
if(pcb_hole_x!=0 && pcb_hole_y!=0) {
|
||||||
if (i == 7) {
|
if (i == 7) {
|
||||||
translate([pcb_hole_x+pcb_loc_x-(top_standoff[0]/2)-gap-adjust-.45,pcb_hole_y-1,
|
translate([pcb_hole_x-(top_standoff[0]/2)-gap-adjust-.45,pcb_hole_y-1,
|
||||||
bottom_height-top_rear_left]) cube([gap+adjust+1,2,top_height+top_rear_left]);
|
bottom_height-top_rear_left]) cube([gap+adjust+1,2,top_height+top_rear_left]);
|
||||||
}
|
}
|
||||||
if (i == 10) {
|
if (i == 10) {
|
||||||
@@ -1695,7 +1696,7 @@ module case_top(case_design) {
|
|||||||
bottom_height-top_front_left]) cube([gap+adjust+1,2,top_height+top_front_left]);
|
bottom_height-top_front_left]) cube([gap+adjust+1,2,top_height+top_front_left]);
|
||||||
}
|
}
|
||||||
if (i == 13) {
|
if (i == 13) {
|
||||||
translate([pcb_hole_x+pcb_loc_x+(top_standoff[0]/2)-adjust-.45,pcb_hole_y-1,
|
translate([pcb_hole_x+(top_standoff[0]/2)-adjust-.45,pcb_hole_y-1,
|
||||||
bottom_height-top_rear_right]) cube([gap+adjust+1,2,top_height+top_rear_right]);
|
bottom_height-top_rear_right]) cube([gap+adjust+1,2,top_height+top_rear_right]);
|
||||||
}
|
}
|
||||||
if (i == 16) {
|
if (i == 16) {
|
||||||
@@ -1764,7 +1765,7 @@ module case_top(case_design) {
|
|||||||
}
|
}
|
||||||
// create openings for additive
|
// create openings for additive
|
||||||
if (class == "add2" && face == "top" && type == "standoff") {
|
if (class == "add2" && face == "top" && type == "standoff") {
|
||||||
parametric_move_sub("round",loc_x,loc_y,-.1,face,rotation,parametric,
|
parametric_move_sub("round",loc_x,loc_y,case_z-floorthick-adjust,face,rotation,parametric,
|
||||||
6.5,size_y,floorthick+1,data_1,data_2,data_3,data_4);
|
6.5,size_y,floorthick+1,data_1,data_2,data_3,data_4);
|
||||||
}
|
}
|
||||||
if ((class == "add1" || class == "add2") && face == "bottom" && type == "uart_holder") {
|
if ((class == "add1" || class == "add2") && face == "bottom" && type == "uart_holder") {
|
||||||
|
|||||||
@@ -380,8 +380,8 @@ accessory_data = [
|
|||||||
|
|
||||||
// Odroid-XU4
|
// Odroid-XU4
|
||||||
["xu4_keyhole",
|
["xu4_keyhole",
|
||||||
"add1","keyhole",50,30,0,"bottom",[0,0,0],["case",false,false,false],0,0,0,0,0,"",[7,3,6,2], // keyhole
|
"add1","keyhole",50,30,0,"bottom",[0,0,0],["case",false,false,false],0,0,0,0,0,"",[7,3.2,6,2], // keyhole
|
||||||
"sub","keyhole",50,30,0,"bottom",[0,0,0],["case",false,false,false],0,0,0,0,0,"",[7,3,6,2]], // keyhole
|
"sub","keyhole",50,30,0,"bottom",[0,0,0],["case",false,false,false],0,0,0,0,0,"",[7,3.2,6,2]], // keyhole
|
||||||
|
|
||||||
|
|
||||||
// Odroid-HC4
|
// Odroid-HC4
|
||||||
@@ -467,7 +467,7 @@ accessory_data = [
|
|||||||
["n2l_gpio",
|
["n2l_gpio",
|
||||||
"sub","vent",22,-1.99,16,"top",[0,0,0],["sbc-case_z",true,true,true],2,9,8,1,10,"vertical",1, // vent opening
|
"sub","vent",22,-1.99,16,"top",[0,0,0],["sbc-case_z",true,true,true],2,9,8,1,10,"vertical",1, // vent opening
|
||||||
"sub","fan",20,8,24.5,"top",[0,0,0],["sbc-case_z",true,true,true],40,0,6,2,0,"",0, // sub fan opening
|
"sub","fan",20,8,24.5,"top",[0,0,0],["sbc-case_z",true,true,true],40,0,6,2,0,"",0, // sub fan opening
|
||||||
"sub","rectangle",9,49,13,"top",[0,0,0],["sbc",true,true,true],54,18,17,0,0,"vertical",[1,1,1,1]], // gpio opening
|
"sub","rectangle",9,49,9.9,"top",[0,0,0],["sbc",true,true,true],54,18,20,0,0,"vertical",[1,1,1,1]], // gpio opening
|
||||||
|
|
||||||
// Odroid-N2+
|
// Odroid-N2+
|
||||||
// internal fan
|
// internal fan
|
||||||
@@ -898,6 +898,23 @@ accessory_data = [
|
|||||||
"sub","hd_vertleft_holes",98,10,-.01,"bottom",[0,0,0],["case",true,true,false],0,0,0,2.5,3,"portrait",0, // sub hd bottom holes
|
"sub","hd_vertleft_holes",98,10,-.01,"bottom",[0,0,0],["case",true,true,false],0,0,0,2.5,3,"portrait",0, // sub hd bottom holes
|
||||||
"model","hd25",98,110,2,"bottom",[90,0,-90],["case",true,true,false],0,0,0,7,0,"",0], // model 2.5 hd
|
"model","hd25",98,110,2,"bottom",[90,0,-90],["case",true,true,false],0,0,0,7,0,"",0], // model 2.5 hd
|
||||||
|
|
||||||
|
["h3_ultimate2",
|
||||||
|
"sub","vent",111.5,30,48,"top",[0,0,90],["case",true,false,false],2,12,4,1,17,"vertical",1, // vent opening
|
||||||
|
"sub","vent",111.5,30,28,"top",[0,0,90],["case",true,false,false],2,12,4,1,17,"vertical",1, // vent opening
|
||||||
|
"sub","vent",111.5,30,4,"bottom",[0,0,90],["case",true,false,false],2,6,4,1,17,"vertical",1, // vent opening
|
||||||
|
"suball","fan",0,25,3,"top",[0,270,0],["case",false,false,false],60,0,6,1,0,"",0, // sub fan opening
|
||||||
|
"model","fan_cover",-4,25,3,"top",[0,270,0],["case",false,false,false],60,0,3,2,0,"",0, // model fan cover
|
||||||
|
"platter","fan_cover",-50,50,0,"top",[0,0,0],["case",false,false,false],60,0,3,2,0,"",0, // model fan cover
|
||||||
|
"add2","standoff",29.5,85,53,"top",[0,0,0],["case",false,false,true],0,0,0,0,0,0,[5.75,12.5,3.2,10,4,0,0,1,0,0,0], // standoff
|
||||||
|
"add2","standoff",57.5,85,53,"top",[0,0,0],["case",false,false,true],0,0,0,0,0,0,[5.75,12.5,3.2,6.5,4,0,0,1,0,0,0], // standoff
|
||||||
|
"model","h3_port_extender",-5,68,40.5,"top",[0,90,0],["case",true,false,true],0,0,0,0,0,"remote",0, // port extender model
|
||||||
|
"sub","h3_port_extender",-5,68,40.5,"top",[0,90,0],["case",true,false,true],0,0,0,0,0,"remote",0, // port extender model
|
||||||
|
"model","hk_pwr_button",13,110,53,"top",[0,0,0],["case",false,false,true],0,0,0,0,0,0,0, // hk pwr button model
|
||||||
|
"sub","hk_pwr_button",13,110,53,"top",[0,0,0],["case",false,false,true],0,0,0,0,0,0,0, // hk pwr button model
|
||||||
|
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],["sbc",true,true,true],100,80,2,0,0,"landscape",0, // access port
|
||||||
|
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],["sbc",true,true,false],100,80,2,0,0,"landscape",0, // access port cover
|
||||||
|
"platter","access_cover",-110,30,0,"bottom",[0,0,0],["case",false,false,false],100,80,2,0,0,"landscape",0], // access port cover
|
||||||
|
|
||||||
["h3_shell_drivebox2.5v",
|
["h3_shell_drivebox2.5v",
|
||||||
"sub","vent",-3.5,30,58,"top",[0,0,90],["case",false,false,false],2,12,4,1,17,"vertical",1, // vent opening
|
"sub","vent",-3.5,30,58,"top",[0,0,90],["case",false,false,false],2,12,4,1,17,"vertical",1, // vent opening
|
||||||
"sub","vent",111.5,30,58,"top",[0,0,90],["case",true,false,false],2,12,4,1,17,"vertical",1, // vent opening
|
"sub","vent",111.5,30,58,"top",[0,0,90],["case",true,false,false],2,12,4,1,17,"vertical",1, // vent opening
|
||||||
|
|||||||
@@ -336,6 +336,12 @@ module sub(type,loc_x,loc_y,loc_z,face,rotation,size_x,size_y,size_z,data_1,data
|
|||||||
if(type == "keyhole") {
|
if(type == "keyhole") {
|
||||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) keyhole(data_4, true);
|
translate([loc_x,loc_y,loc_z]) rotate(rotation) keyhole(data_4, true);
|
||||||
}
|
}
|
||||||
|
if(type == "h3_port_extender") {
|
||||||
|
translate([loc_x,loc_y,loc_z]) rotate(rotation) h3_port_extender(data_3, true);
|
||||||
|
}
|
||||||
|
if(type == "hk_pwr_button") {
|
||||||
|
translate([loc_x,loc_y,loc_z]) rotate(rotation) hk_pwr_button(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -2524,15 +2530,32 @@ module microusb_open() {
|
|||||||
|
|
||||||
/* fan mask to create opening */
|
/* fan mask to create opening */
|
||||||
module fan_mask(size, thick, style) {
|
module fan_mask(size, thick, style) {
|
||||||
|
|
||||||
$fn=90;
|
$fn=90;
|
||||||
|
|
||||||
if(style == 1) {
|
if(style == 1) {
|
||||||
translate ([size/2,size/2,-1]) cylinder(h=thick+2, d=size-2);
|
translate ([size/2,size/2,-1]) cylinder(h=thick+2, d=size-2);
|
||||||
// mount holes
|
if(size == 40) {
|
||||||
translate ([size-4,size-4,-1]) cylinder(h=thick+2, d=3);
|
// mount holes
|
||||||
translate ([size-4,4,-1]) cylinder(h=thick+2, d=3);
|
translate ([size-4,size-4,-1]) cylinder(h=thick+2, d=3);
|
||||||
translate ([4,size-4,-1]) cylinder(h=thick+2, d=3);
|
translate ([size-4,4,-1]) cylinder(h=thick+2, d=3);
|
||||||
translate ([4,4,-1]) cylinder(h=thick+2, d=3);
|
translate ([4,size-4,-1]) cylinder(h=thick+2, d=3);
|
||||||
|
translate ([4,4,-1]) cylinder(h=thick+2, d=3);
|
||||||
|
}
|
||||||
|
if(size == 60) {
|
||||||
|
// mount holes
|
||||||
|
translate ([size-5,size-5,-1]) cylinder(h=thick+2, d=3);
|
||||||
|
translate ([size-5,5,-1]) cylinder(h=thick+2, d=3);
|
||||||
|
translate ([5,size-5,-1]) cylinder(h=thick+2, d=3);
|
||||||
|
translate ([5,5,-1]) cylinder(h=thick+2, d=3);
|
||||||
|
}
|
||||||
|
if(size >= 80) {
|
||||||
|
// mount holes
|
||||||
|
translate ([size-3.75,size-3.75,-1]) cylinder(h=thick+2, d=3);
|
||||||
|
translate ([size-3.75,3.75,-1]) cylinder(h=thick+2, d=3);
|
||||||
|
translate ([3.75,size-3.75,-1]) cylinder(h=thick+2, d=3);
|
||||||
|
translate ([3.75,3.75,-1]) cylinder(h=thick+2, d=3);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(style == 2 && size == 40) {
|
if(style == 2 && size == 40) {
|
||||||
difference() {
|
difference() {
|
||||||
@@ -2567,6 +2590,47 @@ module fan_mask(size, thick, style) {
|
|||||||
translate([4.5,size-6,-2]) rotate([0,0,-45]) cube([size,2,thick+4]);
|
translate([4.5,size-6,-2]) rotate([0,0,-45]) cube([size,2,thick+4]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(style == 2 && size == 60) {
|
||||||
|
difference() {
|
||||||
|
union () {
|
||||||
|
difference() {
|
||||||
|
translate ([size/2,size/2,-1]) cylinder(h=thick+2, d=size-2);
|
||||||
|
translate ([size/2,size/2,-2]) cylinder(h=thick+4, d=size-6);
|
||||||
|
}
|
||||||
|
difference() {
|
||||||
|
translate ([size/2,size/2,-1]) cylinder(h=thick+2, d=size-10);
|
||||||
|
translate ([size/2,size/2,-2]) cylinder(h=thick+4, d=size-14);
|
||||||
|
}
|
||||||
|
difference() {
|
||||||
|
translate ([size/2,size/2,-1]) cylinder(h=thick+2, d=size-18);
|
||||||
|
translate ([size/2,size/2,-2]) cylinder(h=thick+4, d=size-22);
|
||||||
|
}
|
||||||
|
difference() {
|
||||||
|
translate ([size/2,size/2,-1]) cylinder(h=thick+2, d=size-26);
|
||||||
|
translate ([size/2,size/2,-2]) cylinder(h=thick+4, d=size-30);
|
||||||
|
}
|
||||||
|
difference() {
|
||||||
|
translate ([size/2,size/2,-1]) cylinder(h=thick+2, d=size-34);
|
||||||
|
translate ([size/2,size/2,-2]) cylinder(h=thick+4, d=size-38);
|
||||||
|
}
|
||||||
|
difference() {
|
||||||
|
translate ([size/2,size/2,-1]) cylinder(h=thick+2, d=size-42);
|
||||||
|
translate ([size/2,size/2,-2]) cylinder(h=thick+4, d=size-46);
|
||||||
|
}
|
||||||
|
difference() {
|
||||||
|
translate ([size/2,size/2,-1]) cylinder(h=thick+2, d=size-50);
|
||||||
|
translate ([size/2,size/2,-2]) cylinder(h=thick+4, d=size-54);
|
||||||
|
}
|
||||||
|
// mount holes
|
||||||
|
translate ([size-5,size-5,-1]) cylinder(h=thick+2, d=3);
|
||||||
|
translate ([size-5,5,-1]) cylinder(h=thick+2, d=3);
|
||||||
|
translate ([5,size-5,-1]) cylinder(h=thick+2, d=3);
|
||||||
|
translate ([5,5,-1]) cylinder(h=thick+2, d=3);
|
||||||
|
}
|
||||||
|
translate([6.5,5,-2]) rotate([0,0,45]) cube([size,2,thick+4]);
|
||||||
|
translate([4.5,size-6,-2]) rotate([0,0,-45]) cube([size,2,thick+4]);
|
||||||
|
}
|
||||||
|
}
|
||||||
if(style == 2 && size >= 80) {
|
if(style == 2 && size >= 80) {
|
||||||
difference() {
|
difference() {
|
||||||
union () {
|
union () {
|
||||||
@@ -2598,11 +2662,17 @@ module fan_mask(size, thick, style) {
|
|||||||
translate ([size/2,size/2,-1]) cylinder(h=thick+2, d=size-74);
|
translate ([size/2,size/2,-1]) cylinder(h=thick+2, d=size-74);
|
||||||
translate ([size/2,size/2,-2]) cylinder(h=thick+4, d=size-79);
|
translate ([size/2,size/2,-2]) cylinder(h=thick+4, d=size-79);
|
||||||
}
|
}
|
||||||
|
if(size == 92) {
|
||||||
|
difference() {
|
||||||
|
translate ([size/2,size/2,-1]) cylinder(h=thick+2, d=size-86);
|
||||||
|
translate ([size/2,size/2,-2]) cylinder(h=thick+4, d=size-92);
|
||||||
|
}
|
||||||
|
}
|
||||||
// mount holes
|
// mount holes
|
||||||
translate ([size-4,size-4,-1]) cylinder(h=thick+2, d=3);
|
translate ([size-3.75,size-3.75,-1]) cylinder(h=thick+2, d=3);
|
||||||
translate ([size-4,4,-1]) cylinder(h=thick+2, d=3);
|
translate ([size-3.75,3.75,-1]) cylinder(h=thick+2, d=3);
|
||||||
translate ([4,size-4,-1]) cylinder(h=thick+2, d=3);
|
translate ([3.75,size-3.75,-1]) cylinder(h=thick+2, d=3);
|
||||||
translate ([4,4,-1]) cylinder(h=thick+2, d=3);
|
translate ([3.75,3.75,-1]) cylinder(h=thick+2, d=3);
|
||||||
}
|
}
|
||||||
translate([6.5,4.25,-2]) rotate([0,0,45]) cube([size*1.2,3,thick+4]);
|
translate([6.5,4.25,-2]) rotate([0,0,45]) cube([size*1.2,3,thick+4]);
|
||||||
translate([4.25,size-6.5,-2]) rotate([0,0,-45]) cube([size*1.2,3,thick+4]);
|
translate([4.25,size-6.5,-2]) rotate([0,0,-45]) cube([size*1.2,3,thick+4]);
|
||||||
@@ -3314,7 +3384,7 @@ module mask(loc_x,loc_y,loc_z,rotation,side,class,type,wallthick,gap,floorthick,
|
|||||||
// button opening
|
// button opening
|
||||||
if(type == "momentary_6x6x4") {
|
if(type == "momentary_6x6x4") {
|
||||||
place(loc_x,loc_y,loc_z,6,6,rotation,side)
|
place(loc_x,loc_y,loc_z,6,6,rotation,side)
|
||||||
translate([3,3,4]) rotate([0,0,0]) cylinder(d=5, h=50);
|
translate([3,3,4]) rotate([0,0,0]) cylinder(d=5, h=10);
|
||||||
}
|
}
|
||||||
if(type == "momentary_6x6x4_90" && rotation == 0) {
|
if(type == "momentary_6x6x4_90" && rotation == 0) {
|
||||||
place(loc_x,loc_y,loc_z,6,6,rotation,side)
|
place(loc_x,loc_y,loc_z,6,6,rotation,side)
|
||||||
@@ -3544,6 +3614,7 @@ module h3_port_extender(style, mask = false) {
|
|||||||
// gpio 24 pin front position
|
// gpio 24 pin front position
|
||||||
color("silver") translate([1.6, 188.5, 84]) rotate([90, 0, 270]) import("stl/h3_port_extender.stl");
|
color("silver") translate([1.6, 188.5, 84]) rotate([90, 0, 270]) import("stl/h3_port_extender.stl");
|
||||||
color("dimgrey") translate([-2.5, 0, 29.5]) rotate([270, 0, 90]) import("stl/header_2x2_90.stl");
|
color("dimgrey") translate([-2.5, 0, 29.5]) rotate([270, 0, 90]) import("stl/header_2x2_90.stl");
|
||||||
|
color("dimgrey")translate([9,-.5,12.75]) rotate([0,270,90]) import("stl/header_encl_2x5_90.stl");
|
||||||
translate([2, 2, 14.08]) rotate([0, 90, 0]) header(12);
|
translate([2, 2, 14.08]) rotate([0, 90, 0]) header(12);
|
||||||
translate([2, 2, 11.54]) rotate([0, 90, 0]) header(12);
|
translate([2, 2, 11.54]) rotate([0, 90, 0]) header(12);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user