more json integration, fixed round, hex, fitted, snap cases, other minor fixes

This commit is contained in:
Edward Kisiel
2022-07-31 17:36:15 -04:00
parent 2e9f05f8bd
commit 3eb91c0b39
4 changed files with 2250 additions and 161 deletions

View File

@@ -87,8 +87,8 @@ accessory_data = [
["c1+_panel_boombox", ["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","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,0,0,0,"flat",0, // add boom grill "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,0,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 "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",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","round",108,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
@@ -101,29 +101,55 @@ accessory_data = [
"platter","boom_vring",-60,100,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring "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", ["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,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,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,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,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","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 "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 "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", ["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,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,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,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,12,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
// 20 degrees // 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 "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 "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 "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","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","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 "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 "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
"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
["c1+_tray_boombox", ["c1+_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",16.75,69.6,17.5,"bottom",[90,0,180],0,0,0,0,0,"none",0, // add boom grill
@@ -131,8 +157,8 @@ accessory_data = [
"add2","boom_grill",16.75,74,17.5,"bottom",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill "add2","boom_grill",16.75,74,17.5,"bottom",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill
"add2","boom_grill",108.25,74,17.5,"bottom",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill "add2","boom_grill",108.25,74,17.5,"bottom",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill
"sub","vent",44,75,12,"bottom",[0,0,0],2,10,4,1,10,"vertical",1, // vent opening "sub","vent",44,75,12,"bottom",[0,0,0],2,10,4,1,10,"vertical",1, // vent opening
"sub","round",-2,11,15.75,"left",[0,-90,0],5,0,8,0,0,"vertical",0, // sub cylinder "sub","round",-2,11,15.75,"top",[0,-90,0],5,0,8,0,0,"vertical",0, // sub cylinder
"sub","slot",-9,37.5,17,"left",[90,0,90],7,14,6,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle "sub","slot",-9,37.5,17,"top",[90,0,90],7,14,6,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","round",16.75,75,17.5,"bottom",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder "sub","round",16.75,75,17.5,"bottom",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","round",108.25,75,17.5,"bottom",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder "sub","round",108.25,75,17.5,"bottom",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"model","boom_speaker",16.75,71,17.5,"bottom",[-90,0,0],0,0,0,false,0,"left",0, // boom speaker "model","boom_speaker",16.75,71,17.5,"bottom",[-90,0,0],0,0,0,false,0,"left",0, // boom speaker
@@ -142,11 +168,15 @@ accessory_data = [
"platter","boom_vring",-50,0,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring "platter","boom_vring",-50,0,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring
["c1+_round", ["c1+_round",
"suball","round",49.5,-15,10.5,"top",[90,0,0],11,0,15,0,0,"",0, // sub power plug hole "suball","round",49.5,-15,10.5,"top",[90,0,0],11,0,15,0,0,"",0, // sub power plug hole
"suball","rectangle",20.5,-26,4.5,"top",[0,0,0],21,8,13.5,0,0,"vertical",[1,1,1,1]], // sub hdmi opening "suball","rectangle",20.5,-26,4.5,"top",[0,0,0],21,8,13.5,0,0,"vertical",[1,1,1,1]], // sub hdmi opening
["c1+_hex",
"suball","round",49.5,-15,10.5,"top",[90,0,0],11,0,15,0,0,"",0, // sub power plug hole
"suball","rectangle",20.5,-26,4.5,"top",[0,0,0],21,15,13.5,0,0,"vertical",[1,1,1,1]], // sub hdmi opening
// Odroid-C4 // Odroid-C2
["c2_shell_boombox", ["c2_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","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",16.5,77,21.5,"top",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill
@@ -166,8 +196,8 @@ accessory_data = [
["c2_panel_boombox", ["c2_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","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,0,0,0,"flat",0, // add boom grill "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,0,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 "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",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","round",108,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
@@ -178,7 +208,7 @@ accessory_data = [
"model","boom_vring",76.75,64.5,31,"bottom",[90,0,0],0,0,0,0,0,"",0, // hk boom bonnet volume ring "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","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 "platter","boom_vring",-60,100,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring
["c2_panel_lcd3.5", ["c2_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,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,34,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
@@ -193,12 +223,12 @@ accessory_data = [
"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,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,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,12,28,"top",[0,0,180],12,8,2,2,0,"cutout",[2,2,2,2], // cutout button
// 30 degrees // 20 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 "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,46,-34,"left",[0,90,0],60,0,3,0,0,"vertical",0, // sub round "sub","round",-3.75,40,-34,"left",[0,90,0],65,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 "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,46,-34,"right",[0,90,0],60,0,3,0,0,"vertical",0, // sub round "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","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 "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 "model","hk_lcd35",95,56,20,"bottom",[0,0,180],0,0,0,0,0,"",0], // model hk 3.5 lcd
@@ -211,8 +241,8 @@ accessory_data = [
"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,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","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","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,0,0,0,"flat",0, // add boom grill "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,0,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 "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",-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","round",126.4,54,-32,"right",[0,90,0],60,0,3,0,0,"vertical",0, // sub round
@@ -230,16 +260,14 @@ accessory_data = [
"platter","uart_strap",-35,75,-9,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap "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 "platter","boom_vring",-60,100,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring
["c2_tray_boombox", ["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 "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 "add2","boom_speaker_holder",108.25,69.6,17.5,"bottom",[90,0,180],0,0,0,0,0,"none",0, // add boom grill
"add2","boom_grill",16.75,74,17.5,"bottom",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill "add2","boom_grill",16.75,74,17.5,"bottom",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill
"add2","boom_grill",108.25,74,17.5,"bottom",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill "add2","boom_grill",108.25,74,17.5,"bottom",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill
"sub","vent",44,75,12,"bottom",[0,0,0],2,10,4,1,10,"vertical",1, // vent opening "sub","vent",44,75,12,"bottom",[0,0,0],2,10,4,1,10,"vertical",1, // vent opening
"sub","round",-2,11,15.75,"left",[0,-90,0],5,0,8,0,0,"vertical",0, // sub cylinder "sub","round",-2,11,15.75,"top",[0,-90,0],5,0,8,0,0,"vertical",0, // sub cylinder
"sub","slot",-9,37.5,17,"left",[90,0,90],7,14,6,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle "sub","slot",-9,37.5,17,"top",[90,0,90],7,14,6,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle
"sub","round",16.75,75,17.5,"bottom",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder "sub","round",16.75,75,17.5,"bottom",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","round",108.25,75,17.5,"bottom",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder "sub","round",108.25,75,17.5,"bottom",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"model","boom_speaker",16.75,71,17.5,"bottom",[-90,0,0],0,0,0,false,0,"left",0, // boom speaker "model","boom_speaker",16.75,71,17.5,"bottom",[-90,0,0],0,0,0,false,0,"left",0, // boom speaker
@@ -249,8 +277,12 @@ accessory_data = [
"platter","boom_vring",-50,0,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring "platter","boom_vring",-50,0,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring
["c2_round", ["c2_round",
"suball","round",49.5,-15,10.5,"top",[90,0,0],11,0,15,0,0,"",0, // sub power plug hole "suball","round",49.5,-15,10.5,"top",[90,0,0],11,0,15,0,0,"",0, // sub power plug hole
"suball","rectangle",20.5,-26,4.5,"top",[0,0,0],21,8,13.5,0,0,"vertical",[1,1,1,1]], // sub hdmi opening "suball","rectangle",20.5,-26,4.5,"top",[0,0,0],21,8,13.5,0,0,"vertical",[1,1,1,1]], // sub hdmi opening
["c2_hex",
"suball","round",49.5,-15,10.5,"top",[90,0,0],11,0,15,0,0,"",0, // sub power plug hole
"suball","rectangle",20.5,-26,4.5,"top",[0,0,0],21,15,13.5,0,0,"vertical",[1,1,1,1]], // sub hdmi opening
// Odroid-C4 // Odroid-C4
@@ -271,7 +303,7 @@ accessory_data = [
"platter","uart_strap",-35,75,-9,"bottom",[0,0,0],0,0,0,0,0,"",0, // hk uart strap "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 "platter","boom_vring",-60,100,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom bonnet volume ring
["c4_shell_vu7c", ["c4_shell_vu7",
2,2,3,1.5,[3.5,0], // wallthick,floorthick,sidethick,gap,fillet 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 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 false,"none","fan","vent","true", // sata_punchout,gpio_opening,cooling,exhaust_vents,mode
@@ -313,8 +345,8 @@ accessory_data = [
"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,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","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","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,0,0,0,"flat",0, // add boom grill "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,0,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 "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",-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","round",126.4,54,-32,"right",[0,90,0],60,0,3,0,0,"vertical",0, // sub round
@@ -330,12 +362,12 @@ accessory_data = [
"model","boom_vring",76.75,64.5,31,"bottom",[90,0,0],0,0,0,0,0,"",0, // hk boom bonnet volume ring "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 "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","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 "platter","boom_vring",-60,100,0,"bottom",[0,0,0],0,0,0,0,0,"",0], // hk boom
["c4_panel_boombox", ["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","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,0,0,0,"flat",0, // add boom grill "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,0,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 "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",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","round",108,75,21.5,"front",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
@@ -353,8 +385,8 @@ accessory_data = [
"add2","boom_grill",16.75,74,17.5,"bottom",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill "add2","boom_grill",16.75,74,17.5,"bottom",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill
"add2","boom_grill",108.25,74,17.5,"bottom",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill "add2","boom_grill",108.25,74,17.5,"bottom",[90,0,180],0,0,0,0,0,"dome",0, // add boom grill
"sub","vent",44,75,12,"bottom",[0,0,0],2,10,4,1,10,"vertical",1, // vent opening "sub","vent",44,75,12,"bottom",[0,0,0],2,10,4,1,10,"vertical",1, // vent opening
"sub","round",-2,11,15.75,"left",[0,-90,0],5,0,8,0,0,"vertical",0, // sub cylinder "sub","round",-2,11,15.75,"top",[0,-90,0],5,0,8,0,0,"vertical",0, // sub cylinder
"sub","slot",-9,37.5,17,"left",[90,0,90],7,14,6,0,0,"vertical",[.25,.25,.25,.25], // sub rectangle "sub","slot",-9,37.5,17,"top",[90,0,90],7,14,6,0,0,"vertical",[.25,.25,.25,.25], // sub slot
"sub","round",16.75,75,17.5,"bottom",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder "sub","round",16.75,75,17.5,"bottom",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"sub","round",108.25,75,17.5,"bottom",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder "sub","round",108.25,75,17.5,"bottom",[90,0,0],24,0,5,0,0,"vertical",0, // sub cylinder
"model","boom_speaker",16.75,71,17.5,"bottom",[-90,0,0],0,0,0,false,0,"left",0, // boom speaker "model","boom_speaker",16.75,71,17.5,"bottom",[-90,0,0],0,0,0,false,0,"left",0, // boom speaker

File diff suppressed because it is too large Load Diff

View File

@@ -241,7 +241,7 @@ if (view == "model") {
color("dimgrey",1) translate([0,0,-lower_bottom]) case_bottom(case_design); color("dimgrey",1) translate([0,0,-lower_bottom]) case_bottom(case_design);
} }
if(sbc_off == false) { if(sbc_off == false) {
translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z]) sbc(sbc_model); translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z]) sbc(sbc_model);
} }
if(raise_top >= 0) { if(raise_top >= 0) {
color("grey",1) translate([0,0,raise_top]) case_top(case_design); color("grey",1) translate([0,0,raise_top]) case_top(case_design);
@@ -252,7 +252,7 @@ if (view == "model") {
color("grey",1) translate([0,0,-lower_bottom]) case_bottom(case_design); color("grey",1) translate([0,0,-lower_bottom]) case_bottom(case_design);
} }
if(sbc_off == false) { if(sbc_off == false) {
translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z]) sbc(sbc_model); translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z]) sbc(sbc_model);
} }
if(raise_top >= 0) { if(raise_top >= 0) {
color("grey",1) translate([0,0,raise_top])case_top(case_design); color("grey",1) translate([0,0,raise_top])case_top(case_design);
@@ -275,7 +275,7 @@ if (view == "model") {
color("grey",1) translate([0,0,-lower_bottom]) case_bottom(case_design); color("grey",1) translate([0,0,-lower_bottom]) case_bottom(case_design);
} }
if(sbc_off == false) { if(sbc_off == false) {
translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z]) sbc(sbc_model); translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z]) sbc(sbc_model);
} }
if(raise_top >= 0) { if(raise_top >= 0) {
color("grey",1) translate([0,0,raise_top]) case_top(case_design); color("grey",1) translate([0,0,raise_top]) case_top(case_design);
@@ -286,7 +286,7 @@ if (view == "model") {
color("dimgrey",1) translate([0,0,-lower_bottom]) case_bottom(case_design); color("dimgrey",1) translate([0,0,-lower_bottom]) case_bottom(case_design);
} }
if(sbc_off == false) { if(sbc_off == false) {
translate([pcb_loc_x,pcb_loc_y,bottom_height-pcb_z]) sbc(sbc_model); translate([pcb_loc_x,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z]) sbc(sbc_model);
} }
if(raise_top >= 0) { if(raise_top >= 0) {
color("grey",1) translate([0,0,raise_top]) case_top(case_design); color("grey",1) translate([0,0,raise_top]) case_top(case_design);
@@ -341,7 +341,7 @@ if (view == "model") {
color("dimgrey",1) translate([0,0,-lower_bottom]) case_bottom(case_design); color("dimgrey",1) translate([0,0,-lower_bottom]) case_bottom(case_design);
} }
if(sbc_off == false) { if(sbc_off == false) {
translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z]) sbc(sbc_model); translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z]) sbc(sbc_model);
} }
if(raise_top >= 0) { if(raise_top >= 0) {
color("grey",1) translate([0,0,raise_top]) case_top(case_design); color("grey",1) translate([0,0,raise_top]) case_top(case_design);
@@ -352,14 +352,13 @@ if (view == "model") {
color("dimgrey",1) translate([0,0,-lower_bottom]) case_bottom(case_design); color("dimgrey",1) translate([0,0,-lower_bottom]) case_bottom(case_design);
} }
if(sbc_off == false) { if(sbc_off == false) {
translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z]) sbc(sbc_model); translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z]) sbc(sbc_model);
} }
if(raise_top >= 0) { if(raise_top >= 0) {
color("grey",1) translate([0,0,raise_top]) case_top(case_design); color("grey",1) translate([0,0,raise_top]) case_top(case_design);
} }
} }
// model accessories // model accessories
echo(accessory_name,accessory_data[a[0]]);
if(accessory_name != "none") { if(accessory_name != "none") {
for (i=[1:14:len(accessory_data[a[0]])-1]) { for (i=[1:14:len(accessory_data[a[0]])-1]) {
class = accessory_data[a[0]][i]; class = accessory_data[a[0]][i];
@@ -448,13 +447,12 @@ module case_bottom(case_design) {
} }
if(case_design == "tray") { if(case_design == "tray") {
difference() { difference() {
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,bottom_height/2]) translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,(bottom_height)/2])
cube_fillet_inside([width,depth,bottom_height], cube_fillet_inside([width,depth,bottom_height],
vertical=[0,0,0,0], top=[0,0,0,0], vertical=[0,0,0,0], top=[0,0,0,0],
bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90); bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap, translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,(bottom_height/2)+floorthick])
(bottom_height/2)+floorthick]) cube_fillet_inside([width-(wallthick*2),depth-(wallthick*2),bottom_height+adjust],
cube_fillet_inside([width-(wallthick*2),depth-(wallthick*2),bottom_height],
vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1], vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1],
top=[0,0,0,0],bottom=[2,2,2,2], $fn=90); top=[0,0,0,0],bottom=[2,2,2,2], $fn=90);
} }
@@ -558,19 +556,18 @@ module case_bottom(case_design) {
} }
if(case_design == "snap") { if(case_design == "snap") {
difference() { difference() {
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,(case_z)/2]) translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,(floorthick+case_z)/2])
cube_fillet_inside([width,depth,case_z+floorthick], cube_fillet_inside([width,depth,floorthick+case_z],
vertical=[c_fillet,c_fillet,c_fillet,c_fillet], vertical=[c_fillet,c_fillet,c_fillet,c_fillet],
top=[0,0,0,0], bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90); top=[0,0,0,0], bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
translate([(width/2)-wallthick-gap, translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,floorthick+(floorthick+case_z)/2])
(depth/2)-wallthick-gap,(case_z)/2+floorthick]) cube_fillet_inside([width-(wallthick*2),depth-(wallthick*2),case_z+floorthick+1],
cube_fillet_inside([width-(wallthick*2),depth-(wallthick*2),case_z+floorthick+1],
vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1], vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1],
top=[0,0,0,0], bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90); top=[0,0,0,0], bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
// snap top indent // snap top indent
translate([-gap-wallthick+.5,(depth/2)-25-gap-wallthick,case_z-1.5]) translate([-gap-wallthick+.5,(depth/2)-25-gap-wallthick,case_z-.5])
rotate([0,45,0]) cube([4,50,4]); rotate([0,45,0]) cube([4,50,4]);
translate([width-wallthick-gap-4-2,(depth/2)-25-gap-wallthick,case_z-1.5]) translate([width-wallthick-gap-4-2,(depth/2)-25-gap-wallthick,case_z-.5])
rotate([0,45,0]) cube([4,50,4]); rotate([0,45,0]) cube([4,50,4]);
} }
} }
@@ -581,18 +578,18 @@ module case_bottom(case_design) {
vertical=[c_fillet,c_fillet,c_fillet,c_fillet], vertical=[c_fillet,c_fillet,c_fillet,c_fillet],
top=[0,0,0,0], bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90); top=[0,0,0,0], bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
translate([(width/2)-wallthick-gap, translate([(width/2)-wallthick-gap,
(depth/2)-wallthick-gap,(case_z)/2+floorthick]) (depth/2)-wallthick-gap,(case_z/2)+floorthick])
cube_fillet_inside([width-(wallthick*2),depth-(wallthick*2),case_z+floorthick+1], cube_fillet_inside([width-(wallthick*2),depth-(wallthick*2),case_z+floorthick],
vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1], vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1],
top=[0,0,0,0], bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90); top=[0,0,0,0], bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
difference() { difference() {
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,case_z+adjust-lip/2]) translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,case_z-lip/2])
cube_fillet_inside([width+adjust,depth+adjust,lip], cube_fillet_inside([width+adjust,depth+adjust,lip+adjust],
vertical=[c_fillet,c_fillet,c_fillet,c_fillet], vertical=[c_fillet,c_fillet,c_fillet,c_fillet],
top=[0,0,0,0],bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90); top=[0,0,0,0],bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,case_z+adjust-lip/2]) translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,case_z-lip/2])
cube_fillet_inside([width-wallthick,depth-wallthick,lip], cube_fillet_inside([width-wallthick,depth-wallthick,lip+adjust],
vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1],top=[0,0,0,0], vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1],top=[0,0,0,0],
bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90); bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
} }
@@ -711,39 +708,34 @@ module case_bottom(case_design) {
pcb_hole_size = sbc_data[s[0]][i+2]; pcb_hole_size = sbc_data[s[0]][i+2];
if(sbc_model == "h2" && mode == "net_card" && (i == 7 || i ==13)) { if(sbc_model == "h2" && mode == "net_card" && (i == 7 || i ==13)) {
if (pcb_hole_x!=0 && pcb_hole_y!=0) { if (pcb_hole_x!=0 && pcb_hole_y!=0) {
netcard_standoff = [bottom_standoff[0], // diameter netcard_standoff = [bottom_standoff[0], // diameter
bottom_height-pcb_z-4, // height bottom_height-pcb_z bottom_height-pcb_z+pcb_loc_z-4,// height bottom_height-pcb_z
bottom_standoff[2], // holesize bottom_standoff[2], // holesize
bottom_standoff[3], // supportsize bottom_standoff[3], // supportsize
bottom_standoff[4], // supportheight bottom_standoff[4], // supportheight
bottom_standoff[5], // 1=countersink, 2=recessed hole, 3=nut holder, 4=blind bottom_standoff[5], // 1=countersink, 2=recessed hole, 3=nut holder, 4=blind
bottom_standoff[6], // standoff style 0=hex, 1=cylinder bottom_standoff[6], // standoff style 0=hex, 1=cylinder
bottom_standoff[7], // enable reverse standoff bottom_standoff[7], // enable reverse standoff
bottom_standoff[8], // enable insert at top of standoff bottom_standoff[8], // enable insert at top of standoff
bottom_standoff[9], // insert hole dia. mm bottom_standoff[9], // insert hole dia. mm
bottom_standoff[10]]; // insert depth mm bottom_standoff[10]]; // insert depth mm
translate([pcb_hole_x,pcb_hole_y,0]) standoff(netcard_standoff); translate([pcb_hole_x,pcb_hole_y,0]) standoff(netcard_standoff);
} }
} }
else { else {
if (pcb_hole_x!=0 && pcb_hole_y!=0 && case_design != "shell") { if (pcb_hole_x!=0 && pcb_hole_y!=0) {
translate([pcb_hole_x,pcb_hole_y,0]) standoff(bottom_standoff); normal_standoff = [bottom_standoff[0], // diameter
} bottom_height-pcb_z+pcb_loc_z, // height bottom_height-pcb_z
else { bottom_standoff[2], // holesize
if (pcb_hole_x!=0 && pcb_hole_y!=0) { bottom_standoff[3], // supportsize
shell_standoff = [bottom_standoff[0], // diameter bottom_standoff[4], // supportheight
bottom_height-pcb_z, // height bottom_height-pcb_z bottom_standoff[5], // 1=countersink, 2=recessed hole, 3=nut holder, 4=blind
bottom_standoff[2], // holesize bottom_standoff[6], // standoff style 0=hex, 1=cylinder
bottom_standoff[3], // supportsize bottom_standoff[7], // enable reverse standoff
bottom_standoff[4], // supportheight bottom_standoff[8], // enable insert at top of standoff
bottom_standoff[5], // 1=countersink, 2=recessed hole, 3=nut holder, 4=blind bottom_standoff[9], // insert hole dia. mm
bottom_standoff[6], // standoff style 0=hex, 1=cylinder bottom_standoff[10]]; // insert depth mm
bottom_standoff[7], // enable reverse standoff translate([pcb_hole_x,pcb_hole_y,0]) standoff(normal_standoff);
bottom_standoff[8], // enable insert at top of standoff
bottom_standoff[9], // insert hole dia. mm
bottom_standoff[10]]; // insert depth mm
translate([pcb_hole_x,pcb_hole_y,0]) standoff(shell_standoff);
}
} }
} }
} }
@@ -1062,15 +1054,13 @@ module case_top(case_design) {
} }
if(case_design == "round") { if(case_design == "round") {
difference() { difference() {
translate([pcb_width/2,pcb_depth/2,(case_z+2)/2]) rotate([0,0,30]) translate([pcb_width/2,pcb_depth/2,bottom_height+(top_height/2)-lip/2]) rotate([0,0,30])
cylinder_fillet_inside(h=top_height+lip, r=case_diameter/2, cylinder_fillet_inside(h=top_height+lip, r=case_diameter/2,
top=fillet, bottom=0, $fn=case_fn, fillet_fn=case_ffn, center=true); top=fillet, bottom=0, $fn=case_fn, fillet_fn=case_ffn, center=true);
translate([pcb_width/2,pcb_depth/2,(case_z+2)/2-floorthick]) rotate([0,0,30]) translate([pcb_width/2,pcb_depth/2,bottom_height+(top_height/2)-floorthick-lip/2]) rotate([0,0,30])
cylinder_fillet_inside(h=top_height+lip, r=(case_diameter/2)-(wallthick/3)-tol, cylinder_fillet_inside(h=top_height+lip, r=(case_diameter/2)-(wallthick/3)-tol,
top=fillet-1, bottom=0, $fn=case_fn, fillet_fn=case_ffn, center=true); top=fillet-1, bottom=0, $fn=case_fn, fillet_fn=case_ffn, center=true);
// translate([pcb_width/2,pcb_depth/2,lip-1-adjust]) rotate([0,0,30]) // io cutout
// cylinder(h=lip+2*adjust, r=(case_diameter/2)-(lip/2)+tol/2, $fn=case_fn);
// io cutout
translate([width,(depth/2)-wallthick-gap,bottom_height-lip+top_height/2-floorthick]) translate([width,(depth/2)-wallthick-gap,bottom_height-lip+top_height/2-floorthick])
cube_fillet_inside([18,depth-2*(wallthick+gap)-1,top_height+lip+2], cube_fillet_inside([18,depth-2*(wallthick+gap)-1,top_height+lip+2],
vertical=[0,0,0,0], top=[0,0,0,0], bottom=[0,0,0,0], $fn=90); vertical=[0,0,0,0], top=[0,0,0,0], bottom=[0,0,0,0], $fn=90);
@@ -1080,14 +1070,12 @@ module case_top(case_design) {
} }
if(case_design == "hex") { if(case_design == "hex") {
difference() { difference() {
translate([pcb_width/2,pcb_depth/2,(case_z+2)/2]) rotate([0,0,30]) translate([pcb_width/2,pcb_depth/2,bottom_height+(top_height/2)-lip/2]) rotate([0,0,30])
cylinder_fillet_inside(h=top_height+lip, r=case_diameter/2, cylinder_fillet_inside(h=top_height+lip, r=case_diameter/2,
top=fillet, bottom=0, $fn=6, fillet_fn=case_ffn, center=true); top=fillet, bottom=0, $fn=6, fillet_fn=case_ffn, center=true);
translate([pcb_width/2,pcb_depth/2,(case_z+2)/2-floorthick]) rotate([0,0,30]) translate([pcb_width/2,pcb_depth/2,bottom_height+(top_height/2)-floorthick-lip/2]) rotate([0,0,30])
cylinder_fillet_inside(h=top_height+lip, r=(case_diameter/2)-(wallthick/3)-tol, cylinder_fillet_inside(h=top_height+lip, r=(case_diameter/2)-(wallthick/3)-tol,
top=fillet-1, bottom=0, $fn=6, fillet_fn=case_ffn, center=true); top=fillet-1, bottom=0, $fn=6, fillet_fn=case_ffn, center=true);
// translate([pcb_width/2,pcb_depth/2,lip-1-adjust]) rotate([0,0,30])
// cylinder(h=lip+2*adjust, r=(case_diameter/2)-(lip/2)+tol/2, $fn=case_fn);
// io cutout // io cutout
translate([width,(depth/2)-wallthick-gap,bottom_height-lip+top_height/2-floorthick]) translate([width,(depth/2)-wallthick-gap,bottom_height-lip+top_height/2-floorthick])
cube_fillet_inside([18,depth-2*(wallthick+gap)-1,top_height+lip+2], cube_fillet_inside([18,depth-2*(wallthick+gap)-1,top_height+lip+2],
@@ -1097,7 +1085,7 @@ module case_top(case_design) {
cube([wallthick-.5,depth-3-2*(floorthick+gap),top_height-floorthick-gap]); cube([wallthick-.5,depth-3-2*(floorthick+gap),top_height-floorthick-gap]);
} }
if(case_design == "snap") { if(case_design == "snap") {
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,case_z+floorthick]) translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,floorthick*1.5+case_z])
cube_fillet_inside([width,depth,floorthick], cube_fillet_inside([width,depth,floorthick],
vertical=[c_fillet,c_fillet,c_fillet,c_fillet], vertical=[c_fillet,c_fillet,c_fillet,c_fillet],
top=[0,0,0,0],bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90); top=[0,0,0,0],bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
@@ -1114,13 +1102,13 @@ module case_top(case_design) {
} }
// snap top outdent // snap top outdent
difference() { difference() {
translate([-2.85,(depth/2)-25-gap-wallthick,case_z+floorthick-3]) translate([-2.5,(depth/2)-25-gap-wallthick,case_z-.5])
rotate([0,45,0]) cube([4,50,4]); rotate([0,45,0]) cube([4,50,4]);
translate([-1,(depth/2)-26-gap-wallthick,case_z+floorthick-6]) translate([-1,(depth/2)-26-gap-wallthick,case_z+floorthick-6])
rotate([0,0,0]) cube([4,52,6]); rotate([0,0,0]) cube([4,52,6]);
} }
difference() { difference() {
translate([width-wallthick-gap-6.5,(depth/2)-25-gap-wallthick,case_z+floorthick-3]) translate([width-wallthick-gap-6.25,(depth/2)-25-gap-wallthick,case_z-.5])
rotate([0,45,0]) cube([4,50,4]); rotate([0,45,0]) cube([4,50,4]);
translate([width-wallthick-gap-6.5,(depth/2)-26-gap-wallthick,case_z+floorthick-6]) translate([width-wallthick-gap-6.5,(depth/2)-26-gap-wallthick,case_z+floorthick-6])
rotate([0,0,0]) cube([4,52,6]); rotate([0,0,0]) cube([4,52,6]);
@@ -1129,13 +1117,13 @@ module case_top(case_design) {
if(case_design == "fitted") { if(case_design == "fitted") {
difference() { difference() {
translate([(width/2)-wallthick-gap, translate([(width/2)-wallthick-gap,
(depth/2)-wallthick-gap,bottom_height+(top_height/2)+floorthick+6.5]) (depth/2)-wallthick-gap,case_z+floorthick/2-(lip)/2])
cube_fillet_inside([width,depth,lip+1*floorthick], cube_fillet_inside([width,depth,lip+floorthick],
vertical=[c_fillet,c_fillet,c_fillet,c_fillet], vertical=[c_fillet,c_fillet,c_fillet,c_fillet],
top=[fillet,fillet,fillet,fillet,fillet], top=[fillet,fillet,fillet,fillet,fillet],
bottom=[0,0,0,0], $fn=90); bottom=[0,0,0,0], $fn=90);
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap, translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,
bottom_height+(top_height/2)+floorthick+4.5]) case_z-floorthick])
cube_fillet_inside([width-wallthick+tol,depth-wallthick+tol,lip+floorthick], cube_fillet_inside([width-wallthick+tol,depth-wallthick+tol,lip+floorthick],
vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1], vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1],
top=[fillet,fillet,fillet,fillet,fillet], top=[fillet,fillet,fillet,fillet,fillet],
@@ -1206,7 +1194,18 @@ module case_top(case_design) {
pcb_hole_y = sbc_data[s[0]][i+1]+pcb_loc_y; pcb_hole_y = sbc_data[s[0]][i+1]+pcb_loc_y;
pcb_hole_size = sbc_data[s[0]][i+2]; pcb_hole_size = sbc_data[s[0]][i+2];
if (pcb_hole_x!=0 && pcb_hole_y!=0) { if (pcb_hole_x!=0 && pcb_hole_y!=0) {
translate([pcb_hole_x,pcb_hole_y,case_z]) standoff(top_standoff); normal_standoff = [top_standoff[0], // diameter
top_height+pcb_loc_z, // height bottom_height-pcb_z
top_standoff[2], // holesize
top_standoff[3], // supportsize
top_standoff[4], // supportheight
top_standoff[5], // 1=countersink, 2=recessed hole, 3=nut holder, 4=blind
top_standoff[6], // standoff style 0=hex, 1=cylinder
top_standoff[7], // enable reverse standoff
top_standoff[8], // enable insert at top of standoff
top_standoff[9], // insert hole dia. mm
top_standoff[10]]; // insert depth mm
translate([pcb_hole_x,pcb_hole_y,case_z]) standoff(normal_standoff);
} }
} }
} }
@@ -1238,16 +1237,16 @@ module case_top(case_design) {
if(pcb_width/pcb_depth >= 1.4) { if(pcb_width/pcb_depth >= 1.4) {
translate([0,pcb_depth,0]) rotate([180,0,0]) { translate([0,pcb_depth,0]) rotate([180,0,0]) {
for (i=[7:3:16]) { for (i=[7:3:16]) {
pcb_hole_x = sbc_data[s[0]][i]-pcb_loc_x; pcb_hole_x = sbc_data[s[0]][i]+pcb_loc_x;
pcb_hole_y = sbc_data[s[0]][i+1]-pcb_loc_y; pcb_hole_y = sbc_data[s[0]][i+1]+pcb_loc_y;
pcb_hole_size = sbc_data[s[0]][i+2]; pcb_hole_size = sbc_data[s[0]][i+2];
if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 7 || i == 13) { if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 7 || i == 13) {
translate([pcb_hole_x-1, pcb_hole_y-(top_standoff[0]/2)-(gap-adjust)-1.4, translate([pcb_hole_x-1, pcb_hole_y-(top_standoff[0]/2)-(gap-adjust)-1.4,-case_z])
-top_height-bottom_height]) cube([2,gap+1.6,top_standoff[1]]); cube([2,gap+1.6,top_standoff[1]]);
} }
if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 10 || i == 16) { if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 10 || i == 16) {
translate([pcb_hole_x-1, pcb_hole_y+(top_standoff[0]/2)-.6+adjust, translate([pcb_hole_x-1, pcb_hole_y+(top_standoff[0]/2)-.6+adjust,-case_z])
-top_height-bottom_height]) cube([2,gap+1.6,top_standoff[1]]); cube([2,gap+1.6,top_standoff[1]]);
} }
} }
} }
@@ -1258,11 +1257,11 @@ module case_top(case_design) {
pcb_hole_y = sbc_data[s[0]][i+1]+pcb_loc_y; pcb_hole_y = sbc_data[s[0]][i+1]+pcb_loc_y;
pcb_hole_size = sbc_data[s[0]][i+2]; pcb_hole_size = sbc_data[s[0]][i+2];
if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 7 || i == 10) { if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 7 || i == 10) {
translate([pcb_hole_x-(top_standoff[0]/2)-gap-adjust-.45,pcb_hole_y-1,bottom_height+adjust]) translate([pcb_hole_x+pcb_loc_x-(top_standoff[0]/2)-gap-adjust-.45,pcb_hole_y-1,bottom_height+adjust])
cube([gap+adjust+1,2,top_standoff[1]]); cube([gap+adjust+1,2,top_standoff[1]]);
} }
if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 13 || i == 16) { if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 13 || i == 16) {
translate([pcb_hole_x+(top_standoff[0]/2)-adjust-.45,pcb_hole_y-1,bottom_height+adjust]) translate([pcb_hole_x+pcb_loc_x+(top_standoff[0]/2)-adjust-.45,pcb_hole_y-1,bottom_height+adjust])
cube([gap+adjust+1,2,top_standoff[1]]); cube([gap+adjust+1,2,top_standoff[1]]);
} }
} }
@@ -1710,7 +1709,7 @@ module open_io() {
rotate([90,0,0]) cylinder(d=10, h=wallthick+(2*adjust)); rotate([90,0,0]) cylinder(d=10, h=wallthick+(2*adjust));
} }
if(type == "pwr2.5_5x7.5") { if(type == "pwr2.5_5x7.5") {
translate([loc_x+2.75,loc_y-gap-wallthick/2+1,bottom_height+pcb_loc_z+2.1]) translate([loc_x+2.75,loc_y-gap-wallthick/2,bottom_height+pcb_loc_z+2.1])
rotate([90,0,0]) cylinder(d=6, h=wallthick+(2*adjust)); rotate([90,0,0]) cylinder(d=6, h=wallthick+(2*adjust));
} }
} }
@@ -1767,7 +1766,7 @@ module open_io() {
&& gpio_opening != "punchout") { && gpio_opening != "punchout") {
for(r=[loc_x+7:4:46+loc_x]) { for(r=[loc_x+7:4:46+loc_x]) {
translate([r,depth-(2*wallthick)-adjust-2,bottom_height+2]) translate([r,depth-(2*wallthick)-adjust-2,bottom_height+2])
cube([2,wallthick+(2*adjust)+1,top_height-floorthick-4]); cube([2,wallthick+(2*adjust)+1,top_height-floorthick-6]);
} }
} }
@@ -1867,27 +1866,27 @@ vu7_height = vu7_pcb_height + 9.75;
cube([sidethick,depth+2*wallthick,cheight]); cube([sidethick,depth+2*wallthick,cheight]);
// right tabs for vu5 attachment // right tabs for vu5 attachment
if(case_style == "vu5") { if(case_style == "vu5") {
translate([(width/2)+((width-vesa)/2)+(vesa/2)-sidethick,depth-39, translate([(width/2)+((width-vesa)/2)+(vesa/2)-sidethick,depth-39,
case_z+80]) rotate([90-vu_rotation[0],180,0]) case_z+80]) rotate([90-vu_rotation[0],180,0])
slab_r([((width-vesa)/2)+4,10,sidethick], [.1,.1,3,3]); slab_r([((width-vesa)/2)+4.5,10,sidethick], [.1,.1,3,3]);
translate([(width/2)+((width-vesa)/2)+(vesa/2)-sidethick,depth-26, translate([(width/2)+((width-vesa)/2)+(vesa/2)-sidethick,depth-26,
case_z+31.5]) rotate([90-vu_rotation[0],180,0]) case_z+31.5]) rotate([90-vu_rotation[0],180,0])
slab_r([((width-vesa)/2)+4,10,sidethick], [.1,.1,3,3]); slab_r([((width-vesa)/2)+4.5,10,sidethick], [.1,.1,3,3]);
translate([(width/2)+((width-vesa)/2)+(vesa/2)-sidethick,depth-41.85-adjust, translate([(width/2)+((width-vesa)/2)+(vesa/2)-sidethick,depth-41.85-adjust,
case_z+79.25]) rotate([90-vu_rotation[0],180,0]) case_z+79.25]) rotate([90-vu_rotation[0],180,0])
difference() { difference() {
cube([sidethick,10,sidethick]); cube([sidethick,10,sidethick]);
translate([0,-adjust,sidethick]) rotate([0,45,0]) translate([0,-adjust,sidethick]) rotate([0,45,0])
cube([2*sidethick,10+(2*adjust),sidethick]); cube([2*sidethick,10+(2*adjust),sidethick]);
} }
translate([(width/2)+((width-vesa)/2)+(vesa/2)-sidethick,depth-28.85-adjust, translate([(width/2)+((width-vesa)/2)+(vesa/2)-sidethick,depth-28.85-adjust,
case_z+30.75]) rotate([90-vu_rotation[0],180,0]) case_z+30.75]) rotate([90-vu_rotation[0],180,0])
difference() { difference() {
cube([sidethick,10,sidethick]); cube([sidethick,10,sidethick]);
translate([0,-adjust,sidethick]) rotate([0,45,0]) translate([0,-adjust,sidethick]) rotate([0,45,0])
cube([2*sidethick,10+(2*adjust),sidethick]); cube([2*sidethick,10+(2*adjust),sidethick]);
} }
} }
// right tabs for vu7 attachment // right tabs for vu7 attachment
if(case_style == "vu7") { if(case_style == "vu7") {
@@ -2023,7 +2022,7 @@ vu7_height = vu7_pcb_height + 9.75;
if(side == "left") { if(side == "left") {
// vu5 shape and back cut // vu5 shape and back cut
if(case_style == "vu5") { if(case_style == "vu5") {
translate([-sidethick-adjust+1,-.6,case_z+sidethick+2.5]) translate([-sidethick-adjust,-.6,case_z+sidethick+2.5])
rotate([0,-90,0]) rotate([0,-90,0])
linear_extrude(height = 2*sidethick) linear_extrude(height = 2*sidethick)
polygon(points = [ [-sidethick,-sidethick-wallthick-5], polygon(points = [ [-sidethick,-sidethick-wallthick-5],
@@ -2036,14 +2035,14 @@ vu7_height = vu7_pcb_height + 9.75;
cube_fillet_inside([10,50,110],vertical=[v_fillet,v_fillet,v_fillet,v_fillet], cube_fillet_inside([10,50,110],vertical=[v_fillet,v_fillet,v_fillet,v_fillet],
top=[0,0,0,0],bottom=[3,3,3,3], $fn=90); top=[0,0,0,0],bottom=[3,3,3,3], $fn=90);
// tab holes // tab holes
translate([width/2-(vesa/2)-3,depth-36.75,case_z+vu7_height-19.75]) translate([width/2-(vesa/2)-3,depth-36.75,case_z+75])
rotate([90+vu_rotation[0],0,0]) cylinder(d=3, h=sidethick+1); rotate([90+vu_rotation[0],0,0]) cylinder(d=3, h=sidethick+1);
translate([width/2-(vesa/2)-3,depth-24.25,case_z+18]) translate([width/2-(vesa/2)-3,depth-24.25,case_z+26.75])
rotate([90+vu_rotation[0],0,0]) cylinder(d=3, h=sidethick+1); rotate([90+vu_rotation[0],0,0]) cylinder(d=3, h=sidethick+1);
} }
// vu7 shape and back cut // vu7 shape and back cut
if(case_style == "vu7") { if(case_style == "vu7") {
translate([-sidethick-adjust+1,-.6,case_z+sidethick+2.5]) translate([-sidethick-adjust,-.6,case_z+sidethick+2.5])
rotate([0,-90,0]) rotate([0,-90,0])
linear_extrude(height = 2*sidethick) linear_extrude(height = 2*sidethick)
polygon(points = [ [-sidethick,-sidethick-wallthick-5], polygon(points = [ [-sidethick,-sidethick-wallthick-5],

View File

@@ -2356,8 +2356,8 @@ module microusb_open() {
translate([0,0,.5])rotate([90,0,0]) translate([0,0,.5])rotate([90,0,0])
hull() { hull() {
translate([6,1.5,-5]) cylinder(d=3.5,h=8); translate([6,1.5,-5]) cylinder(d=3.5,h=12);
translate([1,1.5,-5]) cylinder(d=3.5,h=8); translate([1,1.5,-5]) cylinder(d=3.5,h=12);
} }
} }