finished reformatting remaining cases to json

This commit is contained in:
Edward Kisiel
2022-08-03 21:08:17 -04:00
parent 51b6e7d141
commit 82c1d908b6
3 changed files with 3083 additions and 399 deletions

View File

@@ -69,60 +69,60 @@ accessory_data = [
// Odroid-C1+
["c1+_shell_boombox",
"add2","pcb_holder",.75,68.1,1.99,"bottom",[0,0,0],123.5,35,1.6,2,0,"none",0, // add pcb holder
"add2","boom_grill",16.5,77,21.5,"top",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill
"add2","boom_grill",108,77,21.5,"top",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill
"add2","uart_holder",10,0,1.9,"bottom",[0,0,0],10,10,0,0,0,"",0, // add uart holder
"sub","round",43.75,66,39,"top",[0,0,0],5,0,5,0,0,"vertical",0, // sub cylinder
"sub","slot",70.5,65,39,"top",[0,0,0],6,14,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","round",16.5,78,21.5,"top",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","round",108,78,21.5,"top",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","vent",44,77,17,"top",[0,0,0],2,10,4,1,10,"vertical",1, // vent opening
"model","hk_uart",12.5,23,5,"bottom",[0,0,-90],10,10,0,0,0,"",0, // add uart model
"model","uart_strap",10,0,2,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"model","hk_boom",32.25,70,4,"bottom",[90,0,0],0,0,0,true,0,"front",0, // hk boom bonnet
"model","boom_vring",76.75,66.5,31,"bottom",[90,0,0],0,0,0,0,0,"",0, // hk boom bonnet volume ring
"platter","uart_strap",-35,75,-9,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"platter","boom_vring",-60,100,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring
"add2","pcb_holder",.75,68.1,1.99,"bottom",[0,0,0],123.5,35,1.6,2,0,"none",0, // add pcb holder
"add2","boom_grill",16.5,77,21.5,"top",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill
"add2","boom_grill",108,77,21.5,"top",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill
"add2","uart_holder",10,0,1.9,"bottom",[0,0,0],10,10,0,0,0,"",0, // add uart holder
"sub","round",43.75,66,39,"top",[0,0,0],5,0,5,0,0,"vertical",0, // sub cylinder
"sub","slot",70.5,65,39,"top",[0,0,0],6,14,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","round",16.5,78,21.5,"top",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","round",108,78,21.5,"top",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","vent",44,77,17,"top",[0,0,0],2,10,4,1,10,"vertical",1, // vent opening
"model","hk_uart",12.5,23,5,"bottom",[0,0,-90],10,10,0,0,0,"",0, // add uart model
"model","uart_strap",10,0,2,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"model","hk_boom",32.25,70,4,"bottom",[90,0,0],0,0,0,true,0,"front",0, // hk boom bonnet
"model","boom_vring",76.75,66.5,31,"bottom",[90,0,0],0,0,0,0,0,"",0, // hk boom bonnet volume ring
"platter","uart_strap",-35,75,-9,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"platter","boom_vring",-60,100,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring
["c1+_panel_boombox",
"add2","pcb_holder",.75,66.1,1.99,"bottom",[0,0,0],123.5,35,1.6,2,0,"none",0, // add pcb holder
"add2","boom_grill",16.5,72.5,21.5,"front",[90,0,180],0,0,2,0,0,"flat",0, // add boom grill
"add2","boom_grill",108,72.5,21.5,"front",[90,0,180],0,0,2,0,0,"flat",0, // add boom grill
"add2","uart_holder",10,0,1.9,"bottom",[0,0,0],10,10,0,0,0,"",0, // add uart holder
"sub","round",16.5,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","round",108,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","vent",-3,22,13,"left",[0,0,90],2,10,5,1,8,"vertical",1, // vent opening
"model","hk_uart",12.5,23,5,"bottom",[0,0,-90],10,10,0,0,0,"",0, // add uart model
"model","uart_strap",10,0,2,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"model","hk_boom",32.25,68,4,"bottom",[90,0,0],0,0,0,true,0,"front",0, // hk boom bonnet
"model","boom_vring",76.75,64.5,31,"bottom",[90,0,0],0,0,0,0,0,"",0, // hk boom bonnet volume ring
"platter","uart_strap",-35,75,-9,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"platter","boom_vring",-60,100,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring
"add2","pcb_holder",.75,66.1,1.99,"bottom",[0,0,0],123.5,35,1.6,2,0,"none",0, // add pcb holder
"add2","boom_grill",16.5,72.5,21.5,"front",[90,0,180],0,0,2,0,0,"flat",0, // add boom grill
"add2","boom_grill",108,72.5,21.5,"front",[90,0,180],0,0,2,0,0,"flat",0, // add boom grill
"add2","uart_holder",10,0,1.9,"bottom",[0,0,0],10,10,0,0,0,"",0, // add uart holder
"sub","round",16.5,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","round",108,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","vent",-3,22,13,"left",[0,0,90],2,10,5,1,8,"vertical",1, // vent opening
"model","hk_uart",12.5,23,5,"bottom",[0,0,-90],10,10,0,0,0,"",0, // add uart model
"model","uart_strap",10,0,2,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"model","hk_boom",32.25,68,4,"bottom",[90,0,0],0,0,0,true,0,"front",0, // hk boom bonnet
"model","boom_vring",76.75,64.5,31,"bottom",[90,0,0],0,0,0,0,0,"",0, // hk boom bonnet volume ring
"platter","uart_strap",-35,75,-9,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"platter","boom_vring",-60,100,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring
["c1+_panel_lcd3.5",
"add2","button",89.875,45,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,34,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,23,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,12,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"sub","vent",-3,13,10,"left",[0,0,90],2,10,5,1,8,"vertical",1, // vent opening
"sub","rectangle",5.5,2.75,27,"top",[0,0,0],74.5,51,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"model","hk_lcd35",95,56,20,"bottom",[0,0,180],0,0,0,0,0,"",0], // model hk 3.5 lcd
"add2","button",89.875,45,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,34,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,23,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,12,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"sub","vent",-3,13,10,"left",[0,0,90],2,10,5,1,8,"vertical",1, // vent opening
"sub","rectangle",5.5,2.75,27,"top",[0,0,0],74.5,51,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"model","hk_lcd35",95,56,20,"bottom",[0,0,180],0,0,0,0,0,"",0], // model hk 3.5 lcd
["c1+_desktop_lcd3.5",
"add2","button",89.875,45,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,34,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,23,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,12,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,45,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,34,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,23,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,12,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
// 20 degrees
"add1","rectangle",-3.5,2.65,-24.5,"left",[20,0,0],2,62.9,24,0,0,"vertical",[.1,.1,.1,.1], // sub rectangle
"sub","round",-3.75,40,-34,"left",[0,90,0],65,0,3,0,0,"vertical",0, // sub round
"add1","rectangle",116.5,2.65,-24.5,"right",[20,0,0],2,62.9,24,0,0,"vertical",[.1,.1,.1,.1], // sub rectangle
"sub","round",116.4,40,-34,"right",[0,90,0],65,0,3,0,0,"vertical",0, // sub round
"add1","rectangle",-3.5,2.65,-24.5,"left",[20,0,0],2,62.9,24,0,0,"vertical",[.1,.1,.1,.1], // sub rectangle
"sub","round",-3.75,40,-34,"left",[0,90,0],65,0,3,0,0,"vertical",0, // sub round
"add1","rectangle",116.5,2.65,-24.5,"right",[20,0,0],2,62.9,24,0,0,"vertical",[.1,.1,.1,.1], // sub rectangle
"sub","round",116.4,40,-34,"right",[0,90,0],65,0,3,0,0,"vertical",0, // sub round
//
"sub","vent",-3,13,10,"left",[0,0,90],2,10,5,1,8,"vertical",1, // vent opening
"sub","rectangle",5.5,2.75,27,"top",[0,0,0],74.5,51,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"model","hk_lcd35",95,56,20,"bottom",[0,0,180],0,0,0,0,0,"",0], // model hk 3.5 lcd
"sub","vent",-3,13,10,"left",[0,0,90],2,10,5,1,8,"vertical",1, // vent opening
"sub","rectangle",5.5,2.75,27,"top",[0,0,0],74.5,51,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"model","hk_lcd35",95,56,20,"bottom",[0,0,180],0,0,0,0,0,"",0], // model hk 3.5 lcd
["c1+_deskboom_lcd3.5",
"add1","rectangle",126.5,14.75,-37.5,"right",[30,0,0],2,71.15,41,0,0,"vertical",[.1,.1,.1,.1], // sub rectangle
@@ -234,31 +234,31 @@ accessory_data = [
"model","hk_lcd35",95,56,20,"bottom",[0,0,180],0,0,0,0,0,"",0], // model hk 3.5 lcd
["c2_deskboom_lcd3.5",
"add1","rectangle",126.5,14.75,-37.5,"right",[30,0,0],2,71.15,41,0,0,"vertical",[.1,.1,.1,.1], // sub rectangle
"add1","rectangle",-3.5,14.75,-37.5,"left",[30,0,0],2,71.15,41,0,0,"vertical",[.1,.1,.1,.1], // sub rectangle
"add2","button",89.875,45,39,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,34,39,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,23,39,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,12,39,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","pcb_holder",.75,66.1,1.99,"bottom",[0,0,0],123.5,35,1.6,2,0,"none",0, // add pcb holder
"add2","boom_grill",16.5,72.5,21.5,"front",[90,0,180],0,0,2,0,0,"flat",0, // add boom grill
"add2","boom_grill",108,72.5,21.5,"front",[90,0,180],0,0,2,0,0,"flat",0, // add boom grill
"add2","uart_holder",10,0,1.9,"bottom",[0,0,0],10,10,0,0,0,"",0, // add uart holder
"sub","round",-3.75,54,-32,"left",[0,90,0],60,0,3,0,0,"vertical",0, // sub round
"sub","round",126.4,54,-32,"right",[0,90,0],60,0,3,0,0,"vertical",0, // sub round
"sub","rectangle",5.5,2.75,39,"top",[0,0,0],74.5,51,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","round",43.75,64,39,"top",[0,0,0],5,0,5,0,0,"vertical",0, // sub cylinder
"sub","slot",70.5,63,38,"top",[0,0,0],6,14,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","round",16.5,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","round",108,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","vent",-3,22,13,"left",[0,0,90],2,10,5,1,8,"vertical",1, // vent opening
"model","hk_uart",12.5,23,5,"bottom",[0,0,-90],10,10,0,0,0,"",0, // add uart model
"model","uart_strap",10,0,2,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"model","hk_boom",32.25,68,4,"bottom",[90,0,0],0,0,0,true,0,"front",0, // hk boom bonnet
"model","boom_vring",76.75,64.5,31,"bottom",[90,0,0],0,0,0,0,0,"",0, // hk boom bonnet volume ring
"model","hk_lcd35",95,56,31,"bottom",[0,0,180],0,0,0,0,0,"",0, // model hk 3.5 lcd
"platter","uart_strap",-35,75,-9,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"platter","boom_vring",-60,100,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring
"add1","rectangle",126.5,14.75,-37.5,"right",[30,0,0],2,71.15,41,0,0,"vertical",[.1,.1,.1,.1], // sub rectangle
"add1","rectangle",-3.5,14.75,-37.5,"left",[30,0,0],2,71.15,41,0,0,"vertical",[.1,.1,.1,.1], // sub rectangle
"add2","button",89.875,45,39,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,34,39,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,23,39,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,12,39,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
"add2","pcb_holder",.75,66.1,1.99,"bottom",[0,0,0],123.5,35,1.6,2,0,"none",0, // add pcb holder
"add2","boom_grill",16.5,72.5,21.5,"front",[90,0,180],0,0,2,0,0,"flat",0, // add boom grill
"add2","boom_grill",108,72.5,21.5,"front",[90,0,180],0,0,2,0,0,"flat",0, // add boom grill
"add2","uart_holder",10,0,1.9,"bottom",[0,0,0],10,10,0,0,0,"",0, // add uart holder
"sub","round",-3.75,54,-32,"left",[0,90,0],60,0,3,0,0,"vertical",0, // sub round
"sub","round",126.4,54,-32,"right",[0,90,0],60,0,3,0,0,"vertical",0, // sub round
"sub","rectangle",5.5,2.75,39,"top",[0,0,0],74.5,51,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","round",43.75,64,39,"top",[0,0,0],5,0,5,0,0,"vertical",0, // sub cylinder
"sub","slot",70.5,63,38,"top",[0,0,0],6,14,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","round",16.5,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","round",108,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","vent",-3,22,13,"left",[0,0,90],2,10,5,1,8,"vertical",1, // vent opening
"model","hk_uart",12.5,23,5,"bottom",[0,0,-90],10,10,0,0,0,"",0, // add uart model
"model","uart_strap",10,0,2,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"model","hk_boom",32.25,68,4,"bottom",[90,0,0],0,0,0,true,0,"front",0, // hk boom bonnet
"model","boom_vring",76.75,64.5,31,"bottom",[90,0,0],0,0,0,0,0,"",0, // hk boom bonnet volume ring
"model","hk_lcd35",95,56,31,"bottom",[0,0,180],0,0,0,0,0,"",0, // model hk 3.5 lcd
"platter","uart_strap",-35,75,-9,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"platter","boom_vring",-60,100,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring
["c2_tray_boombox",
"add2","boom_speaker_holder",16.75,69.6,17.5,"bottom",[90,0,180],0,0,0,0,0,"none",0, // add boom grill
@@ -287,98 +287,88 @@ accessory_data = [
// Odroid-C4
["c4_shell_boombox",
"add2","pcb_holder",.75,68.1,1.99,"bottom",[0,0,0],123.5,35,1.6,2,0,"none",0, // add pcb holder
"add2","boom_grill",16.5,77,21.5,"top",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill
"add2","boom_grill",108,77,21.5,"top",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill
"add2","uart_holder",10,0,1.9,"bottom",[0,0,0],10,10,0,0,0,"",0, // add uart holder
"sub","round",43.75,66,39,"top",[0,0,0],5,0,5,0,0,"vertical",0, // sub cylinder
"sub","slot",70.5,65,39,"top",[0,0,0],6,14,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","round",16.5,78,21.5,"top",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","round",108,78,21.5,"top",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","vent",44,77,17,"top",[0,0,0],2,10,4,1,10,"vertical",1, // vent opening
"model","hk_uart",12.5,23,5,"bottom",[0,0,-90],10,10,0,0,0,"",0, // add uart model
"model","uart_strap",10,0,2,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"model","hk_boom",32.25,70,4,"bottom",[90,0,0],0,0,0,true,0,"front",0, // hk boom bonnet
"model","boom_vring",76.75,66.5,31,"bottom",[90,0,0],0,0,0,0,0,"",0, // hk boom bonnet volume ring
"platter","uart_strap",-35,75,-9,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"platter","boom_vring",-60,100,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring
"add2","pcb_holder",.75,68.1,1.99,"bottom",[0,0,0],123.5,35,1.6,2,0,"none",0, // add pcb holder
"add2","boom_grill",16.5,77,21.5,"top",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill
"add2","boom_grill",108,77,21.5,"top",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill
"add2","uart_holder",10,0,1.9,"bottom",[0,0,0],10,10,0,0,0,"",0, // add uart holder
"sub","round",43.75,66,39,"top",[0,0,0],5,0,5,0,0,"vertical",0, // sub cylinder
"sub","slot",70.5,65,39,"top",[0,0,0],6,14,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","round",16.5,78,21.5,"top",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","round",108,78,21.5,"top",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","vent",44,77,17,"top",[0,0,0],2,10,4,1,10,"vertical",1, // vent opening
"model","hk_uart",12.5,23,5,"bottom",[0,0,-90],10,10,0,0,0,"",0, // add uart model
"model","uart_strap",10,0,2,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"model","hk_boom",32.25,70,4,"bottom",[90,0,0],0,0,0,true,0,"front",0, // hk boom bonnet
"model","boom_vring",76.75,66.5,31,"bottom",[90,0,0],0,0,0,0,0,"",0, // hk boom bonnet volume ring
"platter","uart_strap",-35,75,-9,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"platter","boom_vring",-60,100,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring
["c4_shell_vu7",
2,2,3,1.5,[3.5,0], // wallthick,floorthick,sidethick,gap,fillet
true,true,true,true,false, // indents,sidewall_support,sbc_top_standoffs,sbc_bottom_standoffs,case_ext_standoffs
false,"none","fan","vent","true", // sata_punchout,gpio_opening,cooling,exhaust_vents,mode
[6.75,18,2.5,10,4,4,0,1,0,4.5,5.1], // top_pcb_standoff
[6.75,5,3.6,10,4,1,0,0,0,4.5,5.1], // bottom_pcb_standoff
[6.75,18,2.5,10,4,4,0,1,0,4.5,5.1], // top_ext_standoff
[6.75,5,3.6,10,4,1,0,0,0,4.5,5.1], // bottom_ext_standoff
"model","hk_vu7c",-32.5,-30.5,26,"bottom",[0,0,0],0,0,0,false,true,"",0], // hk vu7c lcd
["c4_panel_lcd3.5",
"add2","button",89.875,45,29,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,34,29,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,23,29,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,12,29,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"sub","vent",-3,13,10,"left",[0,0,90],2,10,5,1,8,"vertical",1, // vent opening
"sub","rectangle",5.5,2.75,28,"top",[0,0,0],74.5,51,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"model","hk_lcd35",95,56,20,"top",[0,0,180],0,0,0,0,0,"",0], // model hk 3.5 lcd
"add2","button",89.875,45,29,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,34,29,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,23,29,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,12,29,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"sub","vent",-3,13,10,"left",[0,0,90],2,10,5,1,8,"vertical",1, // vent opening
"sub","rectangle",5.5,2.75,28,"top",[0,0,0],74.5,51,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"model","hk_lcd35",95,56,20,"top",[0,0,180],0,0,0,0,0,"",0], // model hk 3.5 lcd
["c4_desktop_lcd3.5",
"add2","button",89.875,45,29,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,34,29,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,23,29,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,12,29,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,45,29,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,34,29,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,23,29,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,12,29,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
// 30 degrees
"add1","rectangle",-3.5,11.25,-31,"left",[30,0,0],2,58.15,33.5,0,0,"vertical",[.1,.1,.1,.1], // sub rectangle
"sub","round",-3.75,46,-34,"left",[0,90,0],60,0,3,0,0,"vertical",0, // sub round
"add1","rectangle",116.5,11.25,-31,"right",[30,0,0],2,58.15,33.5,0,0,"vertical",[.1,.1,.1,.1], // sub rectangle
"sub","round",116.4,46,-34,"right",[0,90,0],60,0,3,0,0,"vertical",0, // sub round
"add1","rectangle",-3.5,11.25,-31,"left",[30,0,0],2,58.15,33.5,0,0,"vertical",[.1,.1,.1,.1], // sub rectangle
"sub","round",-3.75,46,-34,"left",[0,90,0],60,0,3,0,0,"vertical",0, // sub round
"add1","rectangle",116.5,11.25,-31,"right",[30,0,0],2,58.15,33.5,0,0,"vertical",[.1,.1,.1,.1], // sub rectangle
"sub","round",116.4,46,-34,"right",[0,90,0],60,0,3,0,0,"vertical",0, // sub round
//
"sub","vent",-3,13,10,"left",[0,0,90],2,10,5,1,8,"vertical",1, // vent opening
"sub","rectangle",5.5,2.75,28,"top",[0,0,0],74.5,51,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"model","hk_lcd35",95,56,20,"bottom",[0,0,180],0,0,0,0,0,"",0], // model hk 3.5 lcd
"sub","vent",-3,13,10,"left",[0,0,90],2,10,5,1,8,"vertical",1, // vent opening
"sub","rectangle",5.5,2.75,28,"top",[0,0,0],74.5,51,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"model","hk_lcd35",95,56,20,"bottom",[0,0,180],0,0,0,0,0,"",0], // model hk 3.5 lcd
["c4_deskboom_lcd3.5",
"add1","rectangle",126.5,14.75,-37.5,"right",[30,0,0],2,71.15,41,0,0,"vertical",[.1,.1,.1,.1], // sub rectangle
"add1","rectangle",-3.5,14.75,-37.5,"left",[30,0,0],2,71.15,41,0,0,"vertical",[.1,.1,.1,.1], // sub rectangle
"add2","button",89.875,45,40,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,34,40,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,23,40,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,12,40,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","pcb_holder",.75,66.1,1.99,"bottom",[0,0,0],123.5,35,1.6,2,0,"none",0, // add pcb holder
"add2","boom_grill",16.5,72.5,21.5,"front",[90,0,180],0,0,2,0,0,"flat",0, // add boom grill
"add2","boom_grill",108,72.5,21.5,"front",[90,0,180],0,0,2,0,0,"flat",0, // add boom grill
"add2","uart_holder",10,0,1.9,"bottom",[0,0,0],10,10,0,0,0,"",0, // add uart holder
"sub","round",-3.75,54,-32,"left",[0,90,0],60,0,3,0,0,"vertical",0, // sub round
"sub","round",126.4,54,-32,"right",[0,90,0],60,0,3,0,0,"vertical",0, // sub round
"sub","rectangle",5.5,2.75,39,"top",[0,0,0],74.5,51,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","round",43.75,64,39,"top",[0,0,0],5,0,5,0,0,"vertical",0, // sub cylinder
"sub","slot",70.5,63,38,"top",[0,0,0],6,14,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","round",16.5,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","round",108,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","vent",-3,22,13,"left",[0,0,90],2,10,5,1,8,"vertical",1, // vent opening
"model","hk_uart",12.5,23,5,"bottom",[0,0,-90],10,10,0,0,0,"",0, // add uart model
"model","uart_strap",10,0,2,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"model","hk_boom",32.25,68,4,"bottom",[90,0,0],0,0,0,true,0,"front",0, // hk boom bonnet
"model","boom_vring",76.75,64.5,31,"bottom",[90,0,0],0,0,0,0,0,"",0, // hk boom bonnet volume ring
"model","hk_lcd35",95,56,31,"bottom",[0,0,180],0,0,0,0,0,"",0, // model hk 3.5 lcd
"platter","uart_strap",-35,75,-9,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"platter","boom_vring",-60,100,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom
"add1","rectangle",126.5,14.75,-37.5,"right",[30,0,0],2,71.15,41,0,0,"vertical",[.1,.1,.1,.1], // sub rectangle
"add1","rectangle",-3.5,14.75,-37.5,"left",[30,0,0],2,71.15,41,0,0,"vertical",[.1,.1,.1,.1], // sub rectangle
"add2","button",89.875,45,40,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,34,40,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,23,40,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","button",89.875,12,40,"top",[0,0,180],12,8,2,3,0,"cutout",[2,2,2,2], // cutout button
"add2","pcb_holder",.75,66.1,1.99,"bottom",[0,0,0],123.5,35,1.6,2,0,"none",0, // add pcb holder
"add2","boom_grill",16.5,72.5,21.5,"front",[90,0,180],0,0,2,0,0,"flat",0, // add boom grill
"add2","boom_grill",108,72.5,21.5,"front",[90,0,180],0,0,2,0,0,"flat",0, // add boom grill
"add2","uart_holder",10,0,1.9,"bottom",[0,0,0],10,10,0,0,0,"",0, // add uart holder
"sub","round",-3.75,54,-32,"left",[0,90,0],60,0,3,0,0,"vertical",0, // sub round
"sub","round",126.4,54,-32,"right",[0,90,0],60,0,3,0,0,"vertical",0, // sub round
"sub","rectangle",5.5,2.75,39,"top",[0,0,0],74.5,51,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","round",43.75,64,39,"top",[0,0,0],5,0,5,0,0,"vertical",0, // sub cylinder
"sub","slot",70.5,63,38,"top",[0,0,0],6,14,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","round",16.5,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","round",108,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","vent",-3,22,13,"left",[0,0,90],2,10,5,1,8,"vertical",1, // vent opening
"model","hk_uart",12.5,23,5,"bottom",[0,0,-90],10,10,0,0,0,"",0, // add uart model
"model","uart_strap",10,0,2,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"model","hk_boom",32.25,68,4,"bottom",[90,0,0],0,0,0,true,0,"front",0, // hk boom bonnet
"model","boom_vring",76.75,64.5,31,"bottom",[90,0,0],0,0,0,0,0,"",0, // hk boom bonnet volume ring
"model","hk_lcd35",95,56,31,"bottom",[0,0,180],0,0,0,0,0,"",0, // model hk 3.5 lcd
"platter","uart_strap",-35,75,-9,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"platter","boom_vring",-60,100,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom
["c4_panel_boombox",
"add2","pcb_holder",.75,66.1,1.99,"bottom",[0,0,0],123.5,35,1.6,2,0,"none",0, // add pcb holder
"add2","boom_grill",16.5,72.5,21.5,"front",[90,0,180],0,0,2,0,0,"flat",0, // add boom grill
"add2","boom_grill",108,72.5,21.5,"front",[90,0,180],0,0,2,0,0,"flat",0, // add boom grill
"add2","uart_holder",10,0,1.9,"bottom",[0,0,0],10,10,0,0,0,"",0, // add uart holder
"sub","round",16.5,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","round",108,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","vent",-3,22,13,"left",[0,0,90],2,10,5,1,8,"vertical",1, // vent opening
"model","hk_uart",12.5,23,5,"bottom",[0,0,-90],10,10,0,0,0,"",0, // add uart model
"model","uart_strap",10,0,2,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"model","hk_boom",32.25,68,4,"bottom",[90,0,0],0,0,0,true,0,"front",0, // hk boom bonnet
"model","boom_vring",76.75,64.5,31,"bottom",[90,0,0],0,0,0,0,0,"",0, // hk boom bonnet volume ring
"platter","uart_strap",-35,75,-9,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"platter","boom_vring",-60,100,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring
"add2","pcb_holder",.75,66.1,1.99,"bottom",[0,0,0],123.5,35,1.6,2,0,"none",0, // add pcb holder
"add2","boom_grill",16.5,72.5,21.5,"front",[90,0,180],0,0,2,0,0,"flat",0, // add boom grill
"add2","boom_grill",108,72.5,21.5,"front",[90,0,180],0,0,2,0,0,"flat",0, // add boom grill
"add2","uart_holder",10,0,1.9,"bottom",[0,0,0],10,10,0,0,0,"",0, // add uart holder
"sub","round",16.5,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","round",108,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","vent",-3,22,13,"left",[0,0,90],2,10,5,1,8,"vertical",1, // vent opening
"model","hk_uart",12.5,23,5,"bottom",[0,0,-90],10,10,0,0,0,"",0, // add uart model
"model","uart_strap",10,0,2,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"model","hk_boom",32.25,68,4,"bottom",[90,0,0],0,0,0,true,0,"front",0, // hk boom bonnet
"model","boom_vring",76.75,64.5,31,"bottom",[90,0,0],0,0,0,0,0,"",0, // hk boom bonnet volume ring
"platter","uart_strap",-35,75,-9,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap
"platter","boom_vring",-60,100,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring
["c4_tray_boombox",
"add2","boom_speaker_holder",16.75,69.6,17.5,"bottom",[90,0,180],0,0,0,0,0,"none",0, // add boom grill
"add2","boom_speaker_holder",108.25,69.6,17.5,"bottom",[90,0,180],0,0,0,0,0,"none",0, // add boom grill
@@ -396,233 +386,292 @@ accessory_data = [
"platter","boom_vring",-50,0,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring
["c4_round",
"suball","round",10.5,-2,14.5,"top",[90,0,0],11,0,18,0,0,"",0, // sub power plug hole
"suball","rectangle",34.5,-26,4,"top",[0,0,0],21,10,15.5,0,0,"vertical",[1,1,1,1]], // sub hdmi opening
"suball","round",10.5,-2,14.5,"top",[90,0,0],11,0,18,0,0,"",0, // sub power plug hole
"suball","rectangle",34.5,-26,4,"top",[0,0,0],21,10,15.5,0,0,"vertical",[1,1,1,1]], // sub hdmi opening
["c4_hex",
"suball","round",10.5,-2,14.5,"top",[90,0,0],11,0,18,0,0,"",0, // sub power plug hole
"suball","rectangle",34.5,-26,4,"top",[0,0,0],21,10,15.5,0,0,"vertical",[1,1,1,1]], // sub hdmi opening
// Odroid-N2+
// internal fan
["n2+_tray_vu7_fan",
"sub","vent",25,25,44,"top",[0,0,0],10,2,4,6,6,"horizontal",1, // sub vent
"sub","vent",25,50,44,"top",[0,0,0],10,2,4,6,6,"horizontal",1], // sub vent
// Odroid-M1
["m1_panel",
"sub","vent",29,20,-1,"bottom",[0,0,0],2,15,8,5,12,"horizontal",1, // vent opening
"sub","vent",100,32,10,"right",[0,0,90],2,15,8,1,17,"vertical",1, // vent opening
"sub","vent",-5.5,32,10,"left",[0,0,90],2,15,8,1,17,"vertical",1], // vent opening
["m1_tray",
"add2","button",60,118.5,35,"top",[0,0,0],10,0,11,0,0,"recess",0, // button
"model","button_top",60,118.5,35,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"platter","button_top",-20,0,0,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"sub","vent",29,32,34,"top",[0,0,0],2,15,8,2,12,"horizontal",1, // top vent opening
"sub","vent",29,20,-1,"bottom",[0,0,0],2,15,8,5,12,"horizontal",1, // bottom vent opening
"sub","vent",108.5,32,10,"top",[0,0,90],2,15,4,1,17,"vertical",1, // vent opening
"sub","vent",-6.5,32,10,"top",[0,0,90],2,15,4,1,17,"vertical",1], // vent opening
["m1_tray_drive",
"sub","hd_holes",17,22,41,"top",[0,0,0],0,0,0,2.5,3,"portrait",0, // sub hd bottom holes
"model","hd25",17,122,33.5,"top",[0,0,-90],0,0,0,7.5,0,"",0, // model 2.5 hd
"sub","vent",29,32,41,"top",[0,0,0],2,15,8,2,12,"horizontal",1, // top vent opening
"sub","vent",29,20,-1,"bottom",[0,0,0],2,15,8,5,12,"horizontal",1, // vent opening
"sub","vent",108.5,32,10,"top",[0,0,90],2,15,4,1,17,"vertical",1, // vent opening
"sub","vent",-6.5,32,10,"top",[0,0,90],2,15,4,1,17,"vertical",1], // vent opening
["m1_tray_sides",
"sub","vent",29,20,-1,"bottom",[0,0,0],2,15,8,5,12,"horizontal",1, // vent opening
"sub","vent",104,32,10,"right",[0,0,90],2,15,4,1,17,"vertical",1, // vent opening
"sub","vent",-5.5,32,10,"left",[0,0,90],2,15,4,1,17,"vertical",1], // vent opening
["m1_tray_vu5",
"sub","vent",29,20,-1,"bottom",[0,0,0],2,15,8,5,12,"horizontal",1, // vent opening
"sub","vent",105,32,10,"right",[0,0,90],2,15,8,1,17,"vertical",1, // vent opening
"sub","vent",-7,32,10,"left",[0,0,90],2,15,8,1,17,"vertical",1], // vent opening
["m1_tray_vu7",
"sub","vent",36,20,-1,"bottom",[0,0,0],2,15,8,5,12,"horizontal",1, // vent opening
"sub","vent",123,32,10,"right",[0,0,90],2,15,6,1,17,"vertical",1, // vent opening
"sub","vent",-7,32,10,"left",[0,0,90],2,15,6,1,17,"vertical",1], // vent opening
// Odroid-H2
["h2_tray_router",
"sub","vent",-6.5,30,45,"left",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"sub","vent",111.5,30,45,"right",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"suball","vent",-6.5,30,6,"left",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"suball","vent",111.5,30,6,"right",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port
// "add2","hd_vertright",5,120,1.99,"bottom",[0,0,0],0,0,0,2.5,3,"landscape",0, // sub hd bottom holes
// "sub","hd_vertright_holes",5,120,-.01,"bottom",[0,0,0],0,0,0,2.5,3,"landscape",0, // sub hd bottom holes
"platter","access_cover",-110,30,0,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
// "model","hd25",5,120,71.85,"bottom",[-90,0,00],0,0,0,7,0,"",0, // model 2.5 hd
"model","h2_netcard",0,0,19,"bottom",[0,0,0],0,0,0,0,0,"portrait",0], // h2 network card
["h2_router_station",
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port
"sub","vent",-6.5,30,45,"left",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"sub","vent",121.5,30,45,"right",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"suball","vent",-6.5,30,6,"left",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"suball","vent",121.5,30,6,"right",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"model","h2_netcard",0,0,19,"bottom",[0,0,0],0,0,0,0,0,"portrait",0, // h2 network card
"platter","access_cover",-110,30,0,"bottom",[0,0,0],100,80,2,0,0,"landscape",0], // access port cover
["h2_lowboy",
"sub","rectangle",94.5,-4,13,"top",[0,0,0],14,24.5,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",68,-4,13,"top",[0,0,0],19.5,21.5,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",44.5,-4,13,"top",[0,0,0],20.5,31,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",19.5,-4,13,"top",[0,0,0],20.5,31,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",10.5,28.5,28,"top",[0,0,0],75,71,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","vent",-3.5,30,18,"top",[0,0,90],2,6,4,1,17,"vertical",1, // vent opening
"sub","vent",111.5,30,18,"top",[0,0,90],2,6,4,1,17,"vertical",1, // vent opening
"sub","vent",-3.5,30,4,"bottom",[0,0,90],2,6,4,1,17,"vertical",1, // vent opening
"sub","vent",111.5,30,4,"bottom",[0,0,90],2,6,4,1,17,"vertical",1, // vent opening
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port
"add2","button",12.34,106.43,32,"top",[0,0,0],10,0,11,0,0,"recess",0, // button
"add2","button",23.77,106.43,32,"top",[0,0,0],10,0,11,0,0,"recess",0, // button
"model","button_top",12.34,106.43,32,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"model","button_top",23.77,106.43,32,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"platter","button_top",-20,0,0,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"platter","button_top",-30,0,0,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"platter","access_cover",-110,30,0,"bottom",[0,0,0],100,80,2,0,0,"landscape",0], // access port cover
["h2_lowboy_router",
"sub","rectangle",94.5,-4,25,"top",[0,0,0],14,24.5,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",68,-4,25,"top",[0,0,0],19.5,21.5,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",44.5,-4,25,"top",[0,0,0],20.5,31,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",19.5,-4,25,"top",[0,0,0],20.5,31,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",10.5,28.5,41,"top",[0,0,0],75,71,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","vent",-3.5,30,30,"top",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",111.5,30,30,"top",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",-3.5,30,4,"bottom",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",111.5,30,4,"bottom",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"add2","batt_holder",98,40,44,"top",[180,0,-18],10,10,0,0,0,"",0, // add uart
"add2","button",12.34,106.43,44,"top",[0,0,0],10,0,11,0,0,"recess",0, // button
"add2","button",23.77,106.43,44,"top",[0,0,0],10,0,11,0,0,"recess",0, // button
"model","button_top",12.34,106.43,44,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"model","button_top",23.77,106.43,44,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"platter","button_top",-20,0,0,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"platter","button_top",-30,0,0,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"platter","access_cover",-110,30,0,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"model","h2_netcard",0,0,19,"bottom",[0,0,0],0,0,0,0,0,"portrait",0], // h2 network card
["h2_shell_router",
"sub","vent",-3.5,30,40,"top",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",111.5,30,40,"top",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",-3.5,30,4,"bottom",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",111.5,30,4,"bottom",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port
"add2","button",12.34,106.43,65.01,"top",[0,0,0],10,0,32,0,0,"recess",0, // button
"add2","button",23.77,106.43,65.01,"top",[0,0,0],10,0,32,0,0,"recess",0, // button
"add2","batt_holder",98,40,65,"top",[180,0,-18],10,10,0,0,0,"",0, // add battery holder
"model","button_top",12.34,106.43,65.01,"top",[0,0,0],10,0,32,0,0,"recess",0, // button top
"model","button_top",23.77,106.43,65.01,"top",[0,0,0],10,0,32,0,0,"recess",0, // button top
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"model","h2_netcard",0,0,19,"bottom",[0,0,0],0,0,0,0,0,"portrait",0, // h2 network card
"platter","button_top",-20,0,0,"top",[0,0,0],10,0,32,0,0,"recess",0, // button top
"platter","button_top",-30,0,0,"top",[0,0,0],10,0,32,0,0,"recess",0, // button top
"platter","access_cover",-110,30,0,"bottom",[0,0,0],100,80,2,0,0,"landscape",0], // access port cover
["h2_shell_router-ssd",
"sub","vent",131.5,30,40,"top",[0,0,90],2,15,4,1,17,"vertical",1, // vent opening
"sub","vent",-3.5,30,4,"bottom",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",131.5,30,4,"bottom",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","round",131,44,6.07,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","round",131,120.6,6.07,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port
"add2","button",12.34,106.43,75.01,"top",[0,0,0],10,0,42,0,0,"recess",0, // button
"add2","button",23.77,106.43,75.01,"top",[0,0,0],10,0,42,0,0,"recess",0, // button
"add2","batt_holder",98,40,65,"top",[180,0,-18],10,10,0,0,0,"",0, // add battery holder
"add2","hd_vertleft",122,30,1.99,"bottom",[0,0,0],0,0,0,2.5,3,"portrait",0, // add hd holder
"sub","hd_vertleft_holes",122,30,-.01,"bottom",[0,0,0],0,0,0,2.5,3,"portrait",0, // sub hd bottom holes
"model","button_top",12.34,106.43,75.01,"top",[0,0,0],10,0,42,0,0,"recess",0, // button top
"model","button_top",23.77,106.43,75.01,"top",[0,0,0],10,0,42,0,0,"recess",0, // button top
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"model","h2_netcard",0,0,19,"bottom",[0,0,0],0,0,0,0,0,"portrait",0, // h2 network card
"model","hd25",122,130,2,"bottom",[90,0,-90],0,0,0,7,0,"",0, // model 2.5 hd
"platter","button_top",-20,0,0,"top",[0,0,0],10,0,42,0,0,"recess",0, // button top
"platter","button_top",-30,0,0,"top",[0,0,0],10,0,42,0,0,"recess",0, // button top
"platter","access_cover",-110,30,0,"bottom",[0,0,0],100,80,2,0,0,"landscape",0], // access port cover
"suball","round",10.5,-2,14.5,"top",[90,0,0],11,0,18,0,0,"",0, // sub power plug hole
"suball","rectangle",34.5,-26,4,"top",[0,0,0],21,10,15.5,0,0,"vertical",[1,1,1,1]], // sub hdmi opening
// Odroid-HC4
["hc4_tray_drivebox2.5",
"add1","hc4_oled_holder",20,137,1.99,"bottom",[0,0,0],0,0,2,0,0,"",0, // model hc4 holder
"add2","hd_holder",98,31,2,"bottom",[0,0,0],0,0,0,2.5,0,"portrait",0, // add hd holder
"sub","hd_holes",98,31,-.01,"bottom",[0,0,0],0,0,0,2.5,3,"portrait",0, // sub hd bottom holes
"sub","round",180,45,5,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","round",180,121.6,5,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","round",180,45,23,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","round",180,121.6,23,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"suball","fan",125,-.1,7,"bottom",[90,0,0],40,0,3,1,0,"",0, // sub fan
"suball","vent",72,142,27,"bottom",[0,0,0],2,13,4,1,4,"vertical",1, // sub vent
"model","hc4_oled",20,137,2,"bottom",[0,0,0],0,0,0,0,0,"",0, // model hc4 oled
"model","fan_cover",125,-4,7,"bottom",[90,0,0],40,0,3,2,0,"",0, // model fan
"model","hd25",98,131,2,"bottom",[0,0,-90],0,0,0,15,0,"",0, // model 2.5 hd
"model","hd25",98,131,20,"bottom",[0,0,-90],0,0,0,15,0,"",0, // model 2.5 hd
"model","fan_cover",125,-4,7,"bottom",[90,0,0],40,0,3,2,0,"",0, // model fan
"platter","fan_cover",-50,50,0,"bottom",[0,0,0],40,0,3,2,0,"",0], // model fan
"add1","hc4_oled_holder",20,137,1.99,"bottom",[0,0,0],0,0,2,0,0,"",0, // model hc4 holder
"add2","hd_holder",98,31,2,"bottom",[0,0,0],0,0,0,2.5,0,"portrait",0, // add hd holder
"sub","hd_holes",98,31,-.01,"bottom",[0,0,0],0,0,0,2.5,3,"portrait",0, // sub hd bottom holes
"sub","round",180,45,5,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","round",180,121.6,5,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","round",180,45,23,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","round",180,121.6,23,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"suball","fan",125,-.1,7,"bottom",[90,0,0],40,0,3,1,0,"",0, // sub fan
"suball","vent",72,142,27,"bottom",[0,0,0],2,13,4,1,4,"vertical",1, // sub vent
"model","hc4_oled",20,137,2,"bottom",[0,0,0],0,0,0,0,0,"",0, // model hc4 oled
"model","fan_cover",125,-4,7,"bottom",[90,0,0],40,0,3,2,0,"",0, // model fan
"model","hd25",98,131,2,"bottom",[0,0,-90],0,0,0,15,0,"",0, // model 2.5 hd
"model","hd25",98,131,20,"bottom",[0,0,-90],0,0,0,15,0,"",0, // model 2.5 hd
"model","fan_cover",125,-4,7,"bottom",[90,0,0],40,0,3,2,0,"",0, // model fan
"platter","fan_cover",-50,50,0,"bottom",[0,0,0],40,0,3,2,0,"",0], // model fan
["hc4_shell_drivebox2.5",
"add2","hc4_oled_holder",20,136,1.99,"bottom",[0,0,0],0,0,2,0,0,"",0, // model hc4 holder
"add2","hd_holder",96,33,1.99,"bottom",[0,0,0],0,0,0,2.5,0,"portrait",0, // add hd holder
"sub","hd_holes",96,33,-.01,"bottom",[0,0,0],0,0,0,2.5,3,"portrait",0, // sub hd bottom holes
"sub","round",178,47,5,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","round",178,123.6,5,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","round",178,47,23,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","round",178,123.6,23,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","vent",71.85,142,30,"top",[0,0,0],2,13,4,1,4,"vertical",1, // sub vent
"suball","fan",125,-.1,7,"bottom",[90,0,0],40,0,3,1,0,"",0, // sub fan
"sub","vent",-3.5,35,34,"top",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",178,35,34,"top",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",-3.5,35,9,"bottom",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",178,35,9,"bottom",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"model","hc4_oled",20,136,1.99,"bottom",[0,0,0],0,0,0,0,0,"",0, // model hc4 oled
"model","hd25",96,133,2,"bottom",[0,0,-90],0,0,0,15,0,"",0, // model 2.5 hd
"model","hd25",96,133,20,"bottom",[0,0,-90],0,0,0,15,0,"",0, // model 2.5 hd
"model","fan_cover",125,-4,7,"top",[90,0,0],40,0,3,2,0,"",0, // model fan
"platter","fan_cover",-50,50,0,"bottom",[0,0,0],40,0,3,2,0,"",0], // model fan
"add2","hc4_oled_holder",20,136,1.99,"bottom",[0,0,0],0,0,2,0,0,"",0, // model hc4 holder
"add2","hd_holder",96,33,1.99,"bottom",[0,0,0],0,0,0,2.5,0,"portrait",0, // add hd holder
"sub","hd_holes",96,33,-.01,"bottom",[0,0,0],0,0,0,2.5,3,"portrait",0, // sub hd bottom holes
"sub","round",178,47,5,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","round",178,123.6,5,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","round",178,47,23,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","round",178,123.6,23,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","vent",71.85,142,30,"top",[0,0,0],2,13,4,1,4,"vertical",1, // sub vent
"suball","fan",125,-.1,7,"bottom",[90,0,0],40,0,3,1,0,"",0, // sub fan
"sub","vent",-3.5,35,34,"top",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",178,35,34,"top",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",-3.5,35,9,"bottom",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",178,35,9,"bottom",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"model","hc4_oled",20,136,1.99,"bottom",[0,0,0],0,0,0,0,0,"",0, // model hc4 oled
"model","hd25",96,133,2,"bottom",[0,0,-90],0,0,0,15,0,"",0, // model 2.5 hd
"model","hd25",96,133,20,"bottom",[0,0,-90],0,0,0,15,0,"",0, // model 2.5 hd
"model","fan_cover",125,-4,7,"top",[90,0,0],40,0,3,2,0,"",0, // model fan
"platter","fan_cover",-50,50,0,"bottom",[0,0,0],40,0,3,2,0,"",0], // model fan
["hc4_shell_drivebox2.5v",
"add2","hd_vertright",93,33,1.99,"bottom",[0,0,0],0,0,0,2.5,0,"portrait",0, // sub hd bottom holes
"add2","hd_vertleft",127,33,1.99,"bottom",[0,0,0],0,0,0,2.5,0,"portrait",0, // add hd holder
"sub","hd_vertright_holes",93,33,-.01,"bottom",[0,0,0],0,0,0,2.5,2,"portrait",0, // sub hd bottom holes
"sub","hd_vertleft_holes",127,33,-.01,"bottom",[0,0,0],0,0,0,2.5,2,"portrait",0, // sub hd bottom holes
"sub","round",139,49,6.07,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","round",139,125.6,6.07,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","vent",71.85,142,30,"top",[0,0,0],2,13,4,1,4,"vertical",1, // sub vent
"sub","fan",93,-.1,30,"top",[90,0,0],40,0,3,1,0,"",0, // sub fan
"add1","hc4_oled_holder",20,136,1.99,"bottom",[0,0,0],0,0,2,0,0,"",0, // model hc4 holder
"model","hc4_oled",20,136,1.99,"bottom",[0,0,0],0,0,0,0,0,"",0, // model hc4 oled
"model","fan_cover",94,-3,30,"top",[90,0,0],40,0,3,2,0,"",0, // model fan
"model","hd25",93,133,71.85,"bottom",[-90,0,-90],0,0,0,15,0,"",0, // model 2.5 hd
"model","hd25",127,133,2,"bottom",[90,0,-90],0,0,0,15,0,"",0, // model 2.5 hd
"platter","fan_cover",-50,50,0,"bottom",[0,0,0],40,0,3,2,0,"",0], // model fan
"add2","hd_vertright",93,33,1.99,"bottom",[0,0,0],0,0,0,2.5,0,"portrait",0, // sub hd bottom holes
"add2","hd_vertleft",127,33,1.99,"bottom",[0,0,0],0,0,0,2.5,0,"portrait",0, // add hd holder
"sub","hd_vertright_holes",93,33,-.01,"bottom",[0,0,0],0,0,0,2.5,2,"portrait",0, // sub hd bottom holes
"sub","hd_vertleft_holes",127,33,-.01,"bottom",[0,0,0],0,0,0,2.5,2,"portrait",0, // sub hd bottom holes
"sub","round",139,49,6.07,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","round",139,125.6,6.07,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","vent",71.85,142,30,"top",[0,0,0],2,13,4,1,4,"vertical",1, // sub vent
"sub","fan",93,-.1,30,"top",[90,0,0],40,0,3,1,0,"",0, // sub fan
"add1","hc4_oled_holder",20,136,1.99,"bottom",[0,0,0],0,0,2,0,0,"",0, // model hc4 holder
"model","hc4_oled",20,136,1.99,"bottom",[0,0,0],0,0,0,0,0,"",0, // model hc4 oled
"model","fan_cover",94,-3,30,"top",[90,0,0],40,0,3,2,0,"",0, // model fan
"model","hd25",93,133,71.85,"bottom",[-90,0,-90],0,0,0,15,0,"",0, // model 2.5 hd
"model","hd25",127,133,2,"bottom",[90,0,-90],0,0,0,15,0,"",0, // model 2.5 hd
"platter","fan_cover",-50,50,0,"bottom",[0,0,0],40,0,3,2,0,"",0], // model fan
["hc4_shell_drivebox3.5",
"add1","hc4_oled_holder",20,177,3,"bottom",[0,0,0],0,0,3,0,0,"",0, // model hc4 holder
"add2","hd_holder",100,28,3,"bottom",[0,0,0],0,0,0,3.5,0,"portrait",0, // add hd holder
"sub","hd_holes",100,28,-.01,"bottom",[0,0,0],0,0,0,3.5,3,"portrait",0, // sub hd bottom holes
"sub","round",211,56.5,9.35,"bottom",[0,90,0],3,0,4,0,0,"",0, // sub hd side screw access hole
"sub","round",211,98.4,9.35,"bottom",[0,90,0],3,0,4,0,0,"",0, // sub hd side screw access hole
"sub","round",211,158.1,9.35,"bottom",[0,90,0],3,0,4,0,0,"",0, // sub hd side screw access hole
"suball","vent",72,183,29,"bottom",[0,0,0],2,13,4,1,4,"vertical",1, // sub vent
"suball","fan",125,-1.5,7,"bottom",[90,0,0],40,0,3,1,0,"",0, // sub fan
"model","hc4_oled",20,177,1.99,"bottom",[0,0,0],0,0,0,0,0,"",0, // model hc4 oled
"model","hd35",100,175,3,"bottom",[0,0,-90],0,0,0,0,0,"",0, // model 3.5 hd
"model","hd35",100,175,35,"bottom",[0,0,-90],0,0,0,0,0,"",0, // model 3.5 hd
"model","fan_cover",125,-4,7,"top",[90,0,0],40,0,3,2,0,"",0, // model fan
"platter","fan_cover",-50,50,0,"bottom",[0,0,0],40,0,3,2,0,"",0], // model fan
"add1","hc4_oled_holder",20,177,3,"bottom",[0,0,0],0,0,3,0,0,"",0, // model hc4 holder
"add2","hd_holder",100,28,3,"bottom",[0,0,0],0,0,0,3.5,0,"portrait",0, // add hd holder
"sub","hd_holes",100,28,-.01,"bottom",[0,0,0],0,0,0,3.5,3,"portrait",0, // sub hd bottom holes
"sub","round",211,56.5,9.35,"bottom",[0,90,0],3,0,4,0,0,"",0, // sub hd side screw access hole
"sub","round",211,98.4,9.35,"bottom",[0,90,0],3,0,4,0,0,"",0, // sub hd side screw access hole
"sub","round",211,158.1,9.35,"bottom",[0,90,0],3,0,4,0,0,"",0, // sub hd side screw access hole
"suball","vent",72,183,29,"bottom",[0,0,0],2,13,4,1,4,"vertical",1, // sub vent
"suball","fan",125,-1.5,7,"bottom",[90,0,0],40,0,3,1,0,"",0, // sub fan
"model","hc4_oled",20,177,1.99,"bottom",[0,0,0],0,0,0,0,0,"",0, // model hc4 oled
"model","hd35",100,175,3,"bottom",[0,0,-90],0,0,0,0,0,"",0, // model 3.5 hd
"model","hd35",100,175,35,"bottom",[0,0,-90],0,0,0,0,0,"",0, // model 3.5 hd
"model","fan_cover",125,-4,7,"top",[90,0,0],40,0,3,2,0,"",0, // model fan
"platter","fan_cover",-50,50,0,"bottom",[0,0,0],40,0,3,2,0,"",0], // model fan
// Odroid-N2+
// internal fan
["n2+_tray_vu7_fan",
"sub","vent",25,25,44,"top",[0,0,0],10,2,4,6,6,"horizontal",1, // sub vent
"sub","vent",25,50,44,"top",[0,0,0],10,2,4,6,6,"horizontal",1], // sub vent
// Odroid-M1
["m1_panel",
"sub","vent",29,20,-1,"bottom",[0,0,0],2,15,8,5,12,"horizontal",1, // vent opening
"sub","vent",100,32,10,"right",[0,0,90],2,15,8,1,17,"vertical",1, // vent opening
"sub","vent",-5.5,32,10,"left",[0,0,90],2,15,8,1,17,"vertical",1], // vent opening
["m1_tray",
"add2","button",60,118.5,35,"top",[0,0,0],10,0,11,0,0,"recess",0, // button
"model","button_top",60,118.5,35,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"platter","button_top",-20,0,0,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"sub","vent",29,32,34,"top",[0,0,0],2,15,8,2,12,"horizontal",1, // top vent opening
"sub","vent",29,20,-1,"bottom",[0,0,0],2,15,8,5,12,"horizontal",1, // bottom vent opening
"sub","vent",108.5,32,10,"top",[0,0,90],2,15,4,1,17,"vertical",1, // vent opening
"sub","vent",-6.5,32,10,"top",[0,0,90],2,15,4,1,17,"vertical",1], // vent opening
["m1_tray_drive",
"sub","hd_holes",17,22,41,"top",[0,0,0],0,0,0,2.5,3,"portrait",0, // sub hd bottom holes
"model","hd25",17,122,33.5,"top",[0,0,-90],0,0,0,7.5,0,"",0, // model 2.5 hd
"sub","vent",29,32,41,"top",[0,0,0],2,15,8,2,12,"horizontal",1, // top vent opening
"sub","vent",29,20,-1,"bottom",[0,0,0],2,15,8,5,12,"horizontal",1, // vent opening
"sub","vent",108.5,32,10,"top",[0,0,90],2,15,4,1,17,"vertical",1, // vent opening
"sub","vent",-6.5,32,10,"top",[0,0,90],2,15,4,1,17,"vertical",1], // vent opening
["m1_tray_sides",
"sub","vent",29,20,-1,"bottom",[0,0,0],2,15,8,5,12,"horizontal",1, // vent opening
"sub","vent",104,32,10,"right",[0,0,90],2,15,4,1,17,"vertical",1, // vent opening
"sub","vent",-5.5,32,10,"left",[0,0,90],2,15,4,1,17,"vertical",1], // vent opening
["m1_tray_vu5",
"sub","vent",29,20,-1,"bottom",[0,0,0],2,15,8,5,12,"horizontal",1, // vent opening
"sub","vent",105,32,10,"right",[0,0,90],2,15,8,1,17,"vertical",1, // vent opening
"sub","vent",-7,32,10,"left",[0,0,90],2,15,8,1,17,"vertical",1], // vent opening
["m1_tray_vu7",
"sub","vent",36,20,-1,"bottom",[0,0,0],2,15,8,5,12,"horizontal",1, // vent opening
"sub","vent",123,32,10,"right",[0,0,90],2,15,6,1,17,"vertical",1, // vent opening
"sub","vent",-7,32,10,"left",[0,0,90],2,15,6,1,17,"vertical",1], // vent opening
// Odroid-H2
["h2_shell",
"sub","rectangle",94.5,-4,13,"top",[0,0,0],14,24.5,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",68,-4,13,"top",[0,0,0],19.5,21.5,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",44.5,-4,13,"top",[0,0,0],20.5,31,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",19.5,-4,13,"top",[0,0,0],20.5,31,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",10.5,28.5,28,"top",[0,0,0],75,71,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","vent",-3.5,30,18,"top",[0,0,90],2,6,4,1,17,"vertical",1, // vent opening
"sub","vent",111.5,30,18,"top",[0,0,90],2,6,4,1,17,"vertical",1, // vent opening
"sub","vent",-3.5,30,4,"bottom",[0,0,90],2,6,4,1,17,"vertical",1, // vent opening
"sub","vent",111.5,30,4,"bottom",[0,0,90],2,6,4,1,17,"vertical",1, // vent opening
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],100,79.5,2,0,0,"landscape",0, // access port
"add2","button",12.34,106.43,53,"top",[0,0,0],10,0,32,0,0,"recess",0, // button
"add2","button",23.77,106.43,53,"top",[0,0,0],10,0,32,0,0,"recess",0, // button
"model","button_top",12.34,106.43,53,"top",[0,0,0],10,0,32,0,0,"recess",0, // button top
"model","button_top",23.77,106.43,53,"top",[0,0,0],10,0,32,0,0,"recess",0, // button top
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"platter","button_top",-20,0,0,"top",[0,0,0],10,0,32,0,0,"recess",0, // button top
"platter","button_top",-30,0,0,"top",[0,0,0],10,0,32,0,0,"recess",0, // button top
"platter","access_cover",-110,30,0,"bottom",[0,0,0],100,80,2,0,0,"landscape",0], // access port cover
["h2_shell_router",
"sub","vent",-3.5,30,40,"top",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",111.5,30,40,"top",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",-3.5,30,4,"bottom",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",111.5,30,4,"bottom",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port
"add2","button",12.34,106.43,65.01,"top",[0,0,0],10,0,32,0,0,"recess",0, // button
"add2","button",23.77,106.43,65.01,"top",[0,0,0],10,0,32,0,0,"recess",0, // button
"add2","batt_holder",98,40,65,"top",[180,0,-18],10,10,0,0,0,"",0, // add battery holder
"model","button_top",12.34,106.43,65.01,"top",[0,0,0],10,0,32,0,0,"recess",0, // button top
"model","button_top",23.77,106.43,65.01,"top",[0,0,0],10,0,32,0,0,"recess",0, // button top
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"model","h2_netcard",0,0,19,"bottom",[0,0,0],0,0,0,0,0,"portrait",0, // h2 network card
"platter","button_top",-20,0,0,"top",[0,0,0],10,0,32,0,0,"recess",0, // button top
"platter","button_top",-30,0,0,"top",[0,0,0],10,0,32,0,0,"recess",0, // button top
"platter","access_cover",-110,30,0,"bottom",[0,0,0],100,80,2,0,0,"landscape",0], // access port cover
["h2_shell_router-ssd",
"sub","vent",131.5,30,40,"top",[0,0,90],2,15,4,1,17,"vertical",1, // vent opening
"sub","vent",-3.5,30,4,"bottom",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",131.5,30,4,"bottom",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","round",131,44,6.07,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"sub","round",131,120.6,6.07,"bottom",[0,90,0],3,0,3,0,0,"",0, // sub hd side screw access hole
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port
"add2","button",12.34,106.43,75.01,"top",[0,0,0],10,0,42,0,0,"recess",0, // button
"add2","button",23.77,106.43,75.01,"top",[0,0,0],10,0,42,0,0,"recess",0, // button
"add2","batt_holder",98,40,65,"top",[180,0,-18],10,10,0,0,0,"",0, // add battery holder
"add2","hd_vertleft",122,30,1.99,"bottom",[0,0,0],0,0,0,2.5,3,"portrait",0, // add hd holder
"sub","hd_vertleft_holes",122,30,-.01,"bottom",[0,0,0],0,0,0,2.5,3,"portrait",0, // sub hd bottom holes
"model","button_top",12.34,106.43,75.01,"top",[0,0,0],10,0,42,0,0,"recess",0, // button top
"model","button_top",23.77,106.43,75.01,"top",[0,0,0],10,0,42,0,0,"recess",0, // button top
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"model","h2_netcard",0,0,19,"bottom",[0,0,0],0,0,0,0,0,"portrait",0, // h2 network card
"model","hd25",122,130,2,"bottom",[90,0,-90],0,0,0,7,0,"",0, // model 2.5 hd
"platter","button_top",-20,0,0,"top",[0,0,0],10,0,42,0,0,"recess",0, // button top
"platter","button_top",-30,0,0,"top",[0,0,0],10,0,42,0,0,"recess",0, // button top
"platter","access_cover",-110,30,0,"bottom",[0,0,0],100,80,2,0,0,"landscape",0], // access port cover
["h2_lowboy",
"sub","rectangle",94.5,-4,13,"top",[0,0,0],14,24.5,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",68,-4,13,"top",[0,0,0],19.5,21.5,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",44.5,-4,13,"top",[0,0,0],20.5,31,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",19.5,-4,13,"top",[0,0,0],20.5,31,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",10.5,28.5,28,"top",[0,0,0],75,71,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","vent",-3.5,30,18,"top",[0,0,90],2,6,4,1,17,"vertical",1, // vent opening
"sub","vent",111.5,30,18,"top",[0,0,90],2,6,4,1,17,"vertical",1, // vent opening
"sub","vent",-3.5,30,4,"bottom",[0,0,90],2,6,4,1,17,"vertical",1, // vent opening
"sub","vent",111.5,30,4,"bottom",[0,0,90],2,6,4,1,17,"vertical",1, // vent opening
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port
"add2","button",12.34,106.43,32,"top",[0,0,0],10,0,11,0,0,"recess",0, // button
"add2","button",23.77,106.43,32,"top",[0,0,0],10,0,11,0,0,"recess",0, // button
"model","button_top",12.34,106.43,32,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"model","button_top",23.77,106.43,32,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"platter","button_top",-20,0,0,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"platter","button_top",-30,0,0,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"platter","access_cover",-110,30,0,"bottom",[0,0,0],100,80,2,0,0,"landscape",0], // access port cover
["h2_lowboy_router",
"sub","rectangle",94.5,-4,25,"top",[0,0,0],14,24.5,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",68,-4,25,"top",[0,0,0],19.5,21.5,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",44.5,-4,25,"top",[0,0,0],20.5,31,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",19.5,-4,25,"top",[0,0,0],20.5,31,22,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","rectangle",10.5,28.5,41,"top",[0,0,0],75,71,5,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","vent",-3.5,30,30,"top",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",111.5,30,30,"top",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",-3.5,30,4,"bottom",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"sub","vent",111.5,30,4,"bottom",[0,0,90],2,10,4,1,17,"vertical",1, // vent opening
"add2","batt_holder",98,40,44,"top",[180,0,-18],10,10,0,0,0,"",0, // add uart
"add2","button",12.34,106.43,44,"top",[0,0,0],10,0,11,0,0,"recess",0, // button
"add2","button",23.77,106.43,44,"top",[0,0,0],10,0,11,0,0,"recess",0, // button
"model","button_top",12.34,106.43,44,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"model","button_top",23.77,106.43,44,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"platter","button_top",-20,0,0,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"platter","button_top",-30,0,0,"top",[0,0,0],10,0,11,0,0,"recess",0, // button top
"platter","access_cover",-110,30,0,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"model","h2_netcard",0,0,19,"bottom",[0,0,0],0,0,0,0,0,"portrait",0], // h2 network card
["h2_tray",
"sub","vent",-6.5,30,30,"top",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"sub","vent",111.5,30,30,"top",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"suball","vent",-6.5,30,6,"top",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"suball","vent",111.5,30,6,"top",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port
"platter","access_cover",-110,30,0,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"add2","button",12.34,106.43,53,"top",[0,0,0],10,0,32,0,0,"recess",0, // button
"add2","button",23.77,106.43,53,"top",[0,0,0],10,0,32,0,0,"recess",0, // button
"model","button_top",12.34,106.43,53,"top",[0,0,0],10,0,32,0,0,"recess",0, // button top
"model","button_top",23.77,106.43,53,"top",[0,0,0],10,0,32,0,0,"recess",0, // button top
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"platter","button_top",-20,0,0,"top",[0,0,0],10,0,32,0,0,"recess",0, // button top
"platter","button_top",-30,0,0,"top",[0,0,0],10,0,32,0,0,"recess",0], // button top
["h2_tray_sides",
"sub","vent",-6.5,30,30,"left",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"sub","vent",111.5,30,30,"right",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"sub","vent",-6.5,30,6,"left",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"sub","vent",111.5,30,6,"right",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port
"platter","access_cover",-110,30,0,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"add2","button",12.34,106.43,55,"top",[0,0,0],10,0,32,0,0,"recess",0, // button
"add2","button",23.77,106.43,55,"top",[0,0,0],10,0,32,0,0,"recess",0, // button
"model","button_top",12.34,106.43,55,"top",[0,0,0],10,0,32,0,0,"recess",0, // button top
"model","button_top",23.77,106.43,55,"top",[0,0,0],10,0,32,0,0,"recess",0, // button top
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"platter","button_top",-20,0,0,"top",[0,0,0],10,0,34,0,0,"recess",0, // button top
"platter","button_top",-30,0,0,"top",[0,0,0],10,0,34,0,0,"recess",0], // button top
["h2_tray_router",
"suball","vent",-6.5,30,45,"top",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"suball","vent",111.5,30,45,"top",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"suball","vent",-6.5,30,6,"top",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"suball","vent",111.5,30,6,"top",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port
// "add2","hd_vertright",5,120,1.99,"bottom",[0,0,0],0,0,0,2.5,3,"landscape",0, // sub hd bottom holes
// "sub","hd_vertright_holes",5,120,-.01,"bottom",[0,0,0],0,0,0,2.5,3,"landscape",0, // sub hd bottom holes
"platter","access_cover",-110,30,0,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
// "model","hd25",5,120,71.85,"bottom",[-90,0,00],0,0,0,7,0,"",0, // model 2.5 hd
"model","h2_netcard",0,0,19,"bottom",[0,0,0],0,0,0,0,0,"portrait",0, // h2 network card
"add2","button",12.34,106.43,65,"top",[0,0,0],10,0,32,0,0,"recess",0, // button
"add2","button",23.77,106.43,65,"top",[0,0,0],10,0,32,0,0,"recess",0, // button
"model","button_top",12.34,106.43,65,"top",[0,0,0],10,0,44,0,0,"recess",0, // button top
"model","button_top",23.77,106.43,65,"top",[0,0,0],10,0,44,0,0,"recess",0, // button top
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"platter","button_top",-20,0,0,"top",[0,0,0],10,0,44,0,0,"recess",0, // button top
"platter","button_top",-30,0,0,"top",[0,0,0],10,0,44,0,0,"recess",0], // button top
["h2_router_station",
"add1","access_port",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port
"suball","vent",-6.5,30,45,"left",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"suball","vent",112,30,45,"right",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"suball","vent",-6.5,30,6,"left",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"suball","vent",112,30,6,"right",[0,0,90],2,10,7,1,17,"vertical",1, // vent opening
"model","access_cover",10,30,-0.01,"bottom",[0,0,0],100,80,2,0,0,"landscape",0, // access port cover
"model","h2_netcard",0,0,19,"bottom",[0,0,0],0,0,0,0,0,"portrait",0, // h2 network card
"platter","access_cover",-110,30,0,"bottom",[0,0,0],100,80,2,0,0,"landscape",0], // access port cover
["jetsonnano_shell",
"sub","rectangle",17.5,36.375,28.5,"top",[0,0,0],62,43,4,0,0,"",[1,1,1,1]], // sub heatsink opening
@@ -639,35 +688,74 @@ accessory_data = [
"sub","rectangle",17.5,36.375,28.5,"top",[0,0,0],62,43,8,0,0,"",[1,1,1,1]], // sub heatsink opening
["rockpro64_shell",
"sub","fan",20,0,25,"top",[0,0,0],80,0,6,2,0,"",0, // sub fan opening
"sub","fan",43,28,25,"top",[0,0,0],40,0,6,2,0,"",0, // sub fan opening
"sub","rectangle",43,0,25,"top",[0,0,0],40,10,6,0,0,"",[1,1,1,1]], // sub pcie opening
["rockpro64_panel",
"sub","fan",43,26,24,"top",[0,0,0],40,0,6,2,0,"",0, // sub fan opening
"sub","rectangle",43,0,24.5,"top",[0,0,0],40,10,6,0,0,"",[1,1,1,1]], // sub pcie opening
"sub","fan",43,26,24,"top",[0,0,0],40,0,6,2,0,"",0, // sub fan opening
"sub","rectangle",43,0,24.5,"top",[0,0,0],40,10,6,0,0,"",[1,1,1,1]], // sub pcie opening
["rockpro64_stacked",
"sub","fan",43,26,24,"top",[0,0,0],40,0,6,2,0,"",0, // sub fan opening
"sub","rectangle",43,0,24.5,"top",[0,0,0],40,10,6,0,0,"",[1,1,1,1]], // sub pcie opening
"sub","fan",43,26,24,"top",[0,0,0],40,0,6,2,0,"",0, // sub fan opening
"sub","rectangle",43,0,24.5,"top",[0,0,0],40,10,6,0,0,"",[1,1,1,1]], // sub pcie opening
["rockpro64_tray",
"sub","fan",43,26,25,"top",[0,0,0],40,0,6,2,0,"",0, // sub fan opening
"sub","rectangle",43,0,24.5,"top",[0,0,0],40,10,8,0,0,"",[1,1,1,1]], // sub pcie opening
"sub","fan",43,26,25,"top",[0,0,0],40,0,6,2,0,"",0, // sub fan opening
"sub","rectangle",43,0,24.5,"top",[0,0,0],40,10,8,0,0,"",[1,1,1,1]], // sub pcie opening
["rockpro64_tray_sides",
"sub","fan",43,26,25,"top",[0,0,0],40,0,6,2,0,"",0, // sub fan opening
"sub","rectangle",43,0,24.5,"top",[0,0,0],40,10,8,0,0,"",[1,1,1,1]], // sub pcie opening
"sub","fan",43,26,25,"top",[0,0,0],40,0,6,2,0,"",0, // sub fan opening
"sub","rectangle",43,0,24.5,"top",[0,0,0],40,10,8,0,0,"",[1,1,1,1]], // sub pcie opening
["rockpro64_snap",
"sub","fan",43,28,28,"top",[0,0,0],40,0,6,2,0,"",0, // sub fan opening
"sub","rectangle",43,0,28,"top",[0,0,0],40,10,6,0,0,"",[1,1,1,1]], // sub pcie opening
["rockpro64_fitted",
"sub","fan",43,28,28,"top",[0,0,0],40,0,6,2,0,"",0, // sub fan opening
"sub","rectangle",43,0,28,"top",[0,0,0],40,10,6,0,0,"",[1,1,1,1]], // sub pcie opening
["show2_shell",
"model","hk_wb2",6.25,24.675,16,"top",[0,0,180],0,0,0,0,0,"",0, // hk weatherboard2
"suball","round",48.75,0,6,"top",[90,0,0],4,0,4,0,0,"",0, // sub button access hole
"suball","round",57.25,0,6,"top",[90,0,0],4,0,4,0,0,"",0, // sub button access hole
"suball","round",65.75,0,6,"top",[90,0,0],4,0,4,0,0,"",0, // sub button access hole
"sub","rectangle",.5,8,8.5,"top",[0,0,0],6,16.5,8,0,0,"",[.5,.5,.5,.5], // sub gpio opening
"add1","rectangle",22.5,9,8.85,"top",[0,0,0],47,36,3.25,0,0,"",[.5,.5,.5,.5], // add screen trim
"sub","rectangle",23.5,10,8.5,"top",[0,0,0],45,34,8,0,0,"",[.5,.5,.5,.5]], // sub screen opening
"model","hk_wb2",6.25,24.675,16,"top",[0,0,180],0,0,0,0,0,"",0, // hk weatherboard2
"suball","round",48.75,0,6,"top",[90,0,0],4,0,4,0,0,"",0, // sub button access hole
"suball","round",57.25,0,6,"top",[90,0,0],4,0,4,0,0,"",0, // sub button access hole
"suball","round",65.75,0,6,"top",[90,0,0],4,0,4,0,0,"",0, // sub button access hole
"sub","rectangle",.5,8,8.5,"top",[0,0,0],6,16.5,8,0,0,"",[.5,.5,.5,.5], // sub gpio opening
"add1","rectangle",22.5,9,8.85,"top",[0,0,0],47,36,3.25,0,0,"",[.5,.5,.5,.5], // add screen trim
"sub","rectangle",23.5,10,8.5,"top",[0,0,0],45,34,8,0,0,"",[.5,.5,.5,.5]], // sub screen opening
["rpi3b+_shell",
"sub","fan",10,10,24.5,"top",[0,0,0],40,0,6,2,0,"",0], // sub fan opening
["rpi3b+_panel",
"sub","fan",10,10,24.5,"top",[0,0,0],40,0,6,2,0,"",0], // sub fan opening
["rpi3b+_stacked",
"sub","fan",10,10,24.5,"top",[0,0,0],40,0,6,2,0,"",0], // sub fan opening
["rpi3b+_tray",
"sub","fan",10,10,24.5,"top",[0,0,0],40,0,6,2,0,"",0], // sub fan opening
["rpi3b+_tray_sides",
"sub","fan",10,10,25.5,"top",[0,0,0],40,0,6,2,0,"",0], // sub fan opening
["rpi3b+_round",
"suball","round",10.5,-2,14.5,"top",[90,0,0],11,0,18,0,0,"",0, // sub power plug hole
"suball","rectangle",34.5,-26,4,"top",[0,0,0],21,10,15.5,0,0,"vertical",[1,1,1,1], // sub hdmi opening
"sub","fan",10,10,24.5,"top",[0,0,0],40,0,6,2,0,"",0], // sub fan opening
["rpi3b+_hex",
"suball","round",10.5,-2,14.5,"top",[90,0,0],11,0,18,0,0,"",0, // sub power plug hole
"suball","rectangle",34.5,-26,4,"top",[0,0,0],21,10,15.5,0,0,"vertical",[1,1,1,1], // sub hdmi opening
"sub","fan",10,10,24.5,"top",[0,0,0],40,0,6,2,0,"",0], // sub fan opening
["rpi3b+_snap",
"sub","fan",10,10,24.5,"top",[0,0,0],40,0,6,2,0,"",0], // sub fan opening
["rpi3b+_fitted",
"sub","fan",10,10,25.5,"top",[0,0,0],40,0,6,2,0,"",0], // sub fan opening
["test",
"sub","vent",60,120,10,"bottom",[0,0,0],2,15,4,1,4,"vertical",1] // sub vent
"sub","vent",60,120,10,"bottom",[0,0,0],2,15,4,1,4,"vertical",1] // sub vent
];

File diff suppressed because it is too large Load Diff

View File

@@ -14,28 +14,29 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
Code released under GPLv3: http://www.gnu.org/licenses/gpl.html
20220202 Version 1.0.0 sbc case builder using sbc model framework
20220206 Version 1.0.1 added tray-vu7 case style, other fixes
20220202 Version 1.0.0 sbc case builder using sbc model framework.
20220206 Version 1.0.1 added tray-vu7 case style, other fixes.
20220212 Version 1.1.0 implemented sbc_case_builder.cfg config file,
sbc_case_builder_library.scad and basic accessory framework.
adjusted tray-vu7 tabs, adjusted tray-vu7 model alignment
minor fixes and other maintenance.
20220220 Version 1.1.1 added .cfg commands add1,add2,model,platter
schema changes, extended standoff fixes, hd mounting acc.
acc. placement and other minor fixes, added raise_top setting
acc. placement and other minor fixes, added raise_top setting.
20220227 Version 1.1.2 added sbc_off setting, fixed hdmi bottom placement
schema change, extended standoff detection, hd vertical mount, oled holder
access port, access cover, case feet and other fixes
access port, access cover, case feet and other fixes.
20220306 Version 1.1.3 added netcard, buttons, parametric access_port, other fixes and maintenance
20220312 Version 1.2.0 added fillet array, button cutout style, hk_lcd35, other fixes and maintenance
20220320 Version 1.2.1 added hk_boom bonnet model and accessories, hk_uart model, fixed uart opening,
enabled pcb_z, added tabs and fixed tray case top, other fixes and maintenance
20220406 Version 1.2.2 added vu7c, vu8m and weatherboard2 models, other additions,
fixes and maintenance
fixes and maintenance.
20220515 Version 1.2.3 added odroid-m1, jetson nano, rockpro64, completed mask(), improved docs
changed tray top design
2022xxxx Version 2.0.x added round, hexagon, snap and fitted cases, full customizer user interface,
case configuration file changed to json, accessories kept in sbc_case_builder.cfg
changed tray top design.
2022xxxx Version 2.0.x full customizer user interface,case configuration file changed to json,
accessories kept in sbc_case_builder.cfg,
added round, hexagon, snap and fitted cases.
see https://github.com/hominoids/SBC_Case_Builder
*/
@@ -72,7 +73,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 = "c4"; // [c1+,c2,c4,xu4,xu4q,mc1,hc1,hc4,m1,n1,n2,n2+,h2,rpi3b+,a64,rock64,rockpro64,atomicpi,jetsonnano,show2]
sbc_model = "c4"; // [c1+,c2,c4,xu4,xu4q,mc1,hc1,hc4,m1,n1,n2,n2+,h2,jetsonnano,show2,rockpro64,rpi3b+]
// sbc location x axis
pcb_loc_x = 0; //[0:.5:200]
// sbc location y axis
@@ -1131,8 +1132,7 @@ module case_top(case_design) {
vertical=[c_fillet,c_fillet,c_fillet,c_fillet],
top=[fillet,fillet,fillet,fillet,fillet],
bottom=[0,0,0,0], $fn=90);
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,
case_z-floorthick])
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,case_z-floorthick-1])
cube_fillet_inside([width-wallthick+tol,depth-wallthick+tol,lip+floorthick],
vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1],
top=[fillet,fillet,fillet,fillet,fillet],
@@ -1767,7 +1767,7 @@ module open_io() {
}
if(side == "top" && cooling == "fan" && class == "heatsink" && type == "h2_oem") {
translate([loc_x-28,loc_y-28,case_z-(floorthick+adjust)])
fan_mask(90,floorthick+3,2);
fan_mask(90,floorthick+6,2);
}
if(side == "top" && cooling == "vents" && class == "heatsink") {
for(r=[loc_x+7:4:48]) {
@@ -1855,7 +1855,7 @@ module open_io() {
// sata openings
if(side == "top" && type == "sata_power_vrec" && sata_punchout == true) {
translate([loc_x-3,loc_y+1.75,case_z-adjust-floorthick])
punchout(42,7.5,2,floorthick+(2*adjust)+2,3,"slot");
punchout(42,7.5,2,floorthick+(2*adjust)+6,3,"slot");
}
}
}