added hk_pwr_button model, keyhole accessory and h3_port_extender models for header and remote mount, updated h3_ultimate case.
This commit is contained in:
@@ -165,7 +165,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", "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_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);
|
||||||
|
|||||||
@@ -378,6 +378,11 @@ accessory_data = [
|
|||||||
"suball","round",10.5,-2,14.5,"top",[90,0,0],["case",false,false,false],11,0,18,0,0,"",0, // sub power plug hole
|
"suball","round",10.5,-2,14.5,"top",[90,0,0],["case",false,false,false],11,0,18,0,0,"",0, // sub power plug hole
|
||||||
"suball","rectangle",35,-26,4,"top",[0,0,0],["case",false,false,false],21,10,15.5,0,0,"vertical",[1,1,1,1]], // sub hdmi opening
|
"suball","rectangle",35,-26,4,"top",[0,0,0],["case",false,false,false],21,10,15.5,0,0,"vertical",[1,1,1,1]], // sub hdmi opening
|
||||||
|
|
||||||
|
// Odroid-XU4
|
||||||
|
["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
|
||||||
|
"sub","keyhole",50,30,0,"bottom",[0,0,0],["case",false,false,false],0,0,0,0,0,"",[7,3,6,2]], // keyhole
|
||||||
|
|
||||||
|
|
||||||
// Odroid-HC4
|
// Odroid-HC4
|
||||||
["hc4_tray_drivebox2.5",
|
["hc4_tray_drivebox2.5",
|
||||||
@@ -828,7 +833,7 @@ accessory_data = [
|
|||||||
"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,28,"top",[0,0,90],["case",true,false,false],2,12,4,1,17,"vertical",1, // vent opening
|
||||||
"sub","vent",-3.5,30,4,"bottom",[0,0,90],["case",false,false,false],2,6,4,1,17,"vertical",1, // vent opening
|
"sub","vent",-3.5,30,4,"bottom",[0,0,90],["case",false,false,false],2,6,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
|
"sub","vent",111.5,30,4,"bottom",[0,0,90],["case",true,false,false],2,6,4,1,17,"vertical",1, // vent opening
|
||||||
"sub","fan",99,10,48,"top",[0,0,90],["sbc-case_z",true,true,true],90,0,6,2,0,"",0, // fan opening
|
"sub","fan",99,10,48,"top",[0,0,90],["sbc-case_z",true,true,true],90,0,6,2,0,"",0, // fan opening
|
||||||
"add2","batt_holder",113.5,45,20,"top",[90,0,270],["sbc-case_z",true,true,true],10,10,0,0,0,"",0, // add battery holder
|
"add2","batt_holder",113.5,45,20,"top",[90,0,270],["sbc-case_z",true,true,true],10,10,0,0,0,"",0, // add battery holder
|
||||||
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],["sbc",true,true,false],100,80,2,0,0,"landscape",0, // access port
|
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],["sbc",true,true,false],100,80,2,0,0,"landscape",0, // access port
|
||||||
"add2","button",12.34,106.43,53,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,53,0,0,"recess",0, // button
|
"add2","button",12.34,106.43,53,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,53,0,0,"recess",0, // button
|
||||||
@@ -847,7 +852,7 @@ accessory_data = [
|
|||||||
"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,28,"top",[0,0,90],["case",true,false,false],2,12,4,1,17,"vertical",1, // vent opening
|
||||||
"sub","vent",-3.5,30,4,"bottom",[0,0,90],["case",false,false,false],2,6,4,1,17,"vertical",1, // vent opening
|
"sub","vent",-3.5,30,4,"bottom",[0,0,90],["case",false,false,false],2,6,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
|
"sub","vent",111.5,30,4,"bottom",[0,0,90],["case",true,false,false],2,6,4,1,17,"vertical",1, // vent opening
|
||||||
"sub","fan",99,10,48,"top",[0,0,90],["sbc-case_z",true,true,true],90,0,6,2,0,"",0, // fan opening
|
"sub","fan",99,10,48,"top",[0,0,90],["sbc-case_z",true,true,true],90,0,6,2,0,"",0, // fan opening
|
||||||
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],["sbc",true,true,false],100,80,2,0,0,"landscape",0, // access port
|
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],["sbc",true,true,false],100,80,2,0,0,"landscape",0, // access port
|
||||||
"add2","button",12.34,106.43,53,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,53,0,0,"recess",0, // button
|
"add2","button",12.34,106.43,53,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,53,0,0,"recess",0, // button
|
||||||
"add2","button",23.77,106.43,53,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,53,0,0,"recess",0, // button
|
"add2","button",23.77,106.43,53,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,53,0,0,"recess",0, // button
|
||||||
@@ -856,11 +861,11 @@ accessory_data = [
|
|||||||
"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
|
"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","button_top",-20,0,0,"top",[0,0,0],["case",false,false,false],10,0,58,0,0,"recess",0, // button top
|
"platter","button_top",-20,0,0,"top",[0,0,0],["case",false,false,false],10,0,58,0,0,"recess",0, // button top
|
||||||
"platter","button_top",-30,0,0,"top",[0,0,0],["case",false,false,false],10,0,58,0,0,"recess",0, // button top
|
"platter","button_top",-30,0,0,"top",[0,0,0],["case",false,false,false],10,0,58,0,0,"recess",0, // button top
|
||||||
"platter","access_cover",-110,30,0,"bottom",[0,0,0],["case",false,false,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
|
||||||
"sub","round",111,34,6.07,"bottom",[0,90,0],["case",true,false,false],3,0,3,0,0,"",0, // sub hd side screw hole
|
"sub","round",111,34,6.07,"bottom",[0,90,0],["case",true,false,false],3,0,3,0,0,"",0, // sub hd side screw hole
|
||||||
"sub","round",111,110.6,6.07,"bottom",[0,90,0],["case",true,false,false],3,0,3,0,0,"",0, // sub hd side screw hole
|
"sub","round",111,110.6,6.07,"bottom",[0,90,0],["case",true,false,false],3,0,3,0,0,"",0, // sub hd side screw hole
|
||||||
"add2","hd_vertleft",98,10,1.99,"bottom",[0,0,0],["case",true,true,false],0,0,0,2.5,3,"portrait",0, // add hd holder
|
"add2","hd_vertleft",98,10,1.99,"bottom",[0,0,0],["case",true,true,false],0,0,0,2.5,3,"portrait",0, // add hd holder
|
||||||
"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_ultimate",
|
["h3_ultimate",
|
||||||
@@ -871,20 +876,21 @@ accessory_data = [
|
|||||||
"sub","vent",-3.5,30,4,"bottom",[0,0,90],["case",false,false,false],2,6,4,1,17,"vertical",1, // vent opening
|
"sub","vent",-3.5,30,4,"bottom",[0,0,90],["case",false,false,false],2,6,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
|
"sub","vent",111.5,30,4,"bottom",[0,0,90],["case",true,false,false],2,6,4,1,17,"vertical",1, // vent opening
|
||||||
"sub","fan",99,10,48,"top",[0,0,90],["sbc-case_z",true,true,true],90,0,6,2,0,"",0, // fan opening
|
"sub","fan",99,10,48,"top",[0,0,90],["sbc-case_z",true,true,true],90,0,6,2,0,"",0, // fan opening
|
||||||
"sub","rectangle",-5,76,33.5,"top",[0,0,0],["sbc",false,true,true],6,8,15,0,0,"vertical",[.25,.25,.25,.25], // usb opening
|
"model","h3_port_extender",6,70,18.5,"bottom",[0,0,0],["sbc",true,true,false],0,0,0,0,0,"header",0, // access port cover
|
||||||
"sub","rectangle",-5,85.5,33.5,"top",[0,0,0],["sbc",false,true,true],6,8,15,0,0,"vertical",[.25,.25,.25,.25], // usb opening
|
"sub","rectangle",-5,76,33.5,"top",[0,0,0],["sbc",false,true,true],6,8,15,0,0,"vertical",[.25,.25,.25,.25], // usb opening
|
||||||
"sub","rectangle",-5,95,33.5,"top",[0,0,0],["sbc",false,true,true],6,8,15,0,0,"vertical",[.25,.25,.25,.25], // usb opening
|
"sub","rectangle",-5,85.5,33.5,"top",[0,0,0],["sbc",false,true,true],6,8,15,0,0,"vertical",[.25,.25,.25,.25], // usb opening
|
||||||
"sub","round",-5,87,51.5,"top",[0,90,0],["sbc",false,true,true],3,0,6,0,0,"",0, // port extender hole
|
"sub","rectangle",-5,95,33.5,"top",[0,0,0],["sbc",false,true,true],6,8,15,0,0,"vertical",[.25,.25,.25,.25], // usb opening
|
||||||
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],["sbc",true,true,false],100,80,2,0,0,"landscape",0, // access port
|
"sub","round",-5,87,51.5,"top",[0,90,0],["sbc",false,true,true],3,0,6,0,0,0,0, // port extender hole
|
||||||
"add2","button",12.34,106.43,53,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,53,0,0,"recess",0, // button
|
"model","hk_pwr_button",20,110,53,"top",[0,0,0],["sbc-case_z",true,true,true],0,0,0,0,0,0,0, // hk pwr button model
|
||||||
"add2","button",23.77,106.43,53,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,53,0,0,"recess",0, // button
|
"sub","round",20,110,48,"top",[0,0,0],["sbc-case_z",true,true,true],16,0,8,0,0,0,0, // hk pwr button hole
|
||||||
"model","button_top",12.34,106.43,53,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,58,0,0,"recess",0, // button top
|
"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","button_top",23.77,106.43,53,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,58,0,0,"recess",0, // button top
|
|
||||||
// "model","h3_port_extender",-1,70,18.5,"bottom",[0,0,0],["sbc",true,true,false],0,0,0,0,0,"landscape",0, // access port cover
|
|
||||||
"model","h3_port_extender",6,70,18.5,"bottom",[0,0,0],["sbc",true,true,false],0,0,0,0,0,"landscape",0, // access port cover
|
|
||||||
"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
|
"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","button_top",-20,0,0,"top",[0,0,0],["case",false,false,false],10,0,58,0,0,"recess",0, // button top
|
// "add2","button",12.34,106.43,53,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,53,0,0,"recess",0, // button
|
||||||
"platter","button_top",-30,0,0,"top",[0,0,0],["case",false,false,false],10,0,58,0,0,"recess",0, // button top
|
// "add2","button",23.77,106.43,53,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,53,0,0,"recess",0, // button
|
||||||
|
// "model","button_top",12.34,106.43,53,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,58,0,0,"recess",0, // button top
|
||||||
|
// "model","button_top",23.77,106.43,53,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,58,0,0,"recess",0, // button top
|
||||||
|
// "platter","button_top",-20,0,0,"top",[0,0,0],["case",false,false,false],10,0,58,0,0,"recess",0, // button top
|
||||||
|
// "platter","button_top",-30,0,0,"top",[0,0,0],["case",false,false,false],10,0,58,0,0,"recess",0, // button top
|
||||||
"platter","access_cover",-110,30,0,"bottom",[0,0,0],["case",false,false,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
|
||||||
"sub","round",111,34,6.07,"bottom",[0,90,0],["case",true,false,false],3,0,3,0,0,"",0, // sub hd side screw hole
|
"sub","round",111,34,6.07,"bottom",[0,90,0],["case",true,false,false],3,0,3,0,0,"",0, // sub hd side screw hole
|
||||||
"sub","round",111,110.6,6.07,"bottom",[0,90,0],["case",true,false,false],3,0,3,0,0,"",0, // sub hd side screw hole
|
"sub","round",111,110.6,6.07,"bottom",[0,90,0],["case",true,false,false],3,0,3,0,0,"",0, // sub hd side screw hole
|
||||||
@@ -899,7 +905,7 @@ accessory_data = [
|
|||||||
"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,28,"top",[0,0,90],["case",true,false,false],2,12,4,1,17,"vertical",1, // vent opening
|
||||||
"sub","vent",-3.5,30,4,"bottom",[0,0,90],["case",false,false,false],2,6,4,1,17,"vertical",1, // vent opening
|
"sub","vent",-3.5,30,4,"bottom",[0,0,90],["case",false,false,false],2,6,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
|
"sub","vent",111.5,30,4,"bottom",[0,0,90],["case",true,false,false],2,6,4,1,17,"vertical",1, // vent opening
|
||||||
"sub","fan",99,10,48,"top",[0,0,90],["sbc-case_z",true,true,true],90,0,6,2,0,"",0, // fan opening
|
"sub","fan",99,10,48,"top",[0,0,90],["sbc-case_z",true,true,true],90,0,6,2,0,"",0, // fan opening
|
||||||
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],["sbc",true,true,false],100,80,2,0,0,"landscape",0, // access port
|
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],["sbc",true,true,false],100,80,2,0,0,"landscape",0, // access port
|
||||||
"add2","button",12.34,106.43,53,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,53,0,0,"recess",0, // button
|
"add2","button",12.34,106.43,53,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,53,0,0,"recess",0, // button
|
||||||
"add2","button",23.77,106.43,53,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,53,0,0,"recess",0, // button
|
"add2","button",23.77,106.43,53,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,53,0,0,"recess",0, // button
|
||||||
@@ -908,15 +914,15 @@ accessory_data = [
|
|||||||
"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
|
"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","button_top",-20,0,0,"top",[0,0,0],["case",false,false,false],10,0,58,0,0,"recess",0, // button top
|
"platter","button_top",-20,0,0,"top",[0,0,0],["case",false,false,false],10,0,58,0,0,"recess",0, // button top
|
||||||
"platter","button_top",-30,0,0,"top",[0,0,0],["case",false,false,false],10,0,58,0,0,"recess",0, // button top
|
"platter","button_top",-30,0,0,"top",[0,0,0],["case",false,false,false],10,0,58,0,0,"recess",0, // button top
|
||||||
"platter","access_cover",-110,30,0,"bottom",[0,0,0],["case",false,false,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
|
||||||
"sub","round",111,24,6.07,"bottom",[0,90,0],["case",true,true,false],3,0,3,0,0,"",0, // sub hd side screw hole
|
"sub","round",111,24,6.07,"bottom",[0,90,0],["case",true,true,false],3,0,3,0,0,"",0, // sub hd side screw hole
|
||||||
"sub","round",111,100.6,6.07,"bottom",[0,90,0],["case",true,true,false],3,0,3,0,0,"",0, // sub hd side screw hole
|
"sub","round",111,100.6,6.07,"bottom",[0,90,0],["case",true,true,false],3,0,3,0,0,"",0, // sub hd side screw hole
|
||||||
"add2","hd_vertleft",100,10,1.99,"bottom",[0,0,0],["case",true,true,false],0,0,0,2.5,3,"portrait",0, // add hd holder
|
"add2","hd_vertleft",100,10,1.99,"bottom",[0,0,0],["case",true,true,false],0,0,0,2.5,3,"portrait",0, // add hd holder
|
||||||
"add2","hd_vertright",65,10,1.99,"bottom",[0,0,0],["case",true,true,false],0,0,0,2.5,0,"portrait",0, // sub hd bottom holes
|
"add2","hd_vertright",65,10,1.99,"bottom",[0,0,0],["case",true,true,false],0,0,0,2.5,0,"portrait",0, // sub hd bottom holes
|
||||||
"sub","hd_vertleft_holes",100,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",100,10,-.01,"bottom",[0,0,0],["case",true,true,false],0,0,0,2.5,3,"portrait",0, // sub hd bottom holes
|
||||||
"sub","hd_vertright_holes",65,10,-.01,"bottom",[0,0,0],["case",true,true,false],0,0,0,2.5,2,"portrait",0, // sub hd bottom holes
|
"sub","hd_vertright_holes",65,10,-.01,"bottom",[0,0,0],["case",true,true,false],0,0,0,2.5,2,"portrait",0, // sub hd bottom holes
|
||||||
"model","hd25",65,110,71.85,"bottom",[-90,0,-90],["case",true,true,false],0,0,0,15,0,"",0, // model 2.5 hd
|
"model","hd25",65,110,71.85,"bottom",[-90,0,-90],["case",true,true,false],0,0,0,15,0,"",0, // model 2.5 hd
|
||||||
"model","hd25",100,110,2,"bottom",[90,0,-90],["case",true,true,false],0,0,0,15,0,"",0], // model 2.5 hd
|
"model","hd25",100,110,2,"bottom",[90,0,-90],["case",true,true,false],0,0,0,15,0,"",0], // model 2.5 hd
|
||||||
|
|
||||||
|
|
||||||
// Nvidia
|
// Nvidia
|
||||||
|
|||||||
@@ -48,6 +48,8 @@
|
|||||||
20221101 version 2.0.2 added hdmi_a_vertical mask, increased jack_3.5 mask dia.to 6mm, lowered hdmi_a_vertical mask by 2mm,
|
20221101 version 2.0.2 added hdmi_a_vertical mask, increased jack_3.5 mask dia.to 6mm, lowered hdmi_a_vertical mask by 2mm,
|
||||||
added mask for microsdcard2
|
added mask for microsdcard2
|
||||||
20221207 version 2.0.3 added double_stacked_usb3-usb2, hd35_vtab(side) and supporting code
|
20221207 version 2.0.3 added double_stacked_usb3-usb2, hd35_vtab(side) and supporting code
|
||||||
|
2023xxxx version 2.0.x added h3_port_extender(style, mask = false), hk_pwr_button(mask = false), keyhole(keysize, mask = false)
|
||||||
|
and supporting code
|
||||||
|
|
||||||
see https://github.com/hominoids/SBC_Case_Builder
|
see https://github.com/hominoids/SBC_Case_Builder
|
||||||
|
|
||||||
@@ -117,8 +119,9 @@
|
|||||||
fan_mask(size, thick, style)
|
fan_mask(size, thick, style)
|
||||||
mask(loc_x,loc_y,rotation,side,class,type,case_z,wallthick,gap,floorthick,pcb_z)
|
mask(loc_x,loc_y,rotation,side,class,type,case_z,wallthick,gap,floorthick,pcb_z)
|
||||||
punchout(width,depth,gap,thick,fillet,shape)
|
punchout(width,depth,gap,thick,fillet,shape)
|
||||||
h3_port_extender()
|
h3_port_extender(style, mask = false)
|
||||||
|
hk_pwr_button(mask = false)
|
||||||
|
keyhole(keysize, mask = false)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use <./lib/fillets.scad>;
|
use <./lib/fillets.scad>;
|
||||||
@@ -271,7 +274,13 @@ module add(type,loc_x,loc_y,loc_z,face,rotation,size_x,size_y,size_z,data_1,data
|
|||||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) boom_vring(data_1);
|
translate([loc_x,loc_y,loc_z]) rotate(rotation) boom_vring(data_1);
|
||||||
}
|
}
|
||||||
if(type == "h3_port_extender") {
|
if(type == "h3_port_extender") {
|
||||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) h3_port_extender();
|
translate([loc_x,loc_y,loc_z]) rotate(rotation) h3_port_extender(data_3);
|
||||||
|
}
|
||||||
|
if(type == "hk_pwr_button") {
|
||||||
|
translate([loc_x,loc_y,loc_z]) rotate(rotation) hk_pwr_button();
|
||||||
|
}
|
||||||
|
if(type == "keyhole") {
|
||||||
|
translate([loc_x,loc_y,loc_z]) rotate(rotation) keyhole(data_4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -324,6 +333,9 @@ module sub(type,loc_x,loc_y,loc_z,face,rotation,size_x,size_y,size_z,data_1,data
|
|||||||
if(type == "sphere") {
|
if(type == "sphere") {
|
||||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) sphere(d=size_x);
|
translate([loc_x,loc_y,loc_z]) rotate(rotation) sphere(d=size_x);
|
||||||
}
|
}
|
||||||
|
if(type == "keyhole") {
|
||||||
|
translate([loc_x,loc_y,loc_z]) rotate(rotation) keyhole(data_4, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1915,11 +1927,11 @@ module header(pins) {
|
|||||||
|
|
||||||
adjust = .01;
|
adjust = .01;
|
||||||
$fn = 90;
|
$fn = 90;
|
||||||
size_x = 2.5;
|
size_x = 2.54;
|
||||||
size_y = 2.5 * pins;
|
size_y = 2.54 * pins;
|
||||||
union() {
|
union() {
|
||||||
color("black") translate([0,0,0]) cube([size_x, size_y, 2.5]);
|
color("black") translate([0,0,0]) cube([size_x, size_y, 2.5]);
|
||||||
for (i=[1:2.5:size_y]) {
|
for (i=[1:2.54:size_y]) {
|
||||||
color("silver") translate ([1,i,2.5]) cube([.64,.64,5]);
|
color("silver") translate ([1,i,2.5]) cube([.64,.64,5]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3446,26 +3458,140 @@ module vent(width,length,height,gap,rows,columns,orientation) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// odroid-h3 gpio port extender
|
|
||||||
module h3_port_extender() {
|
|
||||||
|
|
||||||
// translate([7,258.5,103]) rotate([90,0,270]) import("stl/h3_port_extender.stl");
|
// hk power button
|
||||||
translate([1.6,188.5,84]) rotate([90,0,270]) import("stl/h3_port_extender.stl");
|
module hk_pwr_button(mask = false) {
|
||||||
|
|
||||||
// gpio 24 pin front position
|
|
||||||
translate([-3,15.75,0.25]) rotate([90,180,180]) import("stl/header_f_2x12_90.stl");
|
|
||||||
|
|
||||||
|
|
||||||
// gpio 24 pin rear position
|
|
||||||
// translate([4.55,18.25,0.25]) rotate([90,180,0]) import("stl/header_f_2x12_90.stl");
|
|
||||||
|
|
||||||
// serial header rear position
|
adjust=.01;
|
||||||
// color("yellow") translate([6.5,4,29.25]) rotate([180,90,0]) import("stl/header_2x5_90.stl");
|
$fn = 90;
|
||||||
|
|
||||||
// serial enclosed header rear position
|
|
||||||
// color("yellow")translate([9,-.5,12.75]) rotate([0,270,90]) import("stl/header_encl_2x5_90.stl");
|
|
||||||
|
|
||||||
// power button
|
|
||||||
translate([-2.5,0,29.5]) rotate([270,0,90]) import("stl/header_2x2_90.stl");
|
|
||||||
|
|
||||||
|
if(mask == true) {
|
||||||
|
color("silver") translate([0, 0, -19]) cylinder(h=20, d=16);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
difference() {
|
||||||
|
union() {
|
||||||
|
// light ring
|
||||||
|
difference() {
|
||||||
|
color("blue", .6) translate([0, 0, 1.67]) cylinder(h=.1, d=14.75);
|
||||||
|
color("blue", .6) translate([0, 0, 1.66]) cylinder(h=.2, d=13.75);
|
||||||
|
}
|
||||||
|
// power symbol
|
||||||
|
color("blue", .6) translate([-.5, 0, 1.65]) color("blue", .6) cube([1,3.5,.1]);
|
||||||
|
difference() {
|
||||||
|
color("blue", .6) translate([0, 0, 1.66]) cylinder(h=.1, d=5.75);
|
||||||
|
color("blue", .6) translate([0, 0, 1.65]) cylinder(h=.2, d=4.5);
|
||||||
|
color("blue", .6) translate([-1.75, 0, 1.65]) cube([3.5,4,2]);
|
||||||
|
}
|
||||||
|
// body
|
||||||
|
color("Gainsboro") cylinder(h=1.66, d1=17.75, d2=14.75);
|
||||||
|
color("silver") translate([0, 0, -19]) cylinder(h=19, d=15.8);
|
||||||
|
difference() {
|
||||||
|
color("steelblue") translate([0, 0, -27.9]) cylinder(h=9, d=15.8);
|
||||||
|
color("steelblue") translate([-1+15.8/2, -4, -19-9.1]) cube([2,8,6.1]);
|
||||||
|
color("steelblue") translate([-1-15.8/2, -4, -19-9.1]) cube([2,8,6.1]);
|
||||||
|
}
|
||||||
|
color("white") translate([-3.5, -6, -28]) cube([7,12,2]);
|
||||||
|
|
||||||
|
// nut
|
||||||
|
difference() {
|
||||||
|
translate([0, 0, -4.75]) color("Gainsboro", .6) cylinder(h=2.75, d=21.5, $fn=6);
|
||||||
|
translate([0, 0, -4.75]) color("Gainsboro", .6) cylinder(h=2.75, d=15.8);
|
||||||
|
}
|
||||||
|
// connector pins
|
||||||
|
color("silver") translate([-1.4, -.5, -34.99]) cube([2.8, 1, 7]);
|
||||||
|
color("silver") translate([-1.4, -.5+5, -34.99]) cube([2.8, 1, 7]);
|
||||||
|
color("silver") translate([-1.4, -.5-5, -34.99]) cube([2.8, 1, 7]);
|
||||||
|
color("silver") translate([-1.4-1.75, -.5+1.75, -34.99]) cube([1, 2.8, 7]);
|
||||||
|
color("silver") translate([-1.4+3.5, -.5+1.75, -34.99]) cube([1, 2.8, 7]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @mctom's odroid-h3 gpio port extender
|
||||||
|
module h3_port_extender(style, mask = false) {
|
||||||
|
|
||||||
|
adjust=.01;
|
||||||
|
$fn = 90;
|
||||||
|
|
||||||
|
if(style == "header") {
|
||||||
|
if(mask == true) {
|
||||||
|
translate([-20, 6.25, 15]) cube([12, 7.5, 14.75]);
|
||||||
|
translate([-20, 15.875, 15]) cube([12, 7.5, 14.75]);
|
||||||
|
translate([-20, 25.375, 15]) cube([12, 7.5, 14.75]);
|
||||||
|
translate([-20, 17, 32.5]) rotate([0, 90, 0]) cylinder(d=3.5, h=12);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// gpio 24 pin front position
|
||||||
|
color("silver") translate([1.6, 188.5, 84]) rotate([90, 0, 270]) import("stl/h3_port_extender.stl");
|
||||||
|
// color("dimgrey") translate([-3, 15.75, 0.25]) rotate([90, 180, 180]) import("stl/header_f_2x12_90.stl");
|
||||||
|
translate([0, 2, 8.25]) rotate([0, 180, 0]) header_f(12,8);
|
||||||
|
translate([-2.54, 2, 8.25]) rotate([0, 180, 0]) header_f(12,8);
|
||||||
|
color("dimgrey") translate([-2.5, 0, 29.5]) rotate([270, 0, 90]) import("stl/header_2x2_90.stl");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(style == "remote") {
|
||||||
|
if(mask == true) {
|
||||||
|
translate([-20, 6.25, 15]) cube([12,7.5,14.75]);
|
||||||
|
translate([-20, 15.875, 15]) cube([12,7.5,14.75]);
|
||||||
|
translate([-20, 25.375, 15]) cube([12,7.5,14.75]);
|
||||||
|
translate([-20, 17, 32.5]) rotate([0,90,0]) cylinder(d=3.5, h=12);
|
||||||
|
translate([-20, 17, 5]) rotate([0,90,0]) cylinder(d=3.5, h=12);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// gpio 24 pin front position
|
||||||
|
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");
|
||||||
|
translate([2, 2, 14.08]) rotate([0, 90, 0]) header(12);
|
||||||
|
translate([2, 2, 11.54]) rotate([0, 90, 0]) header(12);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// enclosed keyhole
|
||||||
|
module keyhole(keysize, mask = false) {
|
||||||
|
|
||||||
|
adjust=.01;
|
||||||
|
$fn = 90;
|
||||||
|
|
||||||
|
if(mask == true) {
|
||||||
|
union() {
|
||||||
|
translate([0, 0, -adjust]) cylinder(h=keysize[3]+2*adjust, d=keysize[0]);
|
||||||
|
translate([-keysize[1]/2, 0, -adjust]) cube([keysize[1], keysize[2]+keysize[0]/2, keysize[3]+2*adjust]);
|
||||||
|
translate([0, -keysize[1]/2, -adjust]) cube([keysize[2]+keysize[0]/2, keysize[1], keysize[3]+2*adjust]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
difference() {
|
||||||
|
union() {
|
||||||
|
translate([0, 0, -adjust])
|
||||||
|
difference() {
|
||||||
|
difference() {
|
||||||
|
translate([-keysize[2], -keysize[2], keysize[3]]) cube([keysize[2]*3, keysize[2]*3, 4.5]);
|
||||||
|
translate([0, -10, 0]) rotate([0, 0, 135]) cube([20, 10, 10]);
|
||||||
|
translate([keysize[2], keysize[2], -adjust]) cube([keysize[2]*3, keysize[2]*3, keysize[3]+5]);
|
||||||
|
}
|
||||||
|
difference() {
|
||||||
|
translate([-keysize[2]+2, -keysize[2]+2, keysize[3]-adjust])
|
||||||
|
cube([-4+keysize[2]*3, -4+keysize[2]*3, 3.5]);
|
||||||
|
translate([2, -10, 0]) rotate([0, 0, 135]) cube([20, 10, 10]);
|
||||||
|
translate([+keysize[2]-2, keysize[2]-2, -adjust])
|
||||||
|
cube([keysize[2]*3, keysize[2]*3, keysize[3]+5]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
difference() {
|
||||||
|
translate([-keysize[2], -keysize[2], 0]) cube([keysize[2]*3, keysize[2]*3, keysize[3]]);
|
||||||
|
translate([0, -10, -adjust]) rotate([0, 0, 135]) cube([20, 10, 10]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
translate([keysize[2], keysize[2], -adjust]) cube([keysize[2]*3, keysize[2]*3, keysize[3]+2*adjust]);
|
||||||
|
union() {
|
||||||
|
translate([0, 0, -adjust]) cylinder(h=keysize[3]+2*adjust, d=keysize[0]);
|
||||||
|
translate([-keysize[1]/2, 0, -adjust]) cube([keysize[1], keysize[2]+keysize[0]/2, keysize[3]+2*adjust]);
|
||||||
|
translate([0, -keysize[1]/2, -adjust]) cube([keysize[2]+keysize[0]/2, keysize[1], keysize[3]+2*adjust]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user