added db9 model and mask, n2l sidewall support changed, work on n2l_gpio and h3_ultimate2 cases, updated readme.md.
This commit is contained in:
37
README.md
37
README.md
@@ -323,6 +323,13 @@ description: circlular geometry.
|
||||
*uses:* data_1=scale, data_2=height, data_3=file
|
||||
|
||||
|
||||
**keyhole**
|
||||
|
||||
*description:* enclosed keyhole
|
||||
|
||||
*uses:* data4=[head_dia, slot_width, slot_length, floor_thick]
|
||||
|
||||
|
||||
|
||||
#### Add class only “types”
|
||||
|
||||
@@ -438,7 +445,15 @@ description: circlular geometry.
|
||||
|
||||
*description:* horizontal or vertical vent openings
|
||||
|
||||
*uses:* size_x=open_width, size_y=open_length, size_z=thick, data_4=gap, data_1=rows, data_3=columns,
|
||||
*uses:* size_x=open_width, size_y=open_length, size_z=thick, data_1=rows, data_2=columns,
|
||||
data_3=orientation("vertical","horizontal"), data_4=gap
|
||||
|
||||
|
||||
**vent_hex**(cells_x, cells_y, cell_size, cell_spacing, orientation)
|
||||
|
||||
*description:* horizontal or vertical hex vent openings
|
||||
|
||||
*uses:* size_x=cells_x, size_y=cells_y, size_z=thick, data_1=cell_size, data_2=cell_spacing,
|
||||
data_3=orientation("vertical","horizontal")
|
||||
|
||||
|
||||
@@ -593,6 +608,26 @@ data_3=orientation("vertical","horizontal")
|
||||
*uses:* none
|
||||
|
||||
|
||||
**h3_port_extender**
|
||||
|
||||
*description:* h3 usb port extender model
|
||||
|
||||
*uses:* data_3="header" or "remote"
|
||||
|
||||
|
||||
**hk_pwr_button**
|
||||
|
||||
*description:* hk power button model
|
||||
|
||||
*uses:* none
|
||||
|
||||
|
||||
**dsub**
|
||||
|
||||
*description:* d-sub connectors
|
||||
|
||||
*uses:* data4=[pin, type("male" or "female"), floor_thick]
|
||||
|
||||
|
||||
#### Platter class “types”
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1114,14 +1114,22 @@ module case_bottom(case_design) {
|
||||
pcb_hole_y = sbc_data[s[0]][i+1]+pcb_loc_y;
|
||||
pcb_hole_size = sbc_data[s[0]][i+2];
|
||||
if(pcb_hole_x!=0 && pcb_hole_y!=0) {
|
||||
if(i == 7) {
|
||||
if(i == 7 && sbc_model != "n2l") {
|
||||
translate([pcb_hole_x-(bottom_standoff[0]/2)-2.6+adjust, pcb_hole_y-gap,0])
|
||||
cube([gap+1.6,2,bottom_height-pcb_z+pcb_loc_z+bottom_rear_left]);
|
||||
}
|
||||
if(i == 10) {
|
||||
if (i == 7 && sbc_model == "n2l") {
|
||||
translate([pcb_hole_x-1, pcb_hole_y-(bottom_standoff[0]/2)-(gap+adjust)-1,0])
|
||||
cube([2,gap+1.6,bottom_height-pcb_z+pcb_loc_z+bottom_rear_left]);
|
||||
}
|
||||
if(i == 10 && sbc_model != "n2l") {
|
||||
translate([pcb_hole_x-(bottom_standoff[0]/2)-2.6+adjust, pcb_hole_y-gap,0])
|
||||
cube([gap+1.6,2,bottom_height-pcb_z+pcb_loc_z+bottom_front_left]);
|
||||
}
|
||||
if(i == 10 && sbc_model == "n2l") {
|
||||
translate([pcb_hole_x-1, pcb_hole_y+(bottom_standoff[0]/2)-.6+adjust,0])
|
||||
cube([2,gap+1.6,bottom_height-pcb_z+pcb_loc_z+bottom_front_left]);
|
||||
}
|
||||
if (i == 13) {
|
||||
translate([pcb_hole_x+(bottom_standoff[0]/2)-.5+adjust, pcb_hole_y-gap,0])
|
||||
cube([gap+1.5,2,bottom_height-pcb_z+pcb_loc_z+bottom_rear_right]);
|
||||
@@ -1687,14 +1695,24 @@ module case_top(case_design) {
|
||||
pcb_hole_y = sbc_data[s[0]][i+1]+pcb_loc_y;
|
||||
pcb_hole_size = sbc_data[s[0]][i+2];
|
||||
if(pcb_hole_x!=0 && pcb_hole_y!=0) {
|
||||
if (i == 7) {
|
||||
if (i == 7 && sbc_model != "n2l") {
|
||||
translate([pcb_hole_x-(top_standoff[0]/2)-gap-adjust-.45,pcb_hole_y-1,
|
||||
bottom_height-top_rear_left]) cube([gap+adjust+1,2,top_height+top_rear_left]);
|
||||
}
|
||||
if (i == 10) {
|
||||
if (i == 7 && sbc_model == "n2l") {
|
||||
translate([pcb_hole_x-1, pcb_hole_y-(top_standoff[0]/2)-(gap-adjust)-1.4,
|
||||
case_z-top_height-top_rear_left]) cube([2,gap+1.6,top_height+top_rear_left]);
|
||||
|
||||
}
|
||||
if (i == 10 && sbc_model != "n2l") {
|
||||
translate([pcb_hole_x-(top_standoff[0]/2)-gap-adjust-.45,pcb_hole_y-1,
|
||||
bottom_height-top_front_left]) cube([gap+adjust+1,2,top_height+top_front_left]);
|
||||
}
|
||||
if (i == 10 && sbc_model == "n2l") {
|
||||
translate([pcb_hole_x-1, pcb_hole_y+(top_standoff[0]/2)-.6+adjust,case_z-top_height-top_front_left])
|
||||
cube([2,gap+1.6,top_height+top_front_left]);
|
||||
|
||||
}
|
||||
if (i == 13) {
|
||||
translate([pcb_hole_x+(top_standoff[0]/2)-adjust-.45,pcb_hole_y-1,
|
||||
bottom_height-top_rear_right]) cube([gap+adjust+1,2,top_height+top_rear_right]);
|
||||
|
||||
@@ -467,7 +467,7 @@ accessory_data = [
|
||||
["n2l_gpio",
|
||||
"sub","vent",22,-1.99,16,"top",[0,0,0],["sbc-case_z",true,true,true],2,9,8,1,10,"vertical",1, // vent opening
|
||||
"sub","fan",20,8,24.5,"top",[0,0,0],["sbc-case_z",true,true,true],40,0,6,2,0,"",0, // sub fan opening
|
||||
"sub","rectangle",9,49,9.9,"top",[0,0,0],["sbc",true,true,true],54,18,20,0,0,"vertical",[1,1,1,1]], // gpio opening
|
||||
"sub","rectangle",8.75,49,9.9,"top",[0,0,0],["sbc",true,true,true],55.5,18,20,0,0,"vertical",[1,1,1,1]], // gpio opening
|
||||
|
||||
// Odroid-N2+
|
||||
// internal fan
|
||||
@@ -899,17 +899,27 @@ accessory_data = [
|
||||
"model","hd25",98,110,2,"bottom",[90,0,-90],["case",true,true,false],0,0,0,7,0,"",0], // model 2.5 hd
|
||||
|
||||
["h3_ultimate2",
|
||||
"sub","vent_hex",111.5,10,2+12*sqrt(8/3),"top",[0,0,90],["case",true,false,false],17,4,4,9,3,"vertical",0, // vent opening
|
||||
"sub","vent_hex",111.5,10,2,"bottom",[0,0,90],["case",true,false,false],17,1,4,9,3,"vertical",0, // vent opening
|
||||
"sub","vent_hex",112,10,2+12*sqrt(8/3),"top",[0,0,90],["case",true,false,false],17,4,4,9,3,"vertical",0, // vent opening
|
||||
"sub","vent_hex",112,10,2,"bottom",[0,0,90],["case",true,false,false],17,1,4,9,3,"vertical",0, // vent opening
|
||||
"suball","fan",0,25,3,"top",[0,270,0],["case",false,false,false],60,0,6,1,0,"",0, // sub fan opening
|
||||
"model","fan_cover",-4,25,3,"top",[0,270,0],["case",false,false,false],60,0,3,2,0,"",0, // model fan cover
|
||||
"platter","fan_cover",-50,50,0,"top",[0,0,0],["case",false,false,false],60,0,3,2,0,"",0, // model fan cover
|
||||
"add2","standoff",78,127,8.65,"top",[-90,0,0],["case",false,false,true],0,0,0,0,0,0,[5.75,10,3.2,10,0.01,0,0,1,0,0,0], // standoff
|
||||
"add2","standoff",78,127,36.2,"top",[-90,0,0],["case",false,false,true],0,0,0,0,0,0,[5.75,10,3.2,6.5,0.01,0,0,1,0,0,0], // standoff
|
||||
"platter","fan_cover",-100,150,0,"top",[0,0,0],["case",false,false,false],60,0,3,2,0,"",0, // model fan cover
|
||||
"sub","round",3.81,17.78,35,"top",[0,0,0],["sbc-case_z",true,true,true],6.5,0,19,0,0,"",0, // sub screw hole
|
||||
"sub","round",3.81,106.19,35,"top",[0,0,0],["sbc-case_z",true,true,true],6.5,0,19,0,0,"",0, // sub screw hole
|
||||
"sub","round",106.04,24.77,35,"top",[0,0,0],["sbc-case_z",true,true,true],6.5,0,19,0,0,"",0, // sub screw hole
|
||||
"sub","round",106.04,106.2,35,"top",[0,0,0],["sbc-case_z",true,true,true],6.5,0,19,0,0,"",0, // sub screw hole
|
||||
"sub","rectangle",-4,100.5,3,"top",[0,0,0],["sbc-case_z",true,true,true],14,4,20,0,0,"",[1,1,1,1], // sub rectangle
|
||||
"sub","rectangle",100.5,17,30,"top",[0,0,0],["sbc-case_z",true,true,true],9,4,10,0,0,"",[1,1,1,1], // sub rectangle
|
||||
"model","standoff",78,127,8.65,"top",[-90,0,0],["case",false,false,true],0,0,0,0,0,0,[5.75,10,3.2,10,0.01,0,0,1,0,0,0], // standoff
|
||||
"model","standoff",78,127,36.2,"top",[-90,0,0],["case",false,false,true],0,0,0,0,0,0,[5.75,10,3.2,6.5,0.01,0,0,1,0,0,0], // standoff
|
||||
"platter","standoff",-100,145,0,"top",[0,0,0],["case",false,false,true],0,0,0,0,0,0,[5.75,10,3.4,6.5,0.001,0,0,1,0,0,0], // standoff
|
||||
"platter","standoff",-75,145,0,"top",[0,0,0],["case",false,false,true],0,0,0,0,0,0,[5.75,10,3.4,6.5,0.001,0,0,1,0,0,0], // standoff
|
||||
"model","h3_port_extender",31,117,4,"top",[0,0,-90],["case",true,false,true],0,0,0,0,0,"remote",0, // port extender model
|
||||
"sub","h3_port_extender",31,117,4,"top",[0,0,-90],["case",true,false,true],0,0,0,0,0,"remote",0, // port extender model
|
||||
"model","hk_pwr_button",11,114,53,"top",[0,0,180],["case",false,false,true],0,0,0,0,0,0,0, // hk pwr button model
|
||||
"sub","hk_pwr_button",11,114,53,"top",[0,0,0],["case",false,false,true],0,0,0,0,0,0,0, // hk pwr button model
|
||||
"model","dsub",12,-1,48,"top",[0,90,0],["case",false,false,false],0,0,0,0,0,0,[9,"male",4], // db9 model
|
||||
"sub","dsub",12,-1,48,"top",[0,90,0],["case",false,false,false],0,0,0,0,0,0,[9,"male",4], // db9 model
|
||||
"add1","access_port",19,20,-0.01,"bottom",[0,0,0],["sbc",true,true,true], 81,100,2,0,0,"portrait",0, // access port
|
||||
"model","access_cover",19,20,-0.01,"bottom",[0,0,0],["sbc",true,true,false],81,100,2,0,0,"portrait",0, // access port cover
|
||||
"platter","access_cover",-110,30,0,"bottom",[0,0,0],["case",false,false,false],81,100,2,0,0,"portrait",0], // access port cover
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
added mask for microsdcard2
|
||||
20221207 version 2.0.3 added double_stacked_usb3-usb2, hd35_vtab(side) and supporting code
|
||||
2023xxxx version 2.0.x added h3_port_extender(style, mask = false), hk_pwr_button(mask = false), keyhole(keysize, mask = false),
|
||||
vent_hex(cells_x, cells_y, cell_size, cell_spacing, orientation) and supporting code
|
||||
vent_hex(cells_x, cells_y, cell_size, cell_spacing, orientation) and supporting code, dsub(dsubsize, mask = false)
|
||||
|
||||
see https://github.com/hominoids/SBC_Case_Builder
|
||||
|
||||
@@ -124,6 +124,7 @@
|
||||
hk_pwr_button(mask = false)
|
||||
keyhole(keysize, mask = false)
|
||||
vent_hex(cells_x, cells_y, cell_size, cell_spacing, orientation)
|
||||
dsub(dsubsize, mask = false)
|
||||
*/
|
||||
|
||||
use <./lib/fillets.scad>;
|
||||
@@ -284,6 +285,9 @@ module add(type,loc_x,loc_y,loc_z,face,rotation,size_x,size_y,size_z,data_1,data
|
||||
if(type == "keyhole") {
|
||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) keyhole(data_4);
|
||||
}
|
||||
if(type == "dsub") {
|
||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) dsub(data_4);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -347,6 +351,9 @@ module sub(type,loc_x,loc_y,loc_z,face,rotation,size_x,size_y,size_z,data_1,data
|
||||
if(type == "hk_pwr_button") {
|
||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) hk_pwr_button(true);
|
||||
}
|
||||
if(type == "dsub") {
|
||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) dsub(data_4, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3543,13 +3550,13 @@ module vent_hex(cells_x, cells_y, thickness, cell_size, cell_spacing, orientatio
|
||||
for (ix = [0 : ceil(cells_x/2)-1]) {
|
||||
for (iy = [0 : 2 : cells_y-1]) {
|
||||
translate([ix*xs, iy*ys,0]) rotate([0,0,90])
|
||||
cylinder(r=cell_size/sqrt(3), h=thickness, $fn=6);
|
||||
cylinder(r=cell_size/sqrt(3), h=thickness, $fn=6);
|
||||
}
|
||||
}
|
||||
for (ix = [0 : (cells_x/2)-1]) {
|
||||
for (iy = [1 : 2 : cells_y-1]) {
|
||||
translate([(ix+0.5)*xs, iy*ys,0]) rotate([0,0,90])
|
||||
cylinder(r=cell_size/sqrt(3), h=thickness, $fn=6);
|
||||
cylinder(r=cell_size/sqrt(3), h=thickness, $fn=6);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3693,3 +3700,27 @@ module keyhole(keysize, mask = false) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// d-sub connector
|
||||
module dsub(dsubsize, mask = false) {
|
||||
|
||||
adjust=.01;
|
||||
$fn = 90;
|
||||
|
||||
if(mask == true) {
|
||||
union() {
|
||||
translate([-1, 1, -.75]) rotate([90,0,0]) slab_r([19,10.5,10], [4,4,4,4]);
|
||||
translate([-4, 1, 4.5]) rotate([90,0,0]) cylinder(h=10, d=3);
|
||||
translate([21, 1, 4.5]) rotate([90,0,0]) cylinder(h=10, d=3);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(dsubsize[0] == 9 && dsubsize[1] == "female") {
|
||||
translate([8.5,0.4,4.5]) rotate([90,0,0]) import("./stl/db9_f.stl");
|
||||
}
|
||||
if(dsubsize[0] == 9 && dsubsize[1] == "male") {
|
||||
translate([8.5,0.4,4.5]) rotate([90,0,0]) import("./stl/db9_m.stl");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BIN
stl/db9_f.stl
Normal file
BIN
stl/db9_f.stl
Normal file
Binary file not shown.
BIN
stl/db9_m.stl
Normal file
BIN
stl/db9_m.stl
Normal file
Binary file not shown.
Reference in New Issue
Block a user