added round case

This commit is contained in:
Edward Kisiel
2022-07-26 18:20:54 -04:00
parent ba027dbae4
commit f4c9078d85
2 changed files with 27 additions and 26 deletions

View File

@@ -295,7 +295,7 @@ case_data = [
[6.75,5,3.6,10,4,1,0,0,0,4.5,5.1]], // bottom_ext_standoff [6.75,5,3.6,10,4,1,0,0,0,4.5,5.1]], // bottom_ext_standoff
["c1+_round","c1+","round","none", // case_name,sbc_model,case_design,case_style ["c1+_round","c1+","round","none", // case_name,sbc_model,case_design,case_style
0,0,0,0,0,4,2, // pcb_loc_x,pcb_loc_y,pcb_loc_z,case_offset_x,case_offset_y,case_offset_tz,case_offset_bz, 0,0,0,0,0,2,0, // pcb_loc_x,pcb_loc_y,pcb_loc_z,case_offset_x,case_offset_y,case_offset_tz,case_offset_bz,
3,2,3,1.5,[0,0], // wallthick,floorthick,sidethick,gap,fillet 3,2,3,1.5,[0,0], // wallthick,floorthick,sidethick,gap,fillet
false,false,false,true,false, // indents,sidewall_support,sbc_top_standoffs,sbc_bottom_standoffs,case_ext_standoffs false,false,false,true,false, // indents,sidewall_support,sbc_top_standoffs,sbc_bottom_standoffs,case_ext_standoffs
false,"none","fan","none","true", // sata_punchout,gpio_opening,cooling,exhaust_vents,mode false,"none","fan","none","true", // sata_punchout,gpio_opening,cooling,exhaust_vents,mode
@@ -303,8 +303,8 @@ case_data = [
[6.75,5,3.6,10,4,1,0,0,0,4.5,5.1], // bottom_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,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 [6.75,5,3.6,10,4,1,0,0,0,4.5,5.1], // bottom_ext_standoff
"sub","round",49.5,-15,12.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,6.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
// Odroid-C2 // Odroid-C2
@@ -533,7 +533,7 @@ case_data = [
[6.75,5,3.6,10,4,1,0,0,0,4.5,5.1]], // bottom_ext_standoff [6.75,5,3.6,10,4,1,0,0,0,4.5,5.1]], // bottom_ext_standoff
["c2_round","c2","round","none", // case_name,sbc_model,case_design,case_style ["c2_round","c2","round","none", // case_name,sbc_model,case_design,case_style
0,0,0,0,0,4,2, // pcb_loc_x,pcb_loc_y,pcb_loc_z,case_offset_x,case_offset_y,case_offset_tz,case_offset_bz, 0,0,0,0,0,2,0, // pcb_loc_x,pcb_loc_y,pcb_loc_z,case_offset_x,case_offset_y,case_offset_tz,case_offset_bz,
3,2,3,1.5,[0,0], // wallthick,floorthick,sidethick,gap,fillet 3,2,3,1.5,[0,0], // wallthick,floorthick,sidethick,gap,fillet
false,false,false,true,false, // indents,sidewall_support,sbc_top_standoffs,sbc_bottom_standoffs,case_ext_standoffs false,false,false,true,false, // indents,sidewall_support,sbc_top_standoffs,sbc_bottom_standoffs,case_ext_standoffs
false,"none","fan","none","true", // sata_punchout,gpio_opening,cooling,exhaust_vents,mode false,"none","fan","none","true", // sata_punchout,gpio_opening,cooling,exhaust_vents,mode
@@ -541,8 +541,8 @@ case_data = [
[6.75,5,3.6,10,4,1,0,0,0,4.5,5.1], // bottom_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,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 [6.75,5,3.6,10,4,1,0,0,0,4.5,5.1], // bottom_ext_standoff
"sub","round",49.5,-15,12.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,6.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
// Odroid-C4 // Odroid-C4
@@ -781,7 +781,7 @@ case_data = [
[6.75,5,3.6,10,4,1,0,0,0,4.5,5.1]], // bottom_ext_standoff [6.75,5,3.6,10,4,1,0,0,0,4.5,5.1]], // bottom_ext_standoff
["c4_round","c4","round","none", // case_name,sbc_model,case_design,case_style ["c4_round","c4","round","none", // case_name,sbc_model,case_design,case_style
0,0,0,0,0,0,0, // pcb_loc_x,pcb_loc_y,pcb_loc_z,case_offset_x,case_offset_y,case_offset_tz,case_offset_bz, 0,0,0,0,0,2,0, // pcb_loc_x,pcb_loc_y,pcb_loc_z,case_offset_x,case_offset_y,case_offset_tz,case_offset_bz,
3,2,3,1.5,[0,0], // wallthick,floorthick,sidethick,gap,fillet 3,2,3,1.5,[0,0], // wallthick,floorthick,sidethick,gap,fillet
false,false,false,true,false, // indents,sidewall_support,sbc_top_standoffs,sbc_bottom_standoffs,case_ext_standoffs false,false,false,true,false, // indents,sidewall_support,sbc_top_standoffs,sbc_bottom_standoffs,case_ext_standoffs
false,"none","fan","none","true", // sata_punchout,gpio_opening,cooling,exhaust_vents,mode false,"none","fan","none","true", // sata_punchout,gpio_opening,cooling,exhaust_vents,mode
@@ -789,8 +789,8 @@ case_data = [
[6.75,5,3.6,10,4,1,0,0,0,4.5,5.1], // bottom_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,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 [6.75,5,3.6,10,4,1,0,0,0,4.5,5.1], // bottom_ext_standoff
"suball","round",10.5,-2,14.5,"top",[90,0,0],11,0,18,0,0,"",0, // sub power plug hole "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,3.99,"top",[0,0,0],21,10,15.5,0,0,"vertical",[1,1,1,1]], // sub hdmi opening "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-XU4 // Odroid-XU4
@@ -1120,9 +1120,8 @@ case_data = [
[6.75,18,2.5,10,4,4,0,1,0,4.5,5.1], // top_ext_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 [6.75,5,3.6,10,4,1,0,0,0,4.5,5.1], // bottom_ext_standoff
"sub","vent",25,25,44,"top",[0,0,0],10,2,4,6,6,"horizontal",1, // sub vent "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 "sub","vent",25,50,44,"top",[0,0,0],10,2,4,6,6,"horizontal",1], // sub vent
// Odroid-M1 // Odroid-M1
["m1_panel","m1","panel","none", // case_name, sbc_model, case_design, case_style ["m1_panel","m1","panel","none", // case_name, sbc_model, case_design, case_style
5,0,0,10,0,0,0, // pcb_loc_x,pcb_loc_y,pcb_loc_z,case_offset_x,case_offset_y,case_offset_tz,case_offset_bz, 5,0,0,10,0,0,0, // pcb_loc_x,pcb_loc_y,pcb_loc_z,case_offset_x,case_offset_y,case_offset_tz,case_offset_bz,

View File

@@ -46,9 +46,9 @@ include <./sbc_case_builder.cfg>;
/* [Board and View] */ /* [Board and View] */
// case_name to load from sbc_case_builder.cfg // case_name to load from sbc_case_builder.cfg
case_name = "rpi3b+_stacked"; // [c1+_shell,c1+_shell_boombox,c1+_panel,c1+_panel_boombox,c1+_panel_lcd3.5,c1+_desktop_lcd3.5,c1+_stacked,c1+_tray,c1+_tray_sides,c1+_tray_boombox,c1+_tray_vu5,c1+_tray_vu7,c2_shell,c2_shell_boombox,c2_panel,c2_panel_boombox,c2_panel_lcd3.5,c2_desktop_lcd3.5,c2_deskboom_lcd3.5,c2_stacked,c2_tray,c2_tray_sides,c2_tray_boombox,c2_tray_vu5,c2_tray_vu7,c4_shell,c4_shell_boombox,c4_shell_vu7c,c4_panel,c4_panel_lcd3.5,c4_desktop_lcd3.5,c4_deskboom_lcd3.5,c4_panel_boombox,c4_stacked,c4_tray,c4_tray_sides,c4_tray_boombox,c4_tray_vu5,c4_tray_vu7,xu4_shell,xu4_panel,xu4_stacked,xu4_tray,xu4_tray_sides,xu4_tray_vu5,xu4_tray_vu7,xu4q_shell,xu4q_panel,xu4q_stacked,xu4q_tray,xu4q_tray_sides,xu4q_tray_vu5,xu4q_tray_vu7,n1_shell,n1_panel,n1_stacked,n1_tray,n1_tray_sides,n1_tray_vu5,n1_tray_vu7,n2_panel,n2_tray,n2_tray_sides,n2_tray_vu5,n2_tray_vu7,n2+_panel,n2+_tray,n2+_tray_sides,n2+_tray_vu5,n2+_tray_vu7,n2+_tray_vu7_fan,m1_panel,m1_tray,m1_tray_drive,m1_tray_sides,m1_tray_vu5,m1_tray_vu7,h2_shell,h2_panel,h2_stacked,h2_tray,h2_tray_sides,h2_tray_vu5,h2_tray_vu7,h2_tray_router,h2_router_station,h2_lowboy,h2_lowboy_router,h2_shell_router,h2_shell_router-ssd,hc4_shell,hc4_panel,hc4_stacked,hc4_tray,hc4_tray_sides,hc4_tray_vu5,hc4_tray_vu7,hc4_tray_drivebox2.5,hc4_shell_drivebox2.5,hc4_shell_drivebox2.5v,hc4_shell_drivebox3.5,jetsonnano_shell,jetsonnano_panel,jetsonnano_stacked,jetsonnano_tray,jetsonnano_tray_sides,rockpro64_shell,rockpro64_panel,rockpro64_stacked,rockpro64_tray,rockpro64_tray_sides,show2_shell,rpi3b+_shell,rpi3b+_panel,rpi3b+_stacked,rpi3b+_tray,test] case_name = "c4_round"; // [c1+_shell,c1+_shell_boombox,c1+_panel,c1+_panel_boombox,c1+_panel_lcd3.5,c1+_desktop_lcd3.5,c1+_stacked,c1+_tray,c1+_tray_sides,c1+_tray_boombox,c1+_tray_vu5,c1+_tray_vu7,c2_shell,c2_shell_boombox,c2_panel,c2_panel_boombox,c2_panel_lcd3.5,c2_desktop_lcd3.5,c2_deskboom_lcd3.5,c2_stacked,c2_tray,c2_tray_sides,c2_tray_boombox,c2_tray_vu5,c2_tray_vu7,c4_shell,c4_shell_boombox,c4_shell_vu7c,c4_panel,c4_panel_lcd3.5,c4_desktop_lcd3.5,c4_deskboom_lcd3.5,c4_panel_boombox,c4_stacked,c4_tray,c4_tray_sides,c4_tray_boombox,c4_tray_vu5,c4_tray_vu7,xu4_shell,xu4_panel,xu4_stacked,xu4_tray,xu4_tray_sides,xu4_tray_vu5,xu4_tray_vu7,xu4q_shell,xu4q_panel,xu4q_stacked,xu4q_tray,xu4q_tray_sides,xu4q_tray_vu5,xu4q_tray_vu7,n1_shell,n1_panel,n1_stacked,n1_tray,n1_tray_sides,n1_tray_vu5,n1_tray_vu7,n2_panel,n2_tray,n2_tray_sides,n2_tray_vu5,n2_tray_vu7,n2+_panel,n2+_tray,n2+_tray_sides,n2+_tray_vu5,n2+_tray_vu7,n2+_tray_vu7_fan,m1_panel,m1_tray,m1_tray_drive,m1_tray_sides,m1_tray_vu5,m1_tray_vu7,h2_shell,h2_panel,h2_stacked,h2_tray,h2_tray_sides,h2_tray_vu5,h2_tray_vu7,h2_tray_router,h2_router_station,h2_lowboy,h2_lowboy_router,h2_shell_router,h2_shell_router-ssd,hc4_shell,hc4_panel,hc4_stacked,hc4_tray,hc4_tray_sides,hc4_tray_vu5,hc4_tray_vu7,hc4_tray_drivebox2.5,hc4_shell_drivebox2.5,hc4_shell_drivebox2.5v,hc4_shell_drivebox3.5,jetsonnano_shell,jetsonnano_panel,jetsonnano_stacked,jetsonnano_tray,jetsonnano_tray_sides,rockpro64_shell,rockpro64_panel,rockpro64_stacked,rockpro64_tray,rockpro64_tray_sides,show2_shell,rpi3b+_shell,rpi3b+_panel,rpi3b+_stacked,rpi3b+_tray,test]
// viewing mode "platter", "model", "debug" // viewing mode "platter", "model", "debug"
view = "platter"; // [platter, model, debug] view = "model"; // [platter, model, debug]
/* [Adjustments] */ /* [Adjustments] */
// enable highlight for subtarctive geometry (true or false) // enable highlight for subtarctive geometry (true or false)
@@ -68,6 +68,9 @@ move_front = 0;
// move rear mm in model view or < 0 = off // move rear mm in model view or < 0 = off
move_rear = 0; move_rear = 0;
case_fn = 360; // circle segments for round cases
case_ffn = 90; // circle segments for fillet of round cases
c = search([case_name],case_data); c = search([case_name],case_data);
case_design = case_data[c[0]][2]; // "shell", "panel", "stacked", "tray", "round" case_design = case_data[c[0]][2]; // "shell", "panel", "stacked", "tray", "round"
@@ -116,8 +119,9 @@ top_height = pcb_tmaxz+floorthick+case_offset_tz;
bottom_height = pcb_bmaxz+floorthick+case_offset_bz; bottom_height = pcb_bmaxz+floorthick+case_offset_bz;
case_z = bottom_height+top_height; case_z = bottom_height+top_height;
case_diameter = width*1.14;
lip = 5; lip = 5;
case_diameter = width*1.14;
tol = .25; tol = .25;
top_standoff = [case_data[c[0]][26][0], // diameter top_standoff = [case_data[c[0]][26][0], // diameter
@@ -500,9 +504,9 @@ module case_bottom(case_design) {
r=(case_diameter/2)-lip/2,top=0, bottom=c_fillet-1, $fn=case_fn, r=(case_diameter/2)-lip/2,top=0, bottom=c_fillet-1, $fn=case_fn,
fillet_fn=case_ffn, center=true); fillet_fn=case_ffn, center=true);
difference() { difference() {
translate([pcb_width/2,pcb_depth/2,(bottom_height/2)-floorthick/2]) rotate([0,0,30]) translate([pcb_width/2,pcb_depth/2,bottom_height-lip]) rotate([0,0,30])
cylinder(h=lip+adjust, r=(case_diameter/2)+1, $fn=case_fn); cylinder(h=lip+adjust, r=(case_diameter/2)+1, $fn=case_fn);
translate([pcb_width/2,pcb_depth/2,(bottom_height/2)-adjust-floorthick/2]) rotate([0,0,30]) translate([pcb_width/2,pcb_depth/2,bottom_height-lip]) rotate([0,0,30])
cylinder(h=lip+2*adjust, r=(case_diameter/2)-lip/4, $fn=case_fn); cylinder(h=lip+2*adjust, r=(case_diameter/2)-lip/4, $fn=case_fn);
} }
} }
@@ -963,23 +967,21 @@ module case_top(case_design) {
} }
if(case_design == "round") { if(case_design == "round") {
difference() { difference() {
#translate([pcb_width/2,pcb_depth/2,top_height]) rotate([0,0,30]) translate([pcb_width/2,pcb_depth/2,case_z/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,top_height-floorthick]) rotate([0,0,30]) translate([pcb_width/2,pcb_depth/2,(case_z/2)-floorthick]) rotate([0,0,30])
cylinder_fillet_inside(h=top_height, r=(case_diameter/2)-lip/2, cylinder_fillet_inside(h=top_height+lip, r=(case_diameter/2)-lip/2,
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]) translate([pcb_width/2,pcb_depth/2,lip-1-adjust]) rotate([0,0,30])
cylinder(h=lip+2*adjust, r=(case_diameter/2)-(lip/4)+tol/2, $fn=case_fn); 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+top_height/2-floorthick+1-lip/2]) 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], cube_fillet_inside([18,depth-2*(wallthick+gap)-1,top_height+lip],
vertical=[0,0,0,0], vertical=[0,0,0,0], top=[0,0,0,0], bottom=[0,0,0,0], $fn=90);
top=[0,0,0,0],
bottom=[0,0,0,0], $fn=90);
} }
translate([width-8.49,(depth/2)-32.5,bottom_height]) translate([width-8.5+adjust,(depth/2)-32.5,bottom_height])
cube([wallthick-.5,56,top_height-1]); cube([wallthick-.5,depth-2-2*(floorthick+gap),top_height-floorthick-gap]);
} }
for (i=[30:14:len(case_data[c[0]])-1]) { for (i=[30:14:len(case_data[c[0]])-1]) {
class = case_data[c[0]][i]; class = case_data[c[0]][i];