finished library documentation update, added fan and hd masks and other fixes
This commit is contained in:
18
README.md
18
README.md
@@ -680,7 +680,7 @@ DESCRIPTION: creates nut holder of various styles.
|
||||
size[2] = holder height in mm
|
||||
data[0] = "m2", "m2.5", "m3", "m4"
|
||||
data[1] = "default", "sloped", "trap"
|
||||
mask[0] = false
|
||||
mask[0] = true
|
||||
mask[1] = length
|
||||
mask[2] = set back
|
||||
mask[3] = mstyle "default"
|
||||
@@ -994,9 +994,8 @@ DESCRIPTION: creates hard drive holes for 2.5 and 3.5 drives in various orientat
|
||||
size[] = not used
|
||||
data[0] = 2.5 or 3.5
|
||||
data[1] = "portrait", "landscape"
|
||||
data[2] = "vertical", "horizontal"
|
||||
data[3] = "left", "right", "none"
|
||||
data[4] = floor thickness
|
||||
data[2] = "left", "right", "both", "bottom", "all"
|
||||
data[3] = floor thickness
|
||||
mask[0] = false, not used
|
||||
mask[1] = length
|
||||
mask[2] = set back
|
||||
@@ -1303,7 +1302,7 @@ DESCRIPTION: creates db connectors.
|
||||
mask[0] = true
|
||||
mask[1] = length
|
||||
mask[2] = set back
|
||||
mask[3] = mstyle "default"
|
||||
mask[3] = mstyle "default", "fan_open", "fan_1", "fan_2", "fan_hex"
|
||||
```
|
||||
|
||||
|
||||
@@ -1324,11 +1323,12 @@ DESCRIPTION: creates a 2.5 hard drive model.
|
||||
rotation[] = object rotation
|
||||
parametric[] = "case", "sbc", "sbc-case_z"
|
||||
size[] = not used
|
||||
data[0] = height
|
||||
data[0] = "landscape", "portrait"
|
||||
data[1] = height
|
||||
mask[0] = true
|
||||
mask[1] = length
|
||||
mask[2] = set back
|
||||
mask[3] = mstyle "default"
|
||||
mask[3] = mstyle "default", "bottom", "side", "both"
|
||||
```
|
||||
|
||||
|
||||
@@ -1349,11 +1349,11 @@ DESCRIPTION: creates a 3.5 hard drive model.
|
||||
rotation[] = object rotation
|
||||
parametric[] = "case", "sbc", "sbc-case_z"
|
||||
size[] = not used
|
||||
data[] = not used
|
||||
data[0] = "landscape", "portrait"
|
||||
mask[0] = true
|
||||
mask[1] = length
|
||||
mask[2] = set back
|
||||
mask[3] = mstyle "default"
|
||||
mask[3] = mstyle "default", "bottom", "side", "both"
|
||||
```
|
||||
|
||||
|
||||
|
||||
@@ -15,11 +15,71 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
Code released under GPLv3: http://www.gnu.org/licenses/gpl.html
|
||||
|
||||
access_panel(size, orientation)
|
||||
access_cover(size, orientation)
|
||||
access_panel(size, orientation, mask)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
NAME: access_cover
|
||||
DESCRIPTION: creates covers for access port openings
|
||||
TODO: none
|
||||
|
||||
USAGE: access_panel(size[], orientation)
|
||||
|
||||
size[0] = size_x
|
||||
size[1] = size_y
|
||||
size[2] = floor thickness
|
||||
orientation = "landscape", "portrait"
|
||||
*/
|
||||
|
||||
module access_cover(size, orientation) {
|
||||
|
||||
size_x = size[0];
|
||||
size_y = size[1];
|
||||
floorthick = size[2];
|
||||
adj = .01;
|
||||
$fn = 90;
|
||||
if(orientation == "portrait") {
|
||||
difference() {
|
||||
union() {
|
||||
translate([1, 6.25, 0]) cube([size_x-2.15, size_y-17.5, floorthick]);
|
||||
translate([(size_x/2)-4.75, size_y-12.25, 0]) slab([10, 5, floorthick], 5);
|
||||
translate([1, 6.25, floorthick-adj]) cube([size_x-2.15, 6, floorthick]);
|
||||
translate([4.25, 3, floorthick]) cube([7.25, 4, 2]);
|
||||
translate([size_x-12.75, 3, floorthick]) cube([7.25, 4, 2]);
|
||||
if(size_x > 100) {
|
||||
translate([(size_x/2)+.25, 3, floorthick]) cube([7.25, 4, 2]);
|
||||
}
|
||||
}
|
||||
translate([(size_x/2)+.25, size_y-6.5, -floorthick-adj])
|
||||
cylinder(d=3.2, h=(floorthick*2)+(adj*2));
|
||||
translate([(size_x/2)+.25, size_y-6.5, -adj])
|
||||
cylinder(d1=6, d2=3.2, h=floorthick);
|
||||
}
|
||||
}
|
||||
if(orientation == "landscape") {
|
||||
difference() {
|
||||
union() {
|
||||
translate([6.25, 0, 0]) cube([size_x-17.75, size_y-2, floorthick]);
|
||||
translate([size_x-12.25, (size_y/2)-5.75, 0]) slab([5, 10, floorthick], 5);
|
||||
translate([6.25, 0, floorthick-adj]) cube([6,size_y-2.15, floorthick]);
|
||||
translate([3.5+adj, 3.25, floorthick]) cube([4, 7.25, 2]);
|
||||
translate([3.5+adj, size_y-12.75, floorthick]) cube([4, 7.25, 2]);
|
||||
if(size_y > 100) {
|
||||
translate([3.5+adj, (size_y/2)-(7.75/2)-1, floorthick]) cube([4, 7.25, 2]);
|
||||
}
|
||||
}
|
||||
translate([size_x-6.5, (size_y/2)-.75, -floorthick-adj])
|
||||
cylinder(d=3.2, h=(floorthick*2)+(adj*2));
|
||||
translate([size_x-6.5, (size_y/2)-.75, -adj])
|
||||
cylinder(d1=6, d2=3.2, h=floorthick);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
NAME: access_panel
|
||||
DESCRIPTION: creates opening and structure for access openings
|
||||
@@ -108,62 +168,3 @@ module access_panel(size, orientation, mask) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
NAME: access_cover
|
||||
DESCRIPTION: creates covers for access port openings
|
||||
TODO: none
|
||||
|
||||
USAGE: access_panel(size[], orientation)
|
||||
|
||||
size[0] = size_x
|
||||
size[1] = size_y
|
||||
size[2] = floor thickness
|
||||
orientation = "landscape", "portrait"
|
||||
*/
|
||||
|
||||
module access_cover(size, orientation) {
|
||||
|
||||
size_x = size[0];
|
||||
size_y = size[1];
|
||||
floorthick = size[2];
|
||||
adj = .01;
|
||||
$fn = 90;
|
||||
if(orientation == "portrait") {
|
||||
difference() {
|
||||
union() {
|
||||
translate([1, 6.25, 0]) cube([size_x-2.15, size_y-17.5, floorthick]);
|
||||
translate([(size_x/2)-4.75, size_y-12.25, 0]) slab([10, 5, floorthick], 5);
|
||||
translate([1, 6.25, floorthick-adj]) cube([size_x-2.15, 6, floorthick]);
|
||||
translate([4.25, 3, floorthick]) cube([7.25, 4, 2]);
|
||||
translate([size_x-12.75, 3, floorthick]) cube([7.25, 4, 2]);
|
||||
if(size_x > 100) {
|
||||
translate([(size_x/2)+.25, 3, floorthick]) cube([7.25, 4, 2]);
|
||||
}
|
||||
}
|
||||
translate([(size_x/2)+.25, size_y-6.5, -floorthick-adj])
|
||||
cylinder(d=3.2, h=(floorthick*2)+(adj*2));
|
||||
translate([(size_x/2)+.25, size_y-6.5, -adj])
|
||||
cylinder(d1=6, d2=3.2, h=floorthick);
|
||||
}
|
||||
}
|
||||
if(orientation == "landscape") {
|
||||
difference() {
|
||||
union() {
|
||||
translate([6.25, 0, 0]) cube([size_x-17.75, size_y-2, floorthick]);
|
||||
translate([size_x-12.25, (size_y/2)-5.75, 0]) slab([5, 10, floorthick], 5);
|
||||
translate([6.25, 0, floorthick-adj]) cube([6,size_y-2.15, floorthick]);
|
||||
translate([3.5+adj, 3.25, floorthick]) cube([4, 7.25, 2]);
|
||||
translate([3.5+adj, size_y-12.75, floorthick]) cube([4, 7.25, 2]);
|
||||
if(size_y > 100) {
|
||||
translate([3.5+adj, (size_y/2)-(7.75/2)-1, floorthick]) cube([4, 7.25, 2]);
|
||||
}
|
||||
}
|
||||
translate([size_x-6.5, (size_y/2)-.75, -floorthick-adj])
|
||||
cylinder(d=3.2, h=(floorthick*2)+(adj*2));
|
||||
translate([size_x-6.5, (size_y/2)-.75, -adj])
|
||||
cylinder(d1=6, d2=3.2, h=floorthick);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
28
lib/art.scad
28
lib/art.scad
@@ -15,7 +15,13 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
Code released under GPLv3: http://www.gnu.org/licenses/gpl.html
|
||||
|
||||
art(scale_d1, size_z, filename)
|
||||
stl_model(scale_d1, filename)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
NAME: art
|
||||
DESCRIPTION: create 2d artwork using dxf or svf
|
||||
TODO: none
|
||||
@@ -26,16 +32,6 @@
|
||||
size_z = floor thickness
|
||||
filename = file name
|
||||
|
||||
|
||||
NAME: stl_model
|
||||
DESCRIPTION: import 3d artwork using stl
|
||||
TODO: none
|
||||
|
||||
USAGE: art(scale_d1, size_z, filename)
|
||||
|
||||
scale_d1 = amount to scale file
|
||||
size_z = floor thickness
|
||||
filename = file name
|
||||
*/
|
||||
|
||||
module art(scale_d1, size_z, filename) {
|
||||
@@ -44,6 +40,18 @@ module art(scale_d1, size_z, filename) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
NAME: stl_model
|
||||
DESCRIPTION: import 3d artwork using stl
|
||||
TODO: none
|
||||
|
||||
USAGE: stl_model(scale_d1, filename)
|
||||
|
||||
scale_d1 = amount to scale file
|
||||
filename = file name
|
||||
*/
|
||||
|
||||
module stl_model(scale_d1, filename) {
|
||||
|
||||
import(file = filename, scale=scale_d1);
|
||||
|
||||
@@ -17,10 +17,11 @@
|
||||
|
||||
battery(type)
|
||||
battery_clip(bat_dia = 18.4)
|
||||
module batt_holder(tolerance)
|
||||
batt_holder(tolerance)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
NAME: battery
|
||||
DESCRIPTION: creates 18650 and 21700 batteries
|
||||
|
||||
@@ -15,20 +15,21 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
Code released under GPLv3: http://www.gnu.org/licenses/gpl.html
|
||||
|
||||
button(style, diameter, height)
|
||||
buttons(style, diameter, height, mask)
|
||||
button_assembly(style, diameter, height)
|
||||
button_clip(style)
|
||||
button_plunger(style, diameter, height)
|
||||
button_top(style, diameter, height)
|
||||
button_clip(style)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
NAME: buttons
|
||||
DESCRIPTION: creates different button bodys and styles
|
||||
TODO: none
|
||||
|
||||
USAGE: buttons(style, diameter, height, mask)
|
||||
USAGE: buttons(style, size, radius, post, mask)
|
||||
|
||||
style = "recess", "cutout"
|
||||
size[0] = diameter of button body
|
||||
@@ -125,6 +126,31 @@ $fn = 90;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
NAME: button_clip
|
||||
DESCRIPTION: creates button c-clip
|
||||
TODO: none
|
||||
|
||||
USAGE: button_clip(style)
|
||||
|
||||
style = "recess", "cutout"
|
||||
*/
|
||||
|
||||
module button_clip(style) {
|
||||
|
||||
adj = .01;
|
||||
$fn = 90;
|
||||
|
||||
if(style == "recess") {
|
||||
difference() {
|
||||
cylinder(d=8.5, h=.8);
|
||||
translate([-1.5,-1.75,-adj]) cube([2.75,3.5,1]);
|
||||
translate([-.75,-.75,-adj]) cube([5,1.25,1.25]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
NAME: button_plunger
|
||||
DESCRIPTION: creates button plunger
|
||||
@@ -178,28 +204,3 @@ $fn = 90;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
NAME: button_clip
|
||||
DESCRIPTION: creates button c-clip
|
||||
TODO: none
|
||||
|
||||
USAGE: button_clip(style)
|
||||
|
||||
style = "recess", "cutout"
|
||||
*/
|
||||
|
||||
module button_clip(style) {
|
||||
|
||||
adj = .01;
|
||||
$fn = 90;
|
||||
|
||||
if(style == "recess") {
|
||||
difference() {
|
||||
cylinder(d=8.5, h=.8);
|
||||
translate([-1.5,-1.75,-adj]) cube([2.75,3.5,1]);
|
||||
translate([-.75,-.75,-adj]) cube([5,1.25,1.25]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,8 +15,13 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
Code released under GPLv3: http://www.gnu.org/licenses/gpl.html
|
||||
|
||||
cableholder_spacer()
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
NAME: cableholder_spacer
|
||||
DESCRIPTION: creates 18650 and 21700 batteries
|
||||
DESCRIPTION: creates spacer and cable holder for drive mounts
|
||||
TODO: none
|
||||
|
||||
USAGE: cableholder_spacer()
|
||||
|
||||
@@ -15,11 +15,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
Code released under GPLv3: http://www.gnu.org/licenses/gpl.html
|
||||
|
||||
hk_h3_port_extender(style, mask = false)
|
||||
hk_h3_port_extender(style, mask)
|
||||
hk_h3_port_extender_holder(part, offset)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
NAME: hk_h3_port_extender
|
||||
DESCRIPTION: @mctom's odroid-h3 gpio port extender
|
||||
|
||||
@@ -15,6 +15,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
Code released under GPLv3: http://www.gnu.org/licenses/gpl.html
|
||||
|
||||
dsub(style, gender, mask)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
NAME: dsub
|
||||
DESCRIPTION: creates dsub connectors
|
||||
TODO: 9db male, 25db male and female
|
||||
|
||||
@@ -15,35 +15,29 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
Code released under GPLv3: http://www.gnu.org/licenses/gpl.html
|
||||
|
||||
fans(style, size, mask)
|
||||
fans(style, mask)
|
||||
fan_cover(size, thick)
|
||||
fan_mask(size, thick, style)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
NAME: fans
|
||||
DESCRIPTION: creates different fan styles and sizes
|
||||
TODO: add vans
|
||||
TODO: add efficient vanes
|
||||
|
||||
USAGE: fans(style, size, mask)
|
||||
USAGE: fans(style, mask)
|
||||
|
||||
style = "box",
|
||||
size[0] = size of fan
|
||||
size[2] = thickness of fan
|
||||
mask[0] = true enables component mask
|
||||
mask[1] = mask length
|
||||
mask[2] = mask setback
|
||||
mask[3] = mstyle "default"
|
||||
mask[3] = mstyle "default", "fan_open", "fan_1", "fan_2", "fan_hex"
|
||||
*/
|
||||
|
||||
module fans(style, mask) {
|
||||
|
||||
enablemask = mask[0];
|
||||
mlength = mask[1];
|
||||
msetback = mask[2];
|
||||
mstyle = mask[3];
|
||||
|
||||
// size, thick, hole-spacing, hole-size, hub-size
|
||||
fan_data = [
|
||||
["box140x25", 140, 25, 124.5, 4.3, 40, "#353535"],
|
||||
@@ -67,13 +61,27 @@ module fans(style, mask) {
|
||||
hole_offset = (diameter-hole_space)/2;
|
||||
hub_size = fan_data[f[0]][5];
|
||||
fan_color = fan_data[f[0]][6];
|
||||
enablemask = mask[0];
|
||||
mlength = mask[1];
|
||||
msetback = mask[2];
|
||||
mstyle = mask[3];
|
||||
|
||||
|
||||
adj = .01;
|
||||
$fn = 90;
|
||||
|
||||
if(enablemask == true && mstyle == "default") {
|
||||
if(style == "box") {
|
||||
translate([0, 0, -adj-msetback]) cylinder(d = diameter-2*adj, h = mlength);
|
||||
if(enablemask == true) {
|
||||
if(mstyle == "fan_open") {
|
||||
translate([0, 0, -adj-msetback]) fan_mask(diameter, mlength, "fan_open");
|
||||
}
|
||||
if(mstyle == "default" || mstyle == "fan_1") {
|
||||
translate([0, 0, -adj-msetback]) fan_mask(diameter, mlength, "fan_1");
|
||||
}
|
||||
if(mstyle == "fan_2") {
|
||||
translate([0, 0, -adj-msetback]) fan_mask(diameter, mlength, "fan_2");
|
||||
}
|
||||
if(mstyle == "fan_hex") {
|
||||
translate([0, 0, -adj-msetback]) fan_mask(diameter, mlength, "fan_hex");
|
||||
}
|
||||
}
|
||||
if(enablemask == false) {
|
||||
@@ -98,7 +106,6 @@ module fans(style, mask) {
|
||||
}
|
||||
color(fan_color) translate([diameter/2, diameter/2, thickness/2]) rotate([0,0,30])
|
||||
cylinder_fillet_inside(h=thickness, r=hub_size/2, top=1, bottom=1, $fn=90, fillet_fn=90, center=true);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,10 +131,10 @@ module fan_cover(size, thick, style) {
|
||||
|
||||
|
||||
/*
|
||||
DESCRIPTION: creates heatsink masks for openings
|
||||
DESCRIPTION: creates fan masks for openings
|
||||
TODO:
|
||||
|
||||
USAGE: heatsink_mask(size, thick, style)
|
||||
USAGE: fan_mask(size, thick, style)
|
||||
|
||||
size = size of fan
|
||||
thick = thickness of cover
|
||||
@@ -331,11 +338,11 @@ module fan_mask(size, thick, style) {
|
||||
}
|
||||
}
|
||||
|
||||
translate([0, 0, 2])
|
||||
translate([0, 0, 11])
|
||||
union() {
|
||||
cylinder(d=bar_size*2+0.1, thick+2); // Add a circle to prevent any tiny holes around cross bar
|
||||
rotate([0, 0, 45]) cube([size, bar_size, thick+2], center=true);
|
||||
rotate([0, 0, 45]) cube([bar_size, size, thick+2], center=true);
|
||||
rotate([0, 0, 45]) cube([size, bar_size, thick+4], center=true);
|
||||
rotate([0, 0, 45]) cube([bar_size, size, thick+4], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
NAME: fan_cover
|
||||
DESCRIPTION: creates fan covers for fan openings
|
||||
|
||||
@@ -15,6 +15,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
Code released under GPLv3: http://www.gnu.org/licenses/gpl.html
|
||||
|
||||
feet (diameter, height)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
NAME: feet
|
||||
DESCRIPTION: creates simple case feet
|
||||
TODO: none
|
||||
|
||||
746
lib/hd.scad
746
lib/hd.scad
@@ -15,120 +15,109 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
Code released under GPLv3: http://www.gnu.org/licenses/gpl.html
|
||||
|
||||
hd_mount(hd, orientation, position, side)
|
||||
hd25(orientation, height, mask)
|
||||
hd25_tab(side)
|
||||
hd25_vtab(side)
|
||||
hd35(orientation, mask)
|
||||
hdd35_25holder(length)
|
||||
hd35_tab(side)
|
||||
hd35_vtab(side)
|
||||
hd_bottom_holes(hd, orientation, position, side, thick)
|
||||
hd25(height)
|
||||
hd35()
|
||||
hdd35_25holder(length)
|
||||
hd_bottom_holes(hd, orientation, side, thick)
|
||||
hd_mount(hd, orientation, position, side)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
NAME: hd_mount
|
||||
DESCRIPTION: creates 2.5" and 3.5" hard drive mounts
|
||||
NAME: hd25
|
||||
DESCRIPTION: creates 2.5" hard drive model
|
||||
TODO: none
|
||||
|
||||
USAGE: hd_mount(hd, orientation, position, side)
|
||||
USAGE: hd25(orientation, height, mask)
|
||||
|
||||
hd = 2.5, 3.5
|
||||
orientation = "portrait", "landscape"
|
||||
position = "vertical", "horizontal"
|
||||
side = "left", "right"
|
||||
orientation = "landscape", "portrait"
|
||||
height = drive height
|
||||
mask[0] = true enables component mask
|
||||
mask[1] = mask length
|
||||
mask[2] = mask setback
|
||||
mask[3] = mstyle "default", "bottom", "side", "both"
|
||||
*/
|
||||
|
||||
module hd_mount(hd, orientation, position, side) {
|
||||
module hd25(orientation, height, mask) {
|
||||
|
||||
hd25_x = 100;
|
||||
hd25_y = 69.85;
|
||||
hd25_z = height;
|
||||
enablemask = mask[0];
|
||||
mlength = mask[1];
|
||||
msetback = mask[2];
|
||||
mstyle = mask[3];
|
||||
|
||||
adj = .01;
|
||||
$fn = 90;
|
||||
|
||||
if(hd == 2.5) {
|
||||
if(orientation == "portrait") {
|
||||
if(position == "vertical") {
|
||||
if(side == "left") {
|
||||
translate([0,14,0]) rotate([0,0,0]) hd25_vtab("right");
|
||||
translate([0,90.6,0]) rotate([0,0,0]) hd25_vtab("right");
|
||||
if(enablemask == true) {
|
||||
if(orientation == "landscape" && (mstyle == "side" || mstyle == "both" || mstyle == "default")) {
|
||||
translate([0, msetback, 0]) hd_holes(2.5, "landscape", "left", mlength);
|
||||
translate([0, -msetback, 0]) hd_holes(2.5, "landscape", "right", mlength);
|
||||
}
|
||||
else { // right
|
||||
translate([0,14,0]) rotate([0,0,0]) hd25_vtab("left");
|
||||
translate([0,90.6,0]) rotate([0,0,0]) hd25_vtab("left");
|
||||
}
|
||||
}
|
||||
else {
|
||||
translate([-.5,14,0]) hd25_tab("left");
|
||||
translate([-.5,90.6,0]) hd25_tab("left");
|
||||
translate([70.35,14,0]) hd25_tab("right");
|
||||
translate([70.35,90.6,0]) hd25_tab("right");
|
||||
if(orientation == "landscape" && (mstyle == "bottom" || mstyle == "both")) {
|
||||
translate([0, 0, msetback]) hd_holes(2.5, "landscape", "bottom", mlength);
|
||||
}
|
||||
if(orientation == "portrait" && (mstyle == "side" || mstyle == "both" || mstyle == "default")) {
|
||||
translate([msetback, 0, 0]) hd_holes(2.5, "portrait", "left", mlength);
|
||||
translate([-msetback, 0, 0]) hd_holes(2.5, "portrait", "right", mlength);
|
||||
}
|
||||
if(orientation == "portrait" && (mstyle == "bottom" || mstyle == "both")) {
|
||||
translate([0, 0, -mlength+msetback]) hd_holes(2.5, "portrait", "bottom", mlength);
|
||||
}
|
||||
}
|
||||
if(enablemask == false) {
|
||||
if(orientation == "landscape") {
|
||||
if(position == "vertical") {
|
||||
if(side == "left") {
|
||||
translate([9.4,0,0]) rotate([0,0,90]) hd25_vtab("right");
|
||||
translate([86,0,0]) rotate([0,0,90]) hd25_vtab("right");
|
||||
}
|
||||
else { // right
|
||||
translate([9.4,0,0]) rotate([0,0,90]) hd25_vtab("left");
|
||||
translate([86,0,0]) rotate([0,0,90]) hd25_vtab("left");
|
||||
difference() {
|
||||
color("LightGrey",.6) cube([hd25_x,hd25_y,hd25_z]);
|
||||
|
||||
// bottom screw holes
|
||||
color("Black",.6) translate([9.4,4.07,-adj]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([86,4.07,-adj]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([86,65.79,-adj]) cylinder(d=3,h=4);
|
||||
color("Black",.6) translate([9.4,65.79,-adj]) cylinder(d=3,h=4);
|
||||
|
||||
// side screw holes
|
||||
color("Black",.6) translate([9.4,-adj,3]) rotate([-90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([86,-adj,3]) rotate([-90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([86,hd25_y+adj,3]) rotate([90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([9.4,hd25_y+adj,3]) rotate([90,0,0]) cylinder(d=3,h=3);
|
||||
|
||||
// connector opening
|
||||
color("LightSlateGray",.6) translate([hd25_x-5,11,-1]) cube([5+adj,32,5+adj]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
translate([9.4,4.07-4.5,0]) rotate([0,0,90]) hd25_tab("left");
|
||||
translate([86,4.07-4.5,0]) rotate([0,0,90]) hd25_tab("left");
|
||||
translate([86,65.79+4.5,0]) rotate([0,0,90]) hd25_tab("right");
|
||||
translate([9.4,65.79+4.5,0]) rotate([0,0,90]) hd25_tab("right");
|
||||
}
|
||||
}
|
||||
}
|
||||
if(hd == 3.5) {
|
||||
if(orientation == "portrait") {
|
||||
if(position == "vertical") {
|
||||
if(side == "left") {
|
||||
translate([0,41.28,0]) rotate([0,0,0]) hd35_vtab("right");
|
||||
translate([0,41.28+44.45,0]) rotate([0,0,0]) hd35_vtab("right");
|
||||
translate([0,41.28+76.20,0]) rotate([0,0,0]) hd35_vtab("right");
|
||||
}
|
||||
else { // right
|
||||
translate([0,41.28,0]) rotate([0,0,0]) hd35_vtab("left");
|
||||
translate([0,41.28+44.45,0]) rotate([0,0,0]) hd35_vtab("left");
|
||||
translate([0,41.28+76.20,0]) rotate([0,0,0]) hd35_vtab("left");
|
||||
}
|
||||
}
|
||||
else {
|
||||
translate([-.5,28.5,0]) hd35_tab("left");
|
||||
translate([-.5,69.75,0]) hd35_tab("left");
|
||||
translate([-.5,130.1,0]) hd35_tab("left");
|
||||
translate([101.6+.5,28.5,0]) hd35_tab("right");
|
||||
translate([101.6+.5,69.75,0]) hd35_tab("right");
|
||||
translate([101.6+.5,130.1,0]) hd35_tab("right");
|
||||
}
|
||||
}
|
||||
if(orientation == "landscape") {
|
||||
if(position == "vertical") {
|
||||
if(side == "left") {
|
||||
translate([9.4,0,0]) rotate([0,0,90]) hd35_vtab("right");
|
||||
translate([86,0,0]) rotate([0,0,90]) hd35_vtab("right");
|
||||
}
|
||||
else { // right
|
||||
translate([9.4,0,0]) rotate([0,0,90]) hd35_vtab("left");
|
||||
translate([86,0,0]) rotate([0,0,90]) hd35_vtab("left");
|
||||
}
|
||||
}
|
||||
else {
|
||||
translate([16.9,-.5,0]) rotate([0,0,90]) hd35_tab("left");
|
||||
translate([76.6,-.5,0]) rotate([0,0,90]) hd35_tab("left");
|
||||
translate([118.5,-.5,0]) rotate([0,0,90]) hd35_tab("left");
|
||||
translate([16.9,101.6-.5,0]) rotate([0,0,90]) hd35_tab("right");
|
||||
translate([76.6,101.6-.5,0]) rotate([0,0,90]) hd35_tab("right");
|
||||
translate([118.5,101.6-.5,0]) rotate([0,0,90]) hd35_tab("right");
|
||||
translate([0,hd25_x,0]) rotate([0,0,270])
|
||||
difference() {
|
||||
color("LightGrey",.6) cube([hd25_x,hd25_y,hd25_z]);
|
||||
|
||||
// bottom screw holes
|
||||
color("Black",.6) translate([9.4,4.07,-adj]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([86,4.07,-adj]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([86,65.79,-adj]) cylinder(d=3,h=4);
|
||||
color("Black",.6) translate([9.4,65.79,-adj]) cylinder(d=3,h=4);
|
||||
|
||||
// side screw holes
|
||||
color("Black",.6) translate([9.4,-adj,3]) rotate([-90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([86,-adj,3]) rotate([-90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([86,hd25_y+adj,3]) rotate([90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([9.4,hd25_y+adj,3]) rotate([90,0,0]) cylinder(d=3,h=3);
|
||||
|
||||
// connector opening
|
||||
color("LightSlateGray",.6) translate([hd25_x-5,11,-1]) cube([5+adj,32,5+adj]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
NAME: hd25_tab
|
||||
DESCRIPTION: creates 2.5" hard drive tabs for horizontal mounting
|
||||
@@ -275,6 +264,202 @@ module hd25_vtab(side) {
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
NAME: hd35
|
||||
DESCRIPTION: creates 3.5" hard drive model
|
||||
TODO: none
|
||||
|
||||
USAGE: hd35(orientation, mask)
|
||||
|
||||
orientation = "landscape", "portrait"
|
||||
mask[0] = true enables component mask
|
||||
mask[1] = mask length
|
||||
mask[2] = mask setback
|
||||
mask[3] = mstyle "default", "bottom", "side", "both"
|
||||
*/
|
||||
|
||||
module hd35(orientation, mask) {
|
||||
|
||||
hd35_x = 147;
|
||||
hd35_y = 101.6;
|
||||
hd35_z = 26.1;
|
||||
enablemask = mask[0];
|
||||
mlength = mask[1];
|
||||
msetback = mask[2];
|
||||
mstyle = mask[3];
|
||||
|
||||
adj = .01;
|
||||
$fn = 90;
|
||||
|
||||
if(enablemask == true) {
|
||||
if(orientation == "landscape" && (mstyle == "side" || mstyle == "both" || mstyle == "default")) {
|
||||
translate([0, msetback, 0]) hd_holes(3.5, "landscape", "left", mlength);
|
||||
translate([0, -msetback, 0]) hd_holes(3.5, "landscape", "right", mlength);
|
||||
}
|
||||
if(orientation == "landscape" && (mstyle == "bottom" || mstyle == "both")) {
|
||||
translate([0, 0, msetback]) hd_holes(3.5, "landscape", "bottom", mlength);
|
||||
}
|
||||
if(orientation == "portrait" && (mstyle == "side" || mstyle == "both" || mstyle == "default")) {
|
||||
translate([msetback, 0, 0]) hd_holes(3.5, "portrait", "left", mlength);
|
||||
translate([-msetback, 0, 0]) hd_holes(3.5, "portrait", "right", mlength);
|
||||
}
|
||||
if(orientation == "portrait" && (mstyle == "bottom" || mstyle == "both")) {
|
||||
translate([0, 0, -mlength+msetback]) hd_holes(3.5, "portrait", "bottom", mlength);
|
||||
}
|
||||
}
|
||||
if(enablemask == false) {
|
||||
if(orientation == "landscape") {
|
||||
difference() {
|
||||
color("LightGrey",.6) cube([hd35_x,hd35_y,hd35_z]);
|
||||
|
||||
// bottom screw holes
|
||||
color("Black",.6) translate([29.52,3.18,-adj]) cylinder(d=3,h=3+adj);
|
||||
color("Black",.6) translate([61.27,3.18,-adj]) cylinder(d=3,h=3+adj);
|
||||
color("Black",.6) translate([105.72,3.18,-adj]) cylinder(d=3,h=3+adj);
|
||||
color("Black",.6) translate([29.52,98.43,-adj]) cylinder(d=3,h=3+adj);
|
||||
color("Black",.6) translate([61.27,98.43,-adj]) cylinder(d=3,h=3+adj);
|
||||
color("Black",.6) translate([105.72,98.43,-adj]) cylinder(d=3,h=3+adj);
|
||||
|
||||
// side screw holes
|
||||
color("Black",.6) translate([16.9,-adj,6.35]) rotate([-90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([76.6,-adj,6.35]) rotate([-90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([118.5,-adj,6.35]) rotate([-90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([118.5,hd35_y+adj,6.35]) rotate([90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([76.6,hd35_y+adj,6.35]) rotate([90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([16.9,hd35_y+adj,6.35]) rotate([90,0,0]) cylinder(d=3,h=3);
|
||||
|
||||
// connector opening
|
||||
color("LightSlateGray",.6) translate([hd35_x-5,11,-1]) cube([5+adj,32,5+adj]);
|
||||
}
|
||||
}
|
||||
if(orientation == "portrait") {
|
||||
translate([0,hd35_x,0]) rotate([0,0,270])
|
||||
difference() {
|
||||
color("LightGrey",.6) cube([hd35_x,hd35_y,hd35_z]);
|
||||
|
||||
// bottom screw holes
|
||||
color("Black",.6) translate([29.52,3.18,-adj]) cylinder(d=3,h=3+adj);
|
||||
color("Black",.6) translate([61.27,3.18,-adj]) cylinder(d=3,h=3+adj);
|
||||
color("Black",.6) translate([105.72,3.18,-adj]) cylinder(d=3,h=3+adj);
|
||||
color("Black",.6) translate([29.52,98.43,-adj]) cylinder(d=3,h=3+adj);
|
||||
color("Black",.6) translate([61.27,98.43,-adj]) cylinder(d=3,h=3+adj);
|
||||
color("Black",.6) translate([105.72,98.43,-adj]) cylinder(d=3,h=3+adj);
|
||||
|
||||
// side screw holes
|
||||
color("Black",.6) translate([16.9,-adj,6.35]) rotate([-90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([76.6,-adj,6.35]) rotate([-90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([118.5,-adj,6.35]) rotate([-90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([118.5,hd35_y+adj,6.35]) rotate([90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([76.6,hd35_y+adj,6.35]) rotate([90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([16.9,hd35_y+adj,6.35]) rotate([90,0,0]) cylinder(d=3,h=3);
|
||||
|
||||
// connector opening
|
||||
color("LightSlateGray",.6) translate([hd35_x-5,11,-1]) cube([5+adj,32,5+adj]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
NAME: hd35_25holder
|
||||
DESCRIPTION: 3.5" hdd to 2.5" hdd holder
|
||||
TODO: none
|
||||
|
||||
USAGE: hdd35_25holder(length, width=101.6)
|
||||
|
||||
length = length of holder min. 145mm for 3.5" drive
|
||||
*/
|
||||
|
||||
module hd35_25holder(length, width=101.6) {
|
||||
|
||||
wallthick = 3;
|
||||
floorthick = 2;
|
||||
hd35_x = length; // 145mm for 3.5" drive
|
||||
hd35_y = width;
|
||||
hd35_z = 12;
|
||||
hd25_x = 100;
|
||||
hd25_y = 69.85;
|
||||
hd25_z = 9.5;
|
||||
hd25_xloc = 2; // or (hd35_x-hd25_x)/2
|
||||
hd25_yloc = (hd35_y-hd25_y)/2;
|
||||
hd25_zloc = 9.5;
|
||||
adj = .1;
|
||||
$fn=90;
|
||||
|
||||
difference() {
|
||||
union() {
|
||||
difference() {
|
||||
translate([(hd35_x/2),(hd35_y/2),(hd35_z/2)])
|
||||
cube_fillet_inside([hd35_x,hd35_y,hd35_z],
|
||||
vertical=[3,3,3,3], top=[0,0,0,0], bottom=[0,0,0,0], $fn=90);
|
||||
translate([(hd35_x/2),(hd35_y/2),(hd35_z/2)+floorthick])
|
||||
cube_fillet_inside([hd35_x-(wallthick*2),hd35_y-(wallthick*2),hd35_z],
|
||||
vertical=[0,0,0,0], top=[0,0,0,0], bottom=[0,0,0,0], $fn=90);
|
||||
|
||||
// end trim
|
||||
translate([-adj,5,wallthick+2]) cube([wallthick+(adj*2),hd35_y-10,10]);
|
||||
translate([hd35_x-wallthick-adj,5,wallthick+2]) cube([wallthick+(adj*2),hd35_y-10,10]);
|
||||
|
||||
// bottom vents
|
||||
for ( r=[15:40:hd35_x-40]) {
|
||||
for (c=[hd35_y-76:4:75]) {
|
||||
translate ([r,c,-adj]) cube([35,2,wallthick+(adj*2)]);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 2.5 hdd bottom support
|
||||
translate([9.4+hd25_xloc,4.07+hd25_yloc,floorthick-adj]) cylinder(d=8,h=4);
|
||||
translate([86+hd25_xloc,4.07+hd25_yloc,floorthick-adj]) cylinder(d=8,h=4);
|
||||
translate([86+hd25_xloc,65.79+hd25_yloc,floorthick-adj]) cylinder(d=8,h=4);
|
||||
translate([9.4+hd25_xloc,65.79+hd25_yloc,floorthick-adj]) cylinder(d=8,h=4);
|
||||
|
||||
// side nut holder support
|
||||
translate([16,wallthick-adj,7]) rotate([-90,0,0]) cylinder(d=10,h=3);
|
||||
translate([76,wallthick-adj,7]) rotate([-90,0,0]) cylinder(d=10,h=3);
|
||||
if(length >= 120) {
|
||||
translate([117.5,wallthick-adj,7]) rotate([-90,0,0]) cylinder(d=10,h=3);
|
||||
translate([117.5,hd35_y-wallthick+adj,7]) rotate([90,0,0]) cylinder(d=10,h=3);
|
||||
}
|
||||
translate([76,hd35_y-wallthick+adj,7]) rotate([90,0,0]) cylinder(d=10,h=3);
|
||||
translate([16,hd35_y-wallthick+adj,7]) rotate([90,0,0]) cylinder(d=10,h=3);
|
||||
|
||||
// bottom-side support
|
||||
translate([wallthick,wallthick,floorthick-2]) rotate([45,0,0]) cube([hd35_x-(wallthick*2),3,3]);
|
||||
translate([wallthick,hd35_y-wallthick+adj,floorthick-2]) rotate([45,0,0]) cube([hd35_x-(wallthick*2),3,3]);
|
||||
|
||||
}
|
||||
// bottom screw holes
|
||||
translate([9.4+hd25_xloc,4.07+hd25_yloc,-adj]) cylinder(d=3,h=(floorthick*3)+(adj*2));
|
||||
translate([86+hd25_xloc,4.07+hd25_yloc,-adj]) cylinder(d=3,h=(floorthick*3)+(adj*2));
|
||||
translate([86+hd25_xloc,65.79+hd25_yloc,-adj]) cylinder(d=3,h=(floorthick*3)+(adj*2));
|
||||
translate([9.4+hd25_xloc,65.79+hd25_yloc,-adj]) cylinder(d=3,h=(floorthick*3)+(adj*2));
|
||||
|
||||
// countersink holes
|
||||
translate([9.4+hd25_xloc,4.07+hd25_yloc,-adj]) cylinder(d1=6.5, d2=3, h=3);
|
||||
translate([86+hd25_xloc,4.07+hd25_yloc,-adj]) cylinder(d1=6.5, d2=3, h=3);
|
||||
translate([86+hd25_xloc,65.79+hd25_yloc,-adj]) cylinder(d1=6.5, d2=3, h=3);
|
||||
translate([9.4+hd25_xloc,65.79+hd25_yloc,-adj]) cylinder(d1=6.5, d2=3, h=3);
|
||||
|
||||
// side screw holes
|
||||
translate([16,-adj,7]) rotate([-90,0,0]) cylinder(d=3.6,h=7);
|
||||
translate([76,-adj,7]) rotate([-90,0,0]) cylinder(d=3.6,h=7);
|
||||
translate([117.5,-adj,7]) rotate([-90,0,0]) cylinder(d=3.6,h=7);
|
||||
translate([117.5,hd35_y+adj,7]) rotate([90,0,0]) cylinder(d=3.6,h=7);
|
||||
translate([76,hd35_y+adj,7]) rotate([90,0,0]) cylinder(d=3.6,h=7);
|
||||
translate([16,hd35_y+adj,7]) rotate([90,0,0]) cylinder(d=3.6,h=7);
|
||||
|
||||
// side nut trap
|
||||
translate([16,wallthick-adj,7]) rotate([-90,0,0]) cylinder(r=3.30,h=5,$fn=6);
|
||||
translate([76,wallthick-adj,7]) rotate([-90,0,0]) cylinder(r=3.30,h=5,$fn=6);
|
||||
translate([117.5,wallthick-adj,7]) rotate([-90,0,0]) cylinder(r=3.30,h=5,$fn=6);
|
||||
translate([117.5,hd35_y-wallthick-adj,7]) rotate([90,0,0]) cylinder(r=3.30,h=5,$fn=6);
|
||||
translate([76,hd35_y-wallthick-adj,7]) rotate([90,0,0]) cylinder(r=3.30,h=5,$fn=6);
|
||||
translate([16,hd35_y-wallthick-adj,7]) rotate([90,0,0]) cylinder(r=3.30,h=5,$fn=6);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
NAME: hd35_tab
|
||||
DESCRIPTION: creates 3.5" hard drive tabs for horizontal mounting
|
||||
@@ -429,16 +614,123 @@ module hd35_vtab(side) {
|
||||
DESCRIPTION: creates 2.5" and 3.5" hard drive hole mask for mounting
|
||||
TODO: none
|
||||
|
||||
USAGE: hd_bottom_holes(hd, orientation, position, side, thick)
|
||||
USAGE: hd_bottom_holes(hd, orientation, side, thick)
|
||||
|
||||
hd = 2.5, 3.5
|
||||
orientation = "portrait", "landscape"
|
||||
side = "left", "right", "both", "bottom", "all"
|
||||
thick = floor thickness
|
||||
*/
|
||||
|
||||
module hd_holes(hd, orientation, side, thick) {
|
||||
|
||||
hd25_x = 100;
|
||||
hd25_y = 69.85;
|
||||
hd35_x = 147;
|
||||
hd35_y = 101.6;
|
||||
hd35_z = 26.1;
|
||||
adj = .01;
|
||||
$fn = 90;
|
||||
|
||||
if(hd == 2.5) {
|
||||
if(orientation == "portrait") {
|
||||
translate([0,hd25_x,0]) rotate([0,0,270]) union() {
|
||||
if(side == "left" || side == "both" || side == "all") {
|
||||
translate([9.4,-thick,3]) rotate([270,0,0]) cylinder(d=3.6,h=thick);
|
||||
translate([86,-thick,3]) rotate([270,0,0]) cylinder(d=3.6,h=thick);
|
||||
}
|
||||
if(side == "right" || side == "both" || side == "all") {
|
||||
translate([9.4,hd25_y+thick,3]) rotate([90,0,0]) cylinder(d=3.6,h=thick);
|
||||
translate([86,hd25_y+thick,3]) rotate([90,0,0]) cylinder(d=3.6,h=thick);
|
||||
}
|
||||
if(side == "bottom" || side == "all") {
|
||||
translate([9.4,4.07,0]) cylinder(d=3.6,h=thick);
|
||||
translate([86,4.07,0]) cylinder(d=3.6,h=thick);
|
||||
translate([86,65.79,0]) cylinder(d=3.6,h=thick);
|
||||
translate([9.4,65.79,0]) cylinder(d=3.6,h=thick);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(orientation == "landscape") {
|
||||
if(side == "left" || side == "both" || side == "all") {
|
||||
translate([9.4,-thick,3]) rotate([270,0,0]) cylinder(d=3.6,h=thick);
|
||||
translate([86,-thick,3]) rotate([270,0,0]) cylinder(d=3.6,h=thick);
|
||||
}
|
||||
if(side == "right" || side == "both" || side == "all") {
|
||||
translate([9.4,hd25_y+thick,3]) rotate([90,0,0]) cylinder(d=3.6,h=thick);
|
||||
translate([86,hd25_y+thick,3]) rotate([90,0,0]) cylinder(d=3.6,h=thick);
|
||||
}
|
||||
if(side == "bottom" || side == "all") {
|
||||
translate([9.4,4.07,-thick]) cylinder(d=3.6,h=thick);
|
||||
translate([86,4.07,-thick]) cylinder(d=3.6,h=thick);
|
||||
translate([86,65.79,-thick]) cylinder(d=3.6,h=thick);
|
||||
translate([9.4,65.79,-thick]) cylinder(d=3.6,h=thick);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(hd == 3.5) {
|
||||
if(orientation == "portrait") {
|
||||
translate([0,hd35_x,0]) rotate([0,0,270]) union() {
|
||||
if(side == "left" || side == "both" || side == "all") {
|
||||
translate([16.9,-thick,6.35]) rotate([270,0,0]) cylinder(d=3,h=thick);
|
||||
translate([76.6,-thick,6.35]) rotate([270,0,0]) cylinder(d=3,h=thick);
|
||||
translate([118.5,-thick,6.35]) rotate([270,0,0]) cylinder(d=3,h=thick);
|
||||
}
|
||||
if(side == "right" || side == "both" || side == "all") {
|
||||
translate([118.5,hd35_y+thick,6.35]) rotate([90,0,0]) cylinder(d=3,h=thick);
|
||||
translate([76.6,hd35_y+thick,6.35]) rotate([90,0,0]) cylinder(d=3,h=thick);
|
||||
translate([16.9,hd35_y+thick,6.35]) rotate([90,0,0]) cylinder(d=3,h=thick);
|
||||
}
|
||||
if(side == "bottom" || side == "all") {
|
||||
// landscape 3.5" bottom screw holes
|
||||
translate([29.52,3.18,0]) cylinder(d=3.6,h=thick);
|
||||
translate([61.27,3.18,0]) cylinder(d=3.6,h=thick);
|
||||
translate([105.72,3.18,0]) cylinder(d=3.6,h=thick);
|
||||
translate([29.52,98.43,0]) cylinder(d=3.6,h=thick);
|
||||
translate([61.27,98.43,0]) cylinder(d=3.6,h=thick);
|
||||
translate([105.72,98.43,0]) cylinder(d=3.6,h=thick);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(orientation == "landscape") {
|
||||
if(side == "left" || side == "both" || side == "all") {
|
||||
translate([16.9,-thick,6.35]) rotate([270,0,0]) cylinder(d=3,h=thick);
|
||||
translate([76.6,-thick,6.35]) rotate([270,0,0]) cylinder(d=3,h=thick);
|
||||
translate([118.5,-thick,6.35]) rotate([270,0,0]) cylinder(d=3,h=thick);
|
||||
}
|
||||
if(side == "right" || side == "both" || side == "all") {
|
||||
translate([118.5,hd35_y+thick,6.35]) rotate([90,0,0]) cylinder(d=3,h=thick);
|
||||
translate([76.6,hd35_y+thick,6.35]) rotate([90,0,0]) cylinder(d=3,h=thick);
|
||||
translate([16.9,hd35_y+thick,6.35]) rotate([90,0,0]) cylinder(d=3,h=thick);
|
||||
}
|
||||
if(side == "bottom" || side == "all") {
|
||||
// landscape 3.5" bottom screw holes
|
||||
translate([29.52,3.18,-thick]) cylinder(d=3.6,h=thick);
|
||||
translate([61.27,3.18,-thick]) cylinder(d=3.6,h=thick);
|
||||
translate([105.72,3.18,-thick]) cylinder(d=3.6,h=thick);
|
||||
translate([29.52,98.43,-thick]) cylinder(d=3.6,h=thick);
|
||||
translate([61.27,98.43,-thick]) cylinder(d=3.6,h=thick);
|
||||
translate([105.72,98.43,-thick]) cylinder(d=3.6,h=thick);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
NAME: hd_mount
|
||||
DESCRIPTION: creates 2.5" and 3.5" hard drive mounts
|
||||
TODO: none
|
||||
|
||||
USAGE: hd_mount(hd, orientation, position, side)
|
||||
|
||||
hd = 2.5, 3.5
|
||||
orientation = "portrait", "landscape"
|
||||
position = "vertical", "horizontal"
|
||||
side = "left", "right", "none"
|
||||
thick = floor thickness
|
||||
side = "left", "right"
|
||||
*/
|
||||
|
||||
module hd_holes(hd, orientation, position, side, thick) {
|
||||
module hd_mount(hd, orientation, position, side) {
|
||||
|
||||
adj = .01;
|
||||
$fn = 90;
|
||||
@@ -447,42 +739,37 @@ module hd_holes(hd, orientation, position, side, thick) {
|
||||
if(orientation == "portrait") {
|
||||
if(position == "vertical") {
|
||||
if(side == "left") {
|
||||
translate([-3,14,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([-3,90.6,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([0,14,0]) rotate([0,0,0]) hd25_vtab("right");
|
||||
translate([0,90.6,0]) rotate([0,0,0]) hd25_vtab("right");
|
||||
}
|
||||
else {
|
||||
// portrait 2.5" bottom screw holes
|
||||
translate([3,14,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([3,90.6,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
else { // right
|
||||
translate([0,14,0]) rotate([0,0,0]) hd25_vtab("left");
|
||||
translate([0,90.6,0]) rotate([0,0,0]) hd25_vtab("left");
|
||||
}
|
||||
}
|
||||
else {
|
||||
// portrait 2.5" bottom screw holes
|
||||
translate([4.07,14,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([4.07,90.6,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([65.79,90.6,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([65.79,14,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
|
||||
translate([-.5,14,0]) hd25_tab("left");
|
||||
translate([-.5,90.6,0]) hd25_tab("left");
|
||||
translate([70.35,14,0]) hd25_tab("right");
|
||||
translate([70.35,90.6,0]) hd25_tab("right");
|
||||
}
|
||||
}
|
||||
if(orientation == "landscape") {
|
||||
if(position == "vertical") {
|
||||
if(side == "left") {
|
||||
translate([9.4,-3,0]) cylinder(d=3.6,h=thick+5);
|
||||
translate([86,-3,0]) cylinder(d=3.6,h=thick+5);
|
||||
translate([9.4,0,0]) rotate([0,0,90]) hd25_vtab("right");
|
||||
translate([86,0,0]) rotate([0,0,90]) hd25_vtab("right");
|
||||
}
|
||||
else {
|
||||
echo(side);
|
||||
translate([9.4,3,0]) cylinder(d=3.6,h=thick+5);
|
||||
translate([86,3,0]) cylinder(d=3.6,h=thick+5);
|
||||
else { // right
|
||||
translate([9.4,0,0]) rotate([0,0,90]) hd25_vtab("left");
|
||||
translate([86,0,0]) rotate([0,0,90]) hd25_vtab("left");
|
||||
}
|
||||
}
|
||||
else {
|
||||
// landscape 2.5" bottom screw holes
|
||||
translate([9.4,4.07,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([86,4.07,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([86,65.79,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([9.4,65.79,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([9.4,4.07-4.5,0]) rotate([0,0,90]) hd25_tab("left");
|
||||
translate([86,4.07-4.5,0]) rotate([0,0,90]) hd25_tab("left");
|
||||
translate([86,65.79+4.5,0]) rotate([0,0,90]) hd25_tab("right");
|
||||
translate([9.4,65.79+4.5,0]) rotate([0,0,90]) hd25_tab("right");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -490,217 +777,44 @@ module hd_holes(hd, orientation, position, side, thick) {
|
||||
if(orientation == "portrait") {
|
||||
if(position == "vertical") {
|
||||
if(side == "left") {
|
||||
translate([-6,28.5,0]) cylinder(d=3.6,h=thick+5);
|
||||
translate([-6,70.5,0]) cylinder(d=3.6,h=thick+5);
|
||||
translate([-6,28.5+101.6,0]) cylinder(d=3.6,h=thick+5);
|
||||
translate([0,41.28,0]) rotate([0,0,0]) hd35_vtab("right");
|
||||
translate([0,41.28+44.45,0]) rotate([0,0,0]) hd35_vtab("right");
|
||||
translate([0,41.28+76.20,0]) rotate([0,0,0]) hd35_vtab("right");
|
||||
}
|
||||
else {
|
||||
// portrait 3.5" bottom screw holes
|
||||
translate([6,28.5,0]) cylinder(d=3.6,h=thick+5);
|
||||
translate([6,70.5,0]) cylinder(d=3.6,h=thick+5);
|
||||
translate([6,28.5+101.6,0]) cylinder(d=3.6,h=thick+5);
|
||||
else { // right
|
||||
translate([0,41.28,0]) rotate([0,0,0]) hd35_vtab("left");
|
||||
translate([0,41.28+44.45,0]) rotate([0,0,0]) hd35_vtab("left");
|
||||
translate([0,41.28+76.20,0]) rotate([0,0,0]) hd35_vtab("left");
|
||||
}
|
||||
}
|
||||
else {
|
||||
// portrait 3.5" bottom screw holes
|
||||
translate([3.18,41.28,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([3.18,85.73,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([3.18,117.48,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([98.43,41.28,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([98.43,85.73,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([98.43,117.48,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([-.5,28.5,0]) hd35_tab("left");
|
||||
translate([-.5,69.75,0]) hd35_tab("left");
|
||||
translate([-.5,130.1,0]) hd35_tab("left");
|
||||
translate([101.6+.5,28.5,0]) hd35_tab("right");
|
||||
translate([101.6+.5,69.75,0]) hd35_tab("right");
|
||||
translate([101.6+.5,130.1,0]) hd35_tab("right");
|
||||
}
|
||||
}
|
||||
if(orientation == "landscape") {
|
||||
// landscape 3.5" bottom screw holes
|
||||
translate([29.52,3.18,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([61.27,3.18,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([105.72,3.18,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([29.52,98.43,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([61.27,98.43,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
translate([105.72,98.43,0]) cylinder(d=3.6,h=thick+(adj*2));
|
||||
if(position == "vertical") {
|
||||
if(side == "left") {
|
||||
translate([9.4,0,0]) rotate([0,0,90]) hd35_vtab("right");
|
||||
translate([86,0,0]) rotate([0,0,90]) hd35_vtab("right");
|
||||
}
|
||||
else { // right
|
||||
translate([9.4,0,0]) rotate([0,0,90]) hd35_vtab("left");
|
||||
translate([86,0,0]) rotate([0,0,90]) hd35_vtab("left");
|
||||
}
|
||||
}
|
||||
else {
|
||||
translate([16.9,-.5,0]) rotate([0,0,90]) hd35_tab("left");
|
||||
translate([76.6,-.5,0]) rotate([0,0,90]) hd35_tab("left");
|
||||
translate([118.5,-.5,0]) rotate([0,0,90]) hd35_tab("left");
|
||||
translate([16.9,101.6-.5,0]) rotate([0,0,90]) hd35_tab("right");
|
||||
translate([76.6,101.6-.5,0]) rotate([0,0,90]) hd35_tab("right");
|
||||
translate([118.5,101.6-.5,0]) rotate([0,0,90]) hd35_tab("right");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
NAME: hd25
|
||||
DESCRIPTION: creates 2.5" hard drive model
|
||||
TODO: none
|
||||
|
||||
USAGE: hd25(height)
|
||||
|
||||
height = drive height
|
||||
*/
|
||||
|
||||
module hd25(height) {
|
||||
|
||||
hd25_x = 100;
|
||||
hd25_y = 69.85;
|
||||
hd25_z = height;
|
||||
|
||||
adj = .01;
|
||||
$fn=90;
|
||||
|
||||
difference() {
|
||||
color("LightGrey",.6) cube([hd25_x,hd25_y,hd25_z]);
|
||||
|
||||
// bottom screw holes
|
||||
color("Black",.6) translate([9.4,4.07,-adj]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([86,4.07,-adj]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([86,65.79,-adj]) cylinder(d=3,h=4);
|
||||
color("Black",.6) translate([9.4,65.79,-adj]) cylinder(d=3,h=4);
|
||||
|
||||
// side screw holes
|
||||
color("Black",.6) translate([9.4,-adj,3]) rotate([-90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([86,-adj,3]) rotate([-90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([86,hd25_y+adj,3]) rotate([90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([9.4,hd25_y+adj,3]) rotate([90,0,0]) cylinder(d=3,h=3);
|
||||
|
||||
// connector opening
|
||||
color("LightSlateGray",.6) translate([hd25_x-5,11,-1]) cube([5+adj,32,5+adj]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
NAME: hd35
|
||||
DESCRIPTION: creates 3.5" hard drive model
|
||||
TODO: none
|
||||
|
||||
USAGE: hd35()
|
||||
*/
|
||||
|
||||
module hd35() {
|
||||
|
||||
hd35_x = 147;
|
||||
hd35_y = 101.6;
|
||||
hd35_z = 26.1;
|
||||
|
||||
adj = .01;
|
||||
$fn=90;
|
||||
|
||||
difference() {
|
||||
color("LightGrey",.6) cube([hd35_x,hd35_y,hd35_z]);
|
||||
|
||||
// bottom screw holes
|
||||
color("Black",.6) translate([29.52,3.18,-adj]) cylinder(d=3,h=3+adj);
|
||||
color("Black",.6) translate([61.27,3.18,-adj]) cylinder(d=3,h=3+adj);
|
||||
color("Black",.6) translate([105.72,3.18,-adj]) cylinder(d=3,h=3+adj);
|
||||
color("Black",.6) translate([29.52,98.43,-adj]) cylinder(d=3,h=3+adj);
|
||||
color("Black",.6) translate([61.27,98.43,-adj]) cylinder(d=3,h=3+adj);
|
||||
color("Black",.6) translate([105.72,98.43,-adj]) cylinder(d=3,h=3+adj);
|
||||
|
||||
// side screw holes
|
||||
color("Black",.6) translate([16.9,-adj,6.35]) rotate([-90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([76.6,-adj,6.35]) rotate([-90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([118.5,-adj,6.35]) rotate([-90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([118.5,hd35_y+adj,6.35]) rotate([90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([76.6,hd35_y+adj,6.35]) rotate([90,0,0]) cylinder(d=3,h=3);
|
||||
color("Black",.6) translate([16.9,hd35_y+adj,6.35]) rotate([90,0,0]) cylinder(d=3,h=3);
|
||||
|
||||
// connector opening
|
||||
color("LightSlateGray",.6) translate([hd35_x-5,11,-1]) cube([5+adj,32,5+adj]);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
NAME: hd25
|
||||
DESCRIPTION: 3.5" hdd to 2.5" hdd holder
|
||||
TODO: none
|
||||
|
||||
USAGE: hdd35_25holder(length, width=101.6)
|
||||
|
||||
length = length of holder min. 145mm for 3.5" drive
|
||||
*/
|
||||
|
||||
module hdd35_25holder(length, width=101.6) {
|
||||
|
||||
wallthick = 3;
|
||||
floorthick = 2;
|
||||
hd35_x = length; // 145mm for 3.5" drive
|
||||
hd35_y = width;
|
||||
hd35_z = 12;
|
||||
hd25_x = 100;
|
||||
hd25_y = 69.85;
|
||||
hd25_z = 9.5;
|
||||
hd25_xloc = 2; // or (hd35_x-hd25_x)/2
|
||||
hd25_yloc = (hd35_y-hd25_y)/2;
|
||||
hd25_zloc = 9.5;
|
||||
adj = .1;
|
||||
$fn=90;
|
||||
|
||||
difference() {
|
||||
union() {
|
||||
difference() {
|
||||
translate([(hd35_x/2),(hd35_y/2),(hd35_z/2)])
|
||||
cube_fillet_inside([hd35_x,hd35_y,hd35_z],
|
||||
vertical=[3,3,3,3], top=[0,0,0,0], bottom=[0,0,0,0], $fn=90);
|
||||
translate([(hd35_x/2),(hd35_y/2),(hd35_z/2)+floorthick])
|
||||
cube_fillet_inside([hd35_x-(wallthick*2),hd35_y-(wallthick*2),hd35_z],
|
||||
vertical=[0,0,0,0], top=[0,0,0,0], bottom=[0,0,0,0], $fn=90);
|
||||
|
||||
// end trim
|
||||
translate([-adj,5,wallthick+2]) cube([wallthick+(adj*2),hd35_y-10,10]);
|
||||
translate([hd35_x-wallthick-adj,5,wallthick+2]) cube([wallthick+(adj*2),hd35_y-10,10]);
|
||||
|
||||
// bottom vents
|
||||
for ( r=[15:40:hd35_x-40]) {
|
||||
for (c=[hd35_y-76:4:75]) {
|
||||
translate ([r,c,-adj]) cube([35,2,wallthick+(adj*2)]);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 2.5 hdd bottom support
|
||||
translate([9.4+hd25_xloc,4.07+hd25_yloc,floorthick-adj]) cylinder(d=8,h=4);
|
||||
translate([86+hd25_xloc,4.07+hd25_yloc,floorthick-adj]) cylinder(d=8,h=4);
|
||||
translate([86+hd25_xloc,65.79+hd25_yloc,floorthick-adj]) cylinder(d=8,h=4);
|
||||
translate([9.4+hd25_xloc,65.79+hd25_yloc,floorthick-adj]) cylinder(d=8,h=4);
|
||||
|
||||
// side nut holder support
|
||||
translate([16,wallthick-adj,7]) rotate([-90,0,0]) cylinder(d=10,h=3);
|
||||
translate([76,wallthick-adj,7]) rotate([-90,0,0]) cylinder(d=10,h=3);
|
||||
if(length >= 120) {
|
||||
translate([117.5,wallthick-adj,7]) rotate([-90,0,0]) cylinder(d=10,h=3);
|
||||
translate([117.5,hd35_y-wallthick+adj,7]) rotate([90,0,0]) cylinder(d=10,h=3);
|
||||
}
|
||||
translate([76,hd35_y-wallthick+adj,7]) rotate([90,0,0]) cylinder(d=10,h=3);
|
||||
translate([16,hd35_y-wallthick+adj,7]) rotate([90,0,0]) cylinder(d=10,h=3);
|
||||
|
||||
// bottom-side support
|
||||
translate([wallthick,wallthick,floorthick-2]) rotate([45,0,0]) cube([hd35_x-(wallthick*2),3,3]);
|
||||
translate([wallthick,hd35_y-wallthick+adj,floorthick-2]) rotate([45,0,0]) cube([hd35_x-(wallthick*2),3,3]);
|
||||
|
||||
}
|
||||
// bottom screw holes
|
||||
translate([9.4+hd25_xloc,4.07+hd25_yloc,-adj]) cylinder(d=3,h=(floorthick*3)+(adj*2));
|
||||
translate([86+hd25_xloc,4.07+hd25_yloc,-adj]) cylinder(d=3,h=(floorthick*3)+(adj*2));
|
||||
translate([86+hd25_xloc,65.79+hd25_yloc,-adj]) cylinder(d=3,h=(floorthick*3)+(adj*2));
|
||||
translate([9.4+hd25_xloc,65.79+hd25_yloc,-adj]) cylinder(d=3,h=(floorthick*3)+(adj*2));
|
||||
|
||||
// countersink holes
|
||||
translate([9.4+hd25_xloc,4.07+hd25_yloc,-adj]) cylinder(d1=6.5, d2=3, h=3);
|
||||
translate([86+hd25_xloc,4.07+hd25_yloc,-adj]) cylinder(d1=6.5, d2=3, h=3);
|
||||
translate([86+hd25_xloc,65.79+hd25_yloc,-adj]) cylinder(d1=6.5, d2=3, h=3);
|
||||
translate([9.4+hd25_xloc,65.79+hd25_yloc,-adj]) cylinder(d1=6.5, d2=3, h=3);
|
||||
|
||||
// side screw holes
|
||||
translate([16,-adj,7]) rotate([-90,0,0]) cylinder(d=3.6,h=7);
|
||||
translate([76,-adj,7]) rotate([-90,0,0]) cylinder(d=3.6,h=7);
|
||||
translate([117.5,-adj,7]) rotate([-90,0,0]) cylinder(d=3.6,h=7);
|
||||
translate([117.5,hd35_y+adj,7]) rotate([90,0,0]) cylinder(d=3.6,h=7);
|
||||
translate([76,hd35_y+adj,7]) rotate([90,0,0]) cylinder(d=3.6,h=7);
|
||||
translate([16,hd35_y+adj,7]) rotate([90,0,0]) cylinder(d=3.6,h=7);
|
||||
|
||||
// side nut trap
|
||||
translate([16,wallthick-adj,7]) rotate([-90,0,0]) cylinder(r=3.30,h=5,$fn=6);
|
||||
translate([76,wallthick-adj,7]) rotate([-90,0,0]) cylinder(r=3.30,h=5,$fn=6);
|
||||
translate([117.5,wallthick-adj,7]) rotate([-90,0,0]) cylinder(r=3.30,h=5,$fn=6);
|
||||
translate([117.5,hd35_y-wallthick-adj,7]) rotate([90,0,0]) cylinder(r=3.30,h=5,$fn=6);
|
||||
translate([76,hd35_y-wallthick-adj,7]) rotate([90,0,0]) cylinder(r=3.30,h=5,$fn=6);
|
||||
translate([16,hd35_y-wallthick-adj,7]) rotate([90,0,0]) cylinder(r=3.30,h=5,$fn=6);
|
||||
}
|
||||
}
|
||||
|
||||
115
lib/holder.scad
115
lib/holder.scad
@@ -15,73 +15,62 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
Code released under GPLv3: http://www.gnu.org/licenses/gpl.html
|
||||
|
||||
pcb_holder(size, wallthick)
|
||||
nut_holder(nut, style, dia_x, dia_y, height)
|
||||
pcb_holder(size, wallthick)
|
||||
vu_holder(vu_model, side, vesa, cheight)
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
NAME: pcb_holder
|
||||
DESCRIPTION: pcb bottom edge holder
|
||||
TODO: none
|
||||
|
||||
USAGE: pcb_holder(size, wallthick)
|
||||
|
||||
size = width of holder
|
||||
wallthick = holder wall thickness
|
||||
*/
|
||||
|
||||
module pcb_holder(size, wallthick) {
|
||||
|
||||
adj=.01;
|
||||
$fn = 90;
|
||||
difference() {
|
||||
union() {
|
||||
translate([-1.85,-1.75,0]) cube([size[0]+3.5,5,6]);
|
||||
translate([size[0]+1.65,-5.75,1])
|
||||
rotate([0,-90,0])
|
||||
linear_extrude(height = size[0]+3.5)
|
||||
polygon(points = [ [-wallthick/2,-wallthick/2],
|
||||
[2,wallthick],
|
||||
[4,4],
|
||||
[-wallthick/2,4]]);
|
||||
translate([-1.85,4,1])
|
||||
rotate([0,-90,180])
|
||||
linear_extrude(height = size[0]+3.5)
|
||||
polygon(points = [ [-wallthick/2,-wallthick/2],
|
||||
[2,wallthick],
|
||||
[2,2],
|
||||
[-wallthick/2,2]]);
|
||||
}
|
||||
translate([-.5,0,2]) cube([size[0]+1,size[2],5]);
|
||||
translate([6,-adj-5-1.75,-adj]) cube([size[0]-12,14,8]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
NAME: nut_holder
|
||||
DESCRIPTION: creates various nut holders
|
||||
TODO: none
|
||||
|
||||
USAGE: nut_holder(nut, style, dia_x, dia_y, height)
|
||||
USAGE: nut_holder(nut, style, dia_x, dia_y, height, mask)
|
||||
|
||||
nut = "m2", "m2.5", "m3", "m4"
|
||||
style = "default", "sloped", "trap"
|
||||
dia_x = top diameter or x size in mm
|
||||
dia_y = bottom diameter or y size in mm
|
||||
height = holder height in mm
|
||||
mask[0] = true enables component mask
|
||||
mask[1] = mask length
|
||||
mask[2] = mask setback
|
||||
mask[3] = mstyle "default"
|
||||
|
||||
*/
|
||||
|
||||
module nut_holder(nut, style, dia_x, dia_y, height) {
|
||||
module nut_holder(nut, style, dia_x, dia_y, height, mask) {
|
||||
|
||||
nuts = [[2,4,1.6], // m2 size, diameter, height
|
||||
nuts = [[2,4,1.6], // m2 size, diameter, height
|
||||
[2.5,5,2], // m2.5 size, diameter, height
|
||||
[3,5.5,2.4], // m3 size, diameter, height
|
||||
[4,7,3.2]]; // m4 size, diameter, height
|
||||
|
||||
$fn = 180;
|
||||
enablemask = mask[0];
|
||||
mlength = mask[1];
|
||||
msetback = mask[2];
|
||||
mstyle = mask[3];
|
||||
|
||||
adj = .01;
|
||||
$fn = 90;
|
||||
|
||||
if(enablemask == true && mstyle == "default") {
|
||||
if(nut == "m2") {
|
||||
translate([0, 0, -mlength+msetback]) cylinder(d = nuts[0][0], h = mlength);
|
||||
}
|
||||
if(nut == "m2.5") {
|
||||
translate([0, 0, -mlength+msetback]) cylinder(d = nuts[1][0], h = mlength);
|
||||
}
|
||||
if(nut == "m3") {
|
||||
translate([0, 0, -mlength+msetback]) cylinder(d = nuts[2][0], h = mlength);
|
||||
}
|
||||
if(nut == "m4") {
|
||||
translate([0, 0, -mlength+msetback]) cylinder(d = nuts[3][0], h = mlength);
|
||||
}
|
||||
}
|
||||
if(enablemask == false) {
|
||||
|
||||
if( style == "default") {
|
||||
difference() {
|
||||
@@ -159,6 +148,46 @@ $fn = 180;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
NAME: pcb_holder
|
||||
DESCRIPTION: pcb bottom edge holder
|
||||
TODO: none
|
||||
|
||||
USAGE: pcb_holder(size, wallthick)
|
||||
|
||||
size = width of holder
|
||||
wallthick = holder wall thickness
|
||||
*/
|
||||
|
||||
module pcb_holder(size, wallthick) {
|
||||
|
||||
adj=.01;
|
||||
$fn = 90;
|
||||
difference() {
|
||||
union() {
|
||||
translate([-1.85,-1.75,0]) cube([size[0]+3.5,5,6]);
|
||||
translate([size[0]+1.65,-5.75,1])
|
||||
rotate([0,-90,0])
|
||||
linear_extrude(height = size[0]+3.5)
|
||||
polygon(points = [ [-wallthick/2,-wallthick/2],
|
||||
[2,wallthick],
|
||||
[4,4],
|
||||
[-wallthick/2,4]]);
|
||||
translate([-1.85,4,1])
|
||||
rotate([0,-90,180])
|
||||
linear_extrude(height = size[0]+3.5)
|
||||
polygon(points = [ [-wallthick/2,-wallthick/2],
|
||||
[2,wallthick],
|
||||
[2,2],
|
||||
[-wallthick/2,2]]);
|
||||
}
|
||||
translate([-.5,0,2]) cube([size[0]+1,size[2],5]);
|
||||
translate([6,-adj-5-1.75,-adj]) cube([size[0]-12,14,8]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -15,7 +15,10 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
Code released under GPLv3: http://www.gnu.org/licenses/gpl.html
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
NAME: keyhole
|
||||
DESCRIPTION: enclosed keyhole
|
||||
TODO: none
|
||||
@@ -39,9 +42,8 @@ module keyhole(keysize, mask) {
|
||||
mstyle = mask[3];
|
||||
adj=.01;
|
||||
$fn = 90;
|
||||
echo(keysize, mask);
|
||||
|
||||
if(enablemask == true && mstyle == "default") {
|
||||
echo("THIS IS IT");
|
||||
union() {
|
||||
translate([0, 0, -adj]) cylinder(h=keysize[3]+2*adj, d=keysize[0]);
|
||||
translate([-keysize[1]/2, 0, -adj]) cube([keysize[1], keysize[2]+keysize[0]/2, keysize[3]+2*adj]);
|
||||
@@ -49,7 +51,6 @@ echo("THIS IS IT");
|
||||
}
|
||||
}
|
||||
else {
|
||||
echo("THIS IS NOT IT");
|
||||
difference() {
|
||||
union() {
|
||||
translate([0, 0, -adj])
|
||||
|
||||
@@ -15,7 +15,12 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
Code released under GPLv3: http://www.gnu.org/licenses/gpl.html
|
||||
|
||||
adafruit_lcd(mask)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
NAME: adafruit_lcd
|
||||
DESCRIPTION: adafruit 4311 2in TFT IPS Display model
|
||||
TODO: none
|
||||
@@ -79,6 +84,3 @@ module adafruit_lcd(mask) {
|
||||
[hole_size, "#fee5a6", hole_size+1], size_z, enablemask, [false, 20, 0, "default"]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
1787
lib/oem_hk.scad
1787
lib/oem_hk.scad
File diff suppressed because it is too large
Load Diff
@@ -15,6 +15,10 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
Code released under GPLv3: http://www.gnu.org/licenses/gpl.html
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
NAME: standoff
|
||||
DESCRIPTION: create standoffs
|
||||
TODO: none
|
||||
|
||||
@@ -15,12 +15,11 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
Code released under GPLv3: http://www.gnu.org/licenses/gpl.html
|
||||
|
||||
vent(width, length, height, gap, rows, columns, orientation)
|
||||
vent_hex(cells_x, cells_y, thickness, cell_size, cell_spacing, orientation)
|
||||
vent_panel_hex(x, y, thick, cell_size, cell_spacing, border, borders);
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
NAME: vent_panel_hex
|
||||
DESCRIPTION: creates hex vent panel
|
||||
@@ -62,5 +61,3 @@ module vent_panel_hex(x, y, thick, cell_size=8, cell_spacing=3, border=3, border
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -149,10 +149,10 @@ module add(type, loc_x, loc_y, loc_z, face, rotation, size, data, mask) {
|
||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) fans(data[0],mask);
|
||||
}
|
||||
if(type == "hd25") {
|
||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) hd25(data[0]);
|
||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) hd25(data[0],data[1],mask);
|
||||
}
|
||||
if(type == "hd35") {
|
||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) hd35();
|
||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) hd35(data[0],mask);
|
||||
}
|
||||
if(type == "hk_boom") {
|
||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) hk_boom(data[0],data[1],mask);
|
||||
|
||||
@@ -309,19 +309,19 @@ module case_top(case_design) {
|
||||
|
||||
if (class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_rear" && top_rear_left_enable == true &&
|
||||
top_standoff[5] != "blind") {
|
||||
translate([pcbhole_x,pcbhole_y,top_height+1]) cylinder(d=6.5, h=top_height);
|
||||
translate([pcbhole_x,pcbhole_y,top_height+5]) cylinder(d=6.5, h=top_height);
|
||||
}
|
||||
if (class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_front" && top_front_left_enable == true &&
|
||||
top_standoff[5] != "blind") {
|
||||
translate([pcbhole_x,pcbhole_y,top_height+1]) cylinder(d=6.5, h=top_height);
|
||||
translate([pcbhole_x,pcbhole_y,top_height+5]) cylinder(d=6.5, h=top_height);
|
||||
}
|
||||
if (class == "pcbhole" && id == pcb_id && pcbhole_pos == "right_rear" && top_rear_right_enable == true &&
|
||||
top_standoff[5] != "blind") {
|
||||
translate([pcbhole_x,pcbhole_y,top_height+1]) cylinder(d=6.5, h=top_height);
|
||||
translate([pcbhole_x,pcbhole_y,top_height+5]) cylinder(d=6.5, h=top_height);
|
||||
}
|
||||
if (class == "pcbhole" && id == pcb_id && pcbhole_pos == "right_front" && top_front_right_enable == true &&
|
||||
top_standoff[5] != "blind") {
|
||||
translate([pcbhole_x,pcbhole_y,top_height+1]) cylinder(d=6.5, h=top_height);
|
||||
translate([pcbhole_x,pcbhole_y,top_height+5]) cylinder(d=6.5, h=top_height);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -331,7 +331,7 @@ module case_top(case_design) {
|
||||
if((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 || pcb_loc_y >= 10) &&
|
||||
ext_top_rear_right_enable == true && ext_top_standoff[5] != "blind") {
|
||||
translate([width-ext_top_standoff_support_size/4-(2*(wallthick+gap))-(corner_fillet/2),
|
||||
(corner_fillet/2)+ext_top_standoff_support_size/4,top_height+1]) cylinder(d=6.5, h=top_height);
|
||||
(corner_fillet/2)+ext_top_standoff_support_size/4,top_height+5]) cylinder(d=6.5, h=top_height);
|
||||
}
|
||||
// right-front standoff
|
||||
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth >= 10) ||
|
||||
@@ -339,13 +339,13 @@ module case_top(case_design) {
|
||||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) <= 10 && depth-pcb_loc_y-pcb_depth >= 10)) &&
|
||||
ext_top_front_right_enable == true && ext_top_standoff[5] != "blind") {
|
||||
translate([width-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),
|
||||
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),top_height+1])
|
||||
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),top_height+5])
|
||||
cylinder(d=6.5, h=top_height);
|
||||
}
|
||||
// left-rear standoff
|
||||
if((pcb_loc_x >= 10 || pcb_loc_y >= 10) && ext_top_rear_left_enable == true && ext_top_standoff[5] != "blind") {
|
||||
translate([(corner_fillet/2)+ext_top_standoff_support_size/4,
|
||||
(corner_fillet/2)+ext_top_standoff_support_size/4,top_height+1]) cylinder(d=6.5, h=top_height);
|
||||
(corner_fillet/2)+ext_top_standoff_support_size/4,top_height+5]) cylinder(d=6.5, h=top_height);
|
||||
}
|
||||
// left-front standoff
|
||||
if(((pcb_loc_x >= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) ||
|
||||
@@ -353,8 +353,8 @@ module case_top(case_design) {
|
||||
(pcb_loc_x >= 10 && (depth-(pcb_loc_y+pcb_depth)) <= 10)) &&
|
||||
ext_top_front_left_enable == true && ext_top_standoff[5] != "blind") {
|
||||
translate([+(corner_fillet/2)+ext_top_standoff_support_size/4,
|
||||
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),top_height+1])
|
||||
cylinder(d=6.5, h=top_height+1);
|
||||
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),top_height+5])
|
||||
cylinder(d=6.5, h=top_height);
|
||||
}
|
||||
}
|
||||
// top cover pattern
|
||||
|
||||
@@ -55,7 +55,7 @@ module sub(type, loc_x, loc_y, loc_z, face, rotation, size, data, mask) {
|
||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) fan_mask(size_x, size_z, data[0]);
|
||||
}
|
||||
if(type == "hd_holes") {
|
||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) hd_bottom_holes(data[0],data[1],data[2],data[3],data[4]);
|
||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) hd_bottom_holes(data[0],data[1],data[2],data[3]);
|
||||
}
|
||||
if(type == "knockout") {
|
||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) knockout(size_x,size_y,data[0],size_z,data[1],data[2]);
|
||||
|
||||
@@ -1706,156 +1706,6 @@
|
||||
"view": "model",
|
||||
"wallthick": "2"
|
||||
},
|
||||
"hc4_shell_drivebox2.5": {
|
||||
"$fn": "90",
|
||||
"access_panel_location": "[10, 15]",
|
||||
"access_panel_orientation": "landscape",
|
||||
"access_panel_rotation": "0",
|
||||
"access_panel_size": "[70, 30]",
|
||||
"accessory_highlight": "false",
|
||||
"accessory_name": "hc4_shell_drivebox2.5",
|
||||
"adj": "0.01",
|
||||
"bend_allowance": "1",
|
||||
"bottom_access_panel_enable": "false",
|
||||
"bottom_clearence": "3.5",
|
||||
"bottom_cover_pattern": "solid",
|
||||
"bottom_front_left_adjust": "0",
|
||||
"bottom_front_left_enable": "true",
|
||||
"bottom_front_left_support": "left",
|
||||
"bottom_front_right_adjust": "0",
|
||||
"bottom_front_right_enable": "true",
|
||||
"bottom_front_right_support": "none",
|
||||
"bottom_rear_left_adjust": "0",
|
||||
"bottom_rear_left_enable": "true",
|
||||
"bottom_rear_left_support": "rear",
|
||||
"bottom_rear_right_adjust": "0",
|
||||
"bottom_rear_right_enable": "true",
|
||||
"bottom_rear_right_support": "rear",
|
||||
"bottom_sidewall_support": "true",
|
||||
"bottom_standoff_diameter": "5.75",
|
||||
"bottom_standoff_hole_size": "3.4",
|
||||
"bottom_standoff_insert": "false",
|
||||
"bottom_standoff_insert_dia": "4.2",
|
||||
"bottom_standoff_insert_height": "5.1",
|
||||
"bottom_standoff_pillar": "hex",
|
||||
"bottom_standoff_reverse": "false",
|
||||
"bottom_standoff_support_height": "15",
|
||||
"bottom_standoff_support_size": "10",
|
||||
"bottom_standoff_type": "countersunk",
|
||||
"case_design": "shell",
|
||||
"case_offset_bz": "12",
|
||||
"case_offset_tz": "10",
|
||||
"case_offset_x": "86",
|
||||
"case_offset_y": "54",
|
||||
"cooling": "fan_1",
|
||||
"corner_fillet": "3",
|
||||
"edge_fillet": "0",
|
||||
"exhaust_vent": "none",
|
||||
"ext_bottom_front_left_adjust": "0",
|
||||
"ext_bottom_front_left_enable": "true",
|
||||
"ext_bottom_front_left_support": "front",
|
||||
"ext_bottom_front_right_adjust": "0",
|
||||
"ext_bottom_front_right_enable": "true",
|
||||
"ext_bottom_front_right_support": "front",
|
||||
"ext_bottom_rear_left_adjust": "0",
|
||||
"ext_bottom_rear_left_enable": "true",
|
||||
"ext_bottom_rear_left_support": "rear",
|
||||
"ext_bottom_rear_right_adjust": "0",
|
||||
"ext_bottom_rear_right_enable": "true",
|
||||
"ext_bottom_rear_right_support": "rear",
|
||||
"ext_bottom_sidewall_support": "true",
|
||||
"ext_bottom_standoff_diameter": "5.75",
|
||||
"ext_bottom_standoff_hole_size": "3.4",
|
||||
"ext_bottom_standoff_insert": "false",
|
||||
"ext_bottom_standoff_insert_dia": "4.2",
|
||||
"ext_bottom_standoff_insert_height": "5.1",
|
||||
"ext_bottom_standoff_pillar": "hex",
|
||||
"ext_bottom_standoff_reverse": "false",
|
||||
"ext_bottom_standoff_support_height": "15",
|
||||
"ext_bottom_standoff_support_size": "10",
|
||||
"ext_bottom_standoff_type": "countersunk",
|
||||
"ext_bottom_standoffs": "true",
|
||||
"ext_top_front_left_adjust": "0",
|
||||
"ext_top_front_left_enable": "true",
|
||||
"ext_top_front_left_support": "front",
|
||||
"ext_top_front_right_adjust": "0",
|
||||
"ext_top_front_right_enable": "true",
|
||||
"ext_top_front_right_support": "front",
|
||||
"ext_top_rear_left_adjust": "0",
|
||||
"ext_top_rear_left_enable": "true",
|
||||
"ext_top_rear_left_support": "rear",
|
||||
"ext_top_rear_right_adjust": "0",
|
||||
"ext_top_rear_right_enable": "true",
|
||||
"ext_top_rear_right_support": "rear",
|
||||
"ext_top_sidewall_support": "true",
|
||||
"ext_top_standoff_diameter": "5.75",
|
||||
"ext_top_standoff_hole_size": "2.75",
|
||||
"ext_top_standoff_insert": "true",
|
||||
"ext_top_standoff_insert_dia": "4",
|
||||
"ext_top_standoff_insert_height": "5.1",
|
||||
"ext_top_standoff_pillar": "hex",
|
||||
"ext_top_standoff_reverse": "true",
|
||||
"ext_top_standoff_support_height": "15",
|
||||
"ext_top_standoff_support_size": "10",
|
||||
"ext_top_standoff_type": "blind",
|
||||
"ext_top_standoffs": "true",
|
||||
"fan_size": "0",
|
||||
"flat_blank_section": "false",
|
||||
"floorthick": "2",
|
||||
"gap": "1.5",
|
||||
"gpio_opening": "default",
|
||||
"indents": "false",
|
||||
"individual_part": "bottom",
|
||||
"lower_bottom": "0",
|
||||
"material_thickness": "0.5",
|
||||
"move_front": "0",
|
||||
"move_leftside": "0",
|
||||
"move_rear": "0",
|
||||
"move_rightside": "0",
|
||||
"pcb_loc_x": "0",
|
||||
"pcb_loc_y": "0",
|
||||
"pcb_loc_z": "0",
|
||||
"raise_top": "0",
|
||||
"rear_io_plate": "false",
|
||||
"sbc_bottom_standoffs": "true",
|
||||
"sbc_highlight": "false",
|
||||
"sbc_information": "false",
|
||||
"sbc_model": "hc4",
|
||||
"sbc_off": "false",
|
||||
"sbc_top_standoffs": "true",
|
||||
"sidethick": "2",
|
||||
"standard_motherboard_thickness": "0",
|
||||
"text_color": "Green",
|
||||
"text_font": "Nimbus Mono PS",
|
||||
"tol": "0.25",
|
||||
"top_cover_pattern": "solid",
|
||||
"top_front_left_adjust": "0",
|
||||
"top_front_left_enable": "true",
|
||||
"top_front_left_support": "left",
|
||||
"top_front_right_adjust": "0",
|
||||
"top_front_right_enable": "true",
|
||||
"top_front_right_support": "none",
|
||||
"top_rear_left_adjust": "0",
|
||||
"top_rear_left_enable": "true",
|
||||
"top_rear_left_support": "rear",
|
||||
"top_rear_right_adjust": "0",
|
||||
"top_rear_right_enable": "true",
|
||||
"top_rear_right_support": "rear",
|
||||
"top_sidewall_support": "true",
|
||||
"top_standoff_diameter": "5.75",
|
||||
"top_standoff_hole_size": "2.75",
|
||||
"top_standoff_insert": "true",
|
||||
"top_standoff_insert_dia": "4",
|
||||
"top_standoff_insert_height": "5.1",
|
||||
"top_standoff_pillar": "hex",
|
||||
"top_standoff_reverse": "true",
|
||||
"top_standoff_support_height": "15",
|
||||
"top_standoff_support_size": "10",
|
||||
"top_standoff_type": "blind",
|
||||
"uart_opening": "default",
|
||||
"view": "model",
|
||||
"wallthick": "2.5"
|
||||
},
|
||||
"hc4_shell_drivebox2.5v": {
|
||||
"$fn": "90",
|
||||
"access_panel_location": "[10, 15]",
|
||||
@@ -2156,156 +2006,6 @@
|
||||
"view": "model",
|
||||
"wallthick": "3"
|
||||
},
|
||||
"hc4_tray_drivebox2.5": {
|
||||
"$fn": "90",
|
||||
"access_panel_location": "[10, 15]",
|
||||
"access_panel_orientation": "landscape",
|
||||
"access_panel_rotation": "0",
|
||||
"access_panel_size": "[70, 30]",
|
||||
"accessory_highlight": "false",
|
||||
"accessory_name": "hc4_tray_drivebox2.5",
|
||||
"adj": "0.01",
|
||||
"bend_allowance": "1",
|
||||
"bottom_access_panel_enable": "false",
|
||||
"bottom_clearence": "3.5",
|
||||
"bottom_cover_pattern": "solid",
|
||||
"bottom_front_left_adjust": "0",
|
||||
"bottom_front_left_enable": "true",
|
||||
"bottom_front_left_support": "front",
|
||||
"bottom_front_right_adjust": "0",
|
||||
"bottom_front_right_enable": "true",
|
||||
"bottom_front_right_support": "front",
|
||||
"bottom_rear_left_adjust": "0",
|
||||
"bottom_rear_left_enable": "true",
|
||||
"bottom_rear_left_support": "rear",
|
||||
"bottom_rear_right_adjust": "0",
|
||||
"bottom_rear_right_enable": "true",
|
||||
"bottom_rear_right_support": "rear",
|
||||
"bottom_sidewall_support": "true",
|
||||
"bottom_standoff_diameter": "5.75",
|
||||
"bottom_standoff_hole_size": "3.4",
|
||||
"bottom_standoff_insert": "false",
|
||||
"bottom_standoff_insert_dia": "4.2",
|
||||
"bottom_standoff_insert_height": "5.1",
|
||||
"bottom_standoff_pillar": "hex",
|
||||
"bottom_standoff_reverse": "false",
|
||||
"bottom_standoff_support_height": "20",
|
||||
"bottom_standoff_support_size": "10",
|
||||
"bottom_standoff_type": "recessed",
|
||||
"case_design": "tray",
|
||||
"case_offset_bz": "12",
|
||||
"case_offset_tz": "10",
|
||||
"case_offset_x": "88",
|
||||
"case_offset_y": "55",
|
||||
"cooling": "fan_1",
|
||||
"corner_fillet": "3",
|
||||
"edge_fillet": "2",
|
||||
"exhaust_vent": "none",
|
||||
"ext_bottom_front_left_adjust": "0",
|
||||
"ext_bottom_front_left_enable": "true",
|
||||
"ext_bottom_front_left_support": "front",
|
||||
"ext_bottom_front_right_adjust": "0",
|
||||
"ext_bottom_front_right_enable": "true",
|
||||
"ext_bottom_front_right_support": "front",
|
||||
"ext_bottom_rear_left_adjust": "0",
|
||||
"ext_bottom_rear_left_enable": "true",
|
||||
"ext_bottom_rear_left_support": "rear",
|
||||
"ext_bottom_rear_right_adjust": "0",
|
||||
"ext_bottom_rear_right_enable": "true",
|
||||
"ext_bottom_rear_right_support": "rear",
|
||||
"ext_bottom_sidewall_support": "true",
|
||||
"ext_bottom_standoff_diameter": "5.75",
|
||||
"ext_bottom_standoff_hole_size": "3.4",
|
||||
"ext_bottom_standoff_insert": "false",
|
||||
"ext_bottom_standoff_insert_dia": "4.2",
|
||||
"ext_bottom_standoff_insert_height": "5.1",
|
||||
"ext_bottom_standoff_pillar": "hex",
|
||||
"ext_bottom_standoff_reverse": "false",
|
||||
"ext_bottom_standoff_support_height": "4",
|
||||
"ext_bottom_standoff_support_size": "10",
|
||||
"ext_bottom_standoff_type": "countersunk",
|
||||
"ext_bottom_standoffs": "false",
|
||||
"ext_top_front_left_adjust": "0",
|
||||
"ext_top_front_left_enable": "true",
|
||||
"ext_top_front_left_support": "front",
|
||||
"ext_top_front_right_adjust": "0",
|
||||
"ext_top_front_right_enable": "true",
|
||||
"ext_top_front_right_support": "front",
|
||||
"ext_top_rear_left_adjust": "0",
|
||||
"ext_top_rear_left_enable": "true",
|
||||
"ext_top_rear_left_support": "rear",
|
||||
"ext_top_rear_right_adjust": "0",
|
||||
"ext_top_rear_right_enable": "true",
|
||||
"ext_top_rear_right_support": "rear",
|
||||
"ext_top_sidewall_support": "true",
|
||||
"ext_top_standoff_diameter": "5.75",
|
||||
"ext_top_standoff_hole_size": "2.75",
|
||||
"ext_top_standoff_insert": "false",
|
||||
"ext_top_standoff_insert_dia": "4.2",
|
||||
"ext_top_standoff_insert_height": "5.1",
|
||||
"ext_top_standoff_pillar": "hex",
|
||||
"ext_top_standoff_reverse": "true",
|
||||
"ext_top_standoff_support_height": "4",
|
||||
"ext_top_standoff_support_size": "10",
|
||||
"ext_top_standoff_type": "blind",
|
||||
"ext_top_standoffs": "false",
|
||||
"fan_size": "0",
|
||||
"flat_blank_section": "false",
|
||||
"floorthick": "2",
|
||||
"gap": "1.5",
|
||||
"gpio_opening": "default",
|
||||
"indents": "false",
|
||||
"individual_part": "bottom",
|
||||
"lower_bottom": "0",
|
||||
"material_thickness": "0.5",
|
||||
"move_front": "0",
|
||||
"move_leftside": "0",
|
||||
"move_rear": "0",
|
||||
"move_rightside": "0",
|
||||
"pcb_loc_x": "0",
|
||||
"pcb_loc_y": "0",
|
||||
"pcb_loc_z": "0",
|
||||
"raise_top": "0",
|
||||
"rear_io_plate": "false",
|
||||
"sbc_bottom_standoffs": "true",
|
||||
"sbc_highlight": "false",
|
||||
"sbc_information": "false",
|
||||
"sbc_model": "hc4",
|
||||
"sbc_off": "false",
|
||||
"sbc_top_standoffs": "false",
|
||||
"sidethick": "2",
|
||||
"standard_motherboard_thickness": "0",
|
||||
"text_color": "Green",
|
||||
"text_font": "Nimbus Mono PS",
|
||||
"tol": "0.25",
|
||||
"top_cover_pattern": "solid",
|
||||
"top_front_left_adjust": "0",
|
||||
"top_front_left_enable": "true",
|
||||
"top_front_left_support": "front",
|
||||
"top_front_right_adjust": "0",
|
||||
"top_front_right_enable": "true",
|
||||
"top_front_right_support": "front",
|
||||
"top_rear_left_adjust": "0",
|
||||
"top_rear_left_enable": "true",
|
||||
"top_rear_left_support": "rear",
|
||||
"top_rear_right_adjust": "0",
|
||||
"top_rear_right_enable": "true",
|
||||
"top_rear_right_support": "rear",
|
||||
"top_sidewall_support": "true",
|
||||
"top_standoff_diameter": "5.75",
|
||||
"top_standoff_hole_size": "2.75",
|
||||
"top_standoff_insert": "false",
|
||||
"top_standoff_insert_dia": "4.2",
|
||||
"top_standoff_insert_height": "5.1",
|
||||
"top_standoff_pillar": "hex",
|
||||
"top_standoff_reverse": "true",
|
||||
"top_standoff_support_height": "4",
|
||||
"top_standoff_support_size": "10",
|
||||
"top_standoff_type": "blind",
|
||||
"uart_opening": "default",
|
||||
"view": "model",
|
||||
"wallthick": "2"
|
||||
},
|
||||
"m1s_shell_nvme": {
|
||||
"$fn": "90",
|
||||
"access_panel_location": "[0, 28]",
|
||||
@@ -8902,6 +8602,304 @@
|
||||
"uart_opening": "default",
|
||||
"view": "model",
|
||||
"wallthick": "2"
|
||||
},
|
||||
"hc4_tray_drivebox2.5": {
|
||||
"$fn": "90",
|
||||
"access_panel_location": "[10, 15]",
|
||||
"access_panel_orientation": "landscape",
|
||||
"access_panel_rotation": "0",
|
||||
"access_panel_size": "[70, 30]",
|
||||
"accessory_highlight": "false",
|
||||
"accessory_name": "hc4_tray_drivebox2.5",
|
||||
"adj": "0.01",
|
||||
"bend_allowance": "1",
|
||||
"bottom_access_panel_enable": "false",
|
||||
"bottom_clearence": "3.5",
|
||||
"bottom_cover_pattern": "solid",
|
||||
"bottom_front_left_adjust": "0",
|
||||
"bottom_front_left_enable": "true",
|
||||
"bottom_front_left_support": "front",
|
||||
"bottom_front_right_adjust": "0",
|
||||
"bottom_front_right_enable": "true",
|
||||
"bottom_front_right_support": "front",
|
||||
"bottom_rear_left_adjust": "0",
|
||||
"bottom_rear_left_enable": "true",
|
||||
"bottom_rear_left_support": "rear",
|
||||
"bottom_rear_right_adjust": "0",
|
||||
"bottom_rear_right_enable": "true",
|
||||
"bottom_rear_right_support": "rear",
|
||||
"bottom_sidewall_support": "true",
|
||||
"bottom_standoff_diameter": "5.75",
|
||||
"bottom_standoff_hole_size": "3.4",
|
||||
"bottom_standoff_insert": "false",
|
||||
"bottom_standoff_insert_dia": "4.2",
|
||||
"bottom_standoff_insert_height": "5.1",
|
||||
"bottom_standoff_pillar": "hex",
|
||||
"bottom_standoff_reverse": "false",
|
||||
"bottom_standoff_support_height": "4",
|
||||
"bottom_standoff_support_size": "10",
|
||||
"bottom_standoff_type": "recessed",
|
||||
"case_design": "tray",
|
||||
"case_offset_bz": "12",
|
||||
"case_offset_tz": "10",
|
||||
"case_offset_x": "88",
|
||||
"case_offset_y": "55",
|
||||
"cooling": "fan_1",
|
||||
"corner_fillet": "3",
|
||||
"edge_fillet": "2",
|
||||
"ext_bottom_front_left_adjust": "0",
|
||||
"ext_bottom_front_left_enable": "true",
|
||||
"ext_bottom_front_left_support": "front",
|
||||
"ext_bottom_front_right_adjust": "0",
|
||||
"ext_bottom_front_right_enable": "true",
|
||||
"ext_bottom_front_right_support": "front",
|
||||
"ext_bottom_rear_left_adjust": "0",
|
||||
"ext_bottom_rear_left_enable": "true",
|
||||
"ext_bottom_rear_left_support": "rear",
|
||||
"ext_bottom_rear_right_adjust": "0",
|
||||
"ext_bottom_rear_right_enable": "true",
|
||||
"ext_bottom_rear_right_support": "rear",
|
||||
"ext_bottom_sidewall_support": "true",
|
||||
"ext_bottom_standoff_diameter": "5.75",
|
||||
"ext_bottom_standoff_hole_size": "3.4",
|
||||
"ext_bottom_standoff_insert": "false",
|
||||
"ext_bottom_standoff_insert_dia": "4.2",
|
||||
"ext_bottom_standoff_insert_height": "5.1",
|
||||
"ext_bottom_standoff_pillar": "hex",
|
||||
"ext_bottom_standoff_reverse": "false",
|
||||
"ext_bottom_standoff_support_height": "4",
|
||||
"ext_bottom_standoff_support_size": "10",
|
||||
"ext_bottom_standoff_type": "countersunk",
|
||||
"ext_bottom_standoffs": "false",
|
||||
"ext_top_front_left_adjust": "0",
|
||||
"ext_top_front_left_enable": "true",
|
||||
"ext_top_front_left_support": "front",
|
||||
"ext_top_front_right_adjust": "0",
|
||||
"ext_top_front_right_enable": "true",
|
||||
"ext_top_front_right_support": "front",
|
||||
"ext_top_rear_left_adjust": "0",
|
||||
"ext_top_rear_left_enable": "true",
|
||||
"ext_top_rear_left_support": "rear",
|
||||
"ext_top_rear_right_adjust": "0",
|
||||
"ext_top_rear_right_enable": "true",
|
||||
"ext_top_rear_right_support": "rear",
|
||||
"ext_top_sidewall_support": "true",
|
||||
"ext_top_standoff_diameter": "5.75",
|
||||
"ext_top_standoff_hole_size": "2.75",
|
||||
"ext_top_standoff_insert": "false",
|
||||
"ext_top_standoff_insert_dia": "4.2",
|
||||
"ext_top_standoff_insert_height": "5.1",
|
||||
"ext_top_standoff_pillar": "hex",
|
||||
"ext_top_standoff_reverse": "true",
|
||||
"ext_top_standoff_support_height": "4",
|
||||
"ext_top_standoff_support_size": "10",
|
||||
"ext_top_standoff_type": "blind",
|
||||
"ext_top_standoffs": "false",
|
||||
"fan_size": "0",
|
||||
"flat_blank_section": "false",
|
||||
"floorthick": "2",
|
||||
"gap": "1",
|
||||
"gpio_opening": "default",
|
||||
"indents": "false",
|
||||
"individual_part": "bottom",
|
||||
"lower_bottom": "0",
|
||||
"material_thickness": "0.5",
|
||||
"move_front": "0",
|
||||
"move_leftside": "0",
|
||||
"move_rear": "0",
|
||||
"move_rightside": "0",
|
||||
"pcb_loc_x": "0",
|
||||
"pcb_loc_y": "0",
|
||||
"pcb_loc_z": "0",
|
||||
"raise_top": "0",
|
||||
"rear_io_plate": "false",
|
||||
"sbc_bottom_standoffs": "true",
|
||||
"sbc_highlight": "false",
|
||||
"sbc_information": "false",
|
||||
"sbc_model": "hc4",
|
||||
"sbc_off": "false",
|
||||
"sbc_top_standoffs": "false",
|
||||
"sidethick": "2",
|
||||
"standard_motherboard_thickness": "0",
|
||||
"text_color": "Green",
|
||||
"text_font": "Nimbus Mono PS",
|
||||
"tol": "0.25",
|
||||
"top_cover_pattern": "solid",
|
||||
"top_front_left_adjust": "0",
|
||||
"top_front_left_enable": "true",
|
||||
"top_front_left_support": "front",
|
||||
"top_front_right_adjust": "0",
|
||||
"top_front_right_enable": "true",
|
||||
"top_front_right_support": "front",
|
||||
"top_rear_left_adjust": "0",
|
||||
"top_rear_left_enable": "true",
|
||||
"top_rear_left_support": "rear",
|
||||
"top_rear_right_adjust": "0",
|
||||
"top_rear_right_enable": "true",
|
||||
"top_rear_right_support": "rear",
|
||||
"top_sidewall_support": "true",
|
||||
"top_standoff_diameter": "5.75",
|
||||
"top_standoff_hole_size": "2.75",
|
||||
"top_standoff_insert": "false",
|
||||
"top_standoff_insert_dia": "4.2",
|
||||
"top_standoff_insert_height": "5.1",
|
||||
"top_standoff_pillar": "hex",
|
||||
"top_standoff_reverse": "true",
|
||||
"top_standoff_support_height": "4",
|
||||
"top_standoff_support_size": "10",
|
||||
"top_standoff_type": "blind",
|
||||
"uart_opening": "default",
|
||||
"view": "model",
|
||||
"wallthick": "2"
|
||||
},
|
||||
"hc4_shell_drivebox2.5": {
|
||||
"$fn": "90",
|
||||
"access_panel_location": "[10, 15]",
|
||||
"access_panel_orientation": "landscape",
|
||||
"access_panel_rotation": "0",
|
||||
"access_panel_size": "[70, 30]",
|
||||
"accessory_highlight": "false",
|
||||
"accessory_name": "hc4_shell_drivebox2.5",
|
||||
"adj": "0.01",
|
||||
"bend_allowance": "1",
|
||||
"bottom_access_panel_enable": "false",
|
||||
"bottom_clearence": "3.5",
|
||||
"bottom_cover_pattern": "solid",
|
||||
"bottom_front_left_adjust": "0",
|
||||
"bottom_front_left_enable": "true",
|
||||
"bottom_front_left_support": "left",
|
||||
"bottom_front_right_adjust": "0",
|
||||
"bottom_front_right_enable": "true",
|
||||
"bottom_front_right_support": "none",
|
||||
"bottom_rear_left_adjust": "0",
|
||||
"bottom_rear_left_enable": "true",
|
||||
"bottom_rear_left_support": "rear",
|
||||
"bottom_rear_right_adjust": "0",
|
||||
"bottom_rear_right_enable": "true",
|
||||
"bottom_rear_right_support": "rear",
|
||||
"bottom_sidewall_support": "true",
|
||||
"bottom_standoff_diameter": "5.75",
|
||||
"bottom_standoff_hole_size": "3.4",
|
||||
"bottom_standoff_insert": "true",
|
||||
"bottom_standoff_insert_dia": "4.2",
|
||||
"bottom_standoff_insert_height": "5.1",
|
||||
"bottom_standoff_pillar": "hex",
|
||||
"bottom_standoff_reverse": "false",
|
||||
"bottom_standoff_support_height": "4",
|
||||
"bottom_standoff_support_size": "10",
|
||||
"bottom_standoff_type": "countersunk",
|
||||
"case_design": "shell",
|
||||
"case_offset_bz": "12",
|
||||
"case_offset_tz": "10",
|
||||
"case_offset_x": "86",
|
||||
"case_offset_y": "54",
|
||||
"cooling": "fan_1",
|
||||
"corner_fillet": "3",
|
||||
"edge_fillet": "0",
|
||||
"ext_bottom_front_left_adjust": "0",
|
||||
"ext_bottom_front_left_enable": "true",
|
||||
"ext_bottom_front_left_support": "front",
|
||||
"ext_bottom_front_right_adjust": "0",
|
||||
"ext_bottom_front_right_enable": "true",
|
||||
"ext_bottom_front_right_support": "front",
|
||||
"ext_bottom_rear_left_adjust": "0",
|
||||
"ext_bottom_rear_left_enable": "true",
|
||||
"ext_bottom_rear_left_support": "rear",
|
||||
"ext_bottom_rear_right_adjust": "0",
|
||||
"ext_bottom_rear_right_enable": "true",
|
||||
"ext_bottom_rear_right_support": "rear",
|
||||
"ext_bottom_sidewall_support": "true",
|
||||
"ext_bottom_standoff_diameter": "5.75",
|
||||
"ext_bottom_standoff_hole_size": "3.4",
|
||||
"ext_bottom_standoff_insert": "true",
|
||||
"ext_bottom_standoff_insert_dia": "4.2",
|
||||
"ext_bottom_standoff_insert_height": "5.1",
|
||||
"ext_bottom_standoff_pillar": "hex",
|
||||
"ext_bottom_standoff_reverse": "false",
|
||||
"ext_bottom_standoff_support_height": "4",
|
||||
"ext_bottom_standoff_support_size": "10",
|
||||
"ext_bottom_standoff_type": "blind",
|
||||
"ext_bottom_standoffs": "true",
|
||||
"ext_top_front_left_adjust": "0",
|
||||
"ext_top_front_left_enable": "true",
|
||||
"ext_top_front_left_support": "front",
|
||||
"ext_top_front_right_adjust": "0",
|
||||
"ext_top_front_right_enable": "true",
|
||||
"ext_top_front_right_support": "front",
|
||||
"ext_top_rear_left_adjust": "0",
|
||||
"ext_top_rear_left_enable": "true",
|
||||
"ext_top_rear_left_support": "rear",
|
||||
"ext_top_rear_right_adjust": "0",
|
||||
"ext_top_rear_right_enable": "true",
|
||||
"ext_top_rear_right_support": "rear",
|
||||
"ext_top_sidewall_support": "true",
|
||||
"ext_top_standoff_diameter": "6",
|
||||
"ext_top_standoff_hole_size": "3.4",
|
||||
"ext_top_standoff_insert": "true",
|
||||
"ext_top_standoff_insert_dia": "4",
|
||||
"ext_top_standoff_insert_height": "5.1",
|
||||
"ext_top_standoff_pillar": "hex",
|
||||
"ext_top_standoff_reverse": "true",
|
||||
"ext_top_standoff_support_height": "17",
|
||||
"ext_top_standoff_support_size": "10",
|
||||
"ext_top_standoff_type": "recessed",
|
||||
"ext_top_standoffs": "true",
|
||||
"fan_size": "0",
|
||||
"flat_blank_section": "false",
|
||||
"floorthick": "2",
|
||||
"gap": "1.5",
|
||||
"gpio_opening": "default",
|
||||
"indents": "false",
|
||||
"individual_part": "bottom",
|
||||
"lower_bottom": "0",
|
||||
"material_thickness": "0.5",
|
||||
"move_front": "0",
|
||||
"move_leftside": "0",
|
||||
"move_rear": "0",
|
||||
"move_rightside": "0",
|
||||
"pcb_loc_x": "0",
|
||||
"pcb_loc_y": "0",
|
||||
"pcb_loc_z": "0",
|
||||
"raise_top": "0",
|
||||
"rear_io_plate": "false",
|
||||
"sbc_bottom_standoffs": "true",
|
||||
"sbc_highlight": "false",
|
||||
"sbc_information": "false",
|
||||
"sbc_model": "hc4",
|
||||
"sbc_off": "false",
|
||||
"sbc_top_standoffs": "true",
|
||||
"sidethick": "2",
|
||||
"standard_motherboard_thickness": "0",
|
||||
"text_color": "Green",
|
||||
"text_font": "Nimbus Mono PS",
|
||||
"tol": "0.25",
|
||||
"top_cover_pattern": "solid",
|
||||
"top_front_left_adjust": "0",
|
||||
"top_front_left_enable": "false",
|
||||
"top_front_left_support": "left",
|
||||
"top_front_right_adjust": "0",
|
||||
"top_front_right_enable": "false",
|
||||
"top_front_right_support": "none",
|
||||
"top_rear_left_adjust": "0",
|
||||
"top_rear_left_enable": "true",
|
||||
"top_rear_left_support": "rear",
|
||||
"top_rear_right_adjust": "0",
|
||||
"top_rear_right_enable": "false",
|
||||
"top_rear_right_support": "rear",
|
||||
"top_sidewall_support": "true",
|
||||
"top_standoff_diameter": "5.75",
|
||||
"top_standoff_hole_size": "2.75",
|
||||
"top_standoff_insert": "true",
|
||||
"top_standoff_insert_dia": "4",
|
||||
"top_standoff_insert_height": "5.1",
|
||||
"top_standoff_pillar": "hex",
|
||||
"top_standoff_reverse": "true",
|
||||
"top_standoff_support_height": "17",
|
||||
"top_standoff_support_size": "10",
|
||||
"top_standoff_type": "recessed",
|
||||
"uart_opening": "default",
|
||||
"view": "model",
|
||||
"wallthick": "2.5"
|
||||
}
|
||||
},
|
||||
"fileFormatVersion": "1"
|
||||
|
||||
@@ -201,29 +201,19 @@ accessory_data = [
|
||||
|
||||
// Odroid-HC4
|
||||
["hc4_tray_drivebox2.5",
|
||||
"add1","hk_hc4_oled_holder",20,82,1.99,"bottom",[0,0,0],["case",false,true,false],[0,0,2],[0],[true,10,2,"default"],
|
||||
"add2","hk_hc4_oled_holder",20,82,1.99,"bottom",[0,0,0],["case",false,true,false],[0,0,2],[0],[true,10,2,"default"],
|
||||
"add2","hd_holder",10,-24,1.99,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait"],[false,10,2,"default"],
|
||||
"sub","hd_holes",10,-24,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","horizontal","none",3],[false,10,2,"default"],
|
||||
"sub","round",92,-10,5,"bottom",[0,90,0],["case",true,true,false],[3,0,3],[0],[false,10,2,"default"],
|
||||
"sub","round",92,66.6,5,"bottom",[0,90,0],["case",true,true,false],[3,0,3],[0],[false,10,2,"default"],
|
||||
"sub","round",92,-10,23,"bottom",[0,90,0],["case",true,true,false],[3,0,3],[0],[false,10,2,"default"],
|
||||
"sub","round",92,66.6,23,"bottom",[0,90,0],["case",true,true,false],[3,0,3],[0],[false,10,2,"default"],
|
||||
"suball","fan_mask",37,-.1,7,"bottom",[90,0,0],["case",true,false,false],[40,0,3],["fan_open"],[false,10,2,"default"],
|
||||
"suball","vent",72,87,27,"bottom",[0,0,0],["case",false,true,false],[2,13,4],[1,4,"vertical",1],[false,10,2,"default"],
|
||||
"model","hk_hc4_oled",20,81,2,"bottom",[0,0,0],["case",false,true,false],[0,0,0],[0],[false,10,2,"default"],
|
||||
"model","hd25",10,76,2,"bottom",[0,0,-90],["case",true,true,false],[0,0,0],[15],[false,10,2,"default"],
|
||||
"model","hd25",10,76,20,"bottom",[0,0,-90],["case",true,true,false],[0,0,0],[15],[false,10,2,"default"],
|
||||
"model","hk_hc4_oled",20,82,2,"bottom",[0,0,0],["case",false,true,false],[0,0,0],[0],[false,10,2,"default"],
|
||||
"model","hd25",10,-24,2,"bottom",[0,0,0],["case",true,true,false],[0,0,0],["portrait",15],[true,17,2,"both"],
|
||||
"model","hd25",10,-24,20,"bottom",[0,0,0],["case",true,true,false],[0,0,0],["portrait",15],[true,17,2,"default"],
|
||||
"model","fan_cover",37,-4,7,"bottom",[90,0,0],["case",true,false,false],[40,0,3],["fan_1"],[false,10,2,"default"],
|
||||
"platter","fan_cover",-50,50,0,"bottom",[0,0,0],["case",false,false,false],[40,0,3],["fan_1"],[false,10,2,"default"]],
|
||||
|
||||
["hc4_shell_drivebox2.5",
|
||||
"add2","hk_hc4_oled_holder",20,82,1.99,"bottom",[0,0,0],["case",false,true,false],[0,0,2],[0],[true,10,2,"default"],
|
||||
"add2","hd_holder",10,-21,1.99,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait"],[false,10,2,"default"],
|
||||
"sub","hd_holes",10,-21,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","horizontal","none",3],[false,10,2,"default"],
|
||||
"sub","round",92,-5,5,"bottom",[0,90,0],["case",true,true,false],[3,0,3],[0],[false,10,2,"default"],
|
||||
"sub","round",92,69.6,5,"bottom",[0,90,0],["case",true,true,false],[3,0,3],[0],[false,10,2,"default"],
|
||||
"sub","round",92,-5,23,"bottom",[0,90,0],["case",true,true,false],[3,0,3],[0],[false,10,2,"default"],
|
||||
"sub","round",92,69.6,23,"bottom",[0,90,0],["case",true,true,false],[3,0,3],[0],[false,10,2,"default"],
|
||||
"add2","hd_holder",12,-21,1.99,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait"],[false,10,2,"default"],
|
||||
"sub","vent",71.85,88,30,"top",[0,0,0],["case",false,true,false],[2,13,4],[1,4,"vertical",1],[false,10,2,"default"],
|
||||
"suball","fan_mask",39,-.1,7,"bottom",[90,0,0],["case",true,false,false],[40,0,3],["fan_open"],[false,10,2,"default"],
|
||||
"sub","vent",-3.5,35,34,"top",[0,0,90],["case",false,false,false],[2,10,4],[1,17,"vertical",1],[false,10,2,"default"],
|
||||
@@ -231,16 +221,16 @@ accessory_data = [
|
||||
"sub","vent",-3.5,35,9,"bottom",[0,0,90],["case",false,false,false],[2,10,4],[1,17,"vertical",1],[false,10,2,"default"],
|
||||
"sub","vent",92,35,9,"bottom",[0,0,90],["case",true,false,false],[2,10,4],[1,17,"vertical",1],[false,10,2,"default"],
|
||||
"model","hk_hc4_oled",20,82,1.99,"bottom",[0,0,0],["case",false,true,false],[0,0,0],[0],[false,10,2,"default"],
|
||||
"model","hd25",10,79,2,"bottom",[0,0,-90],["case",true,true,false],[0,0,0],[15],[false,10,2,"default"],
|
||||
"model","hd25",10,79,20,"bottom",[0,0,-90],["case",true,true,false],[0,0,0],[15],[false,10,2,"default"],
|
||||
"model","hd25",12,-21,2,"bottom",[0,0,0],["case",true,true,false],[0,0,0],["portrait",15],[true,20,2,"both"],
|
||||
"model","hd25",12,-21,20,"bottom",[0,0,0],["case",true,true,false],[0,0,0],["portrait",15],[true,20,2,"default"],
|
||||
"model","fan_cover",39,-4,7,"top",[90,0,0],["case",true,false,false],[40,0,3],["fan_1"],[false,10,2,"default"],
|
||||
"platter","fan_cover",-50,50,0,"bottom",[0,0,0],["case",false,false,false],[40,0,3],["fan_1"],[false,10,2,"default"]],
|
||||
|
||||
["hc4_shell_drivebox2.5v",
|
||||
"add2","hd_holder",45.6,-21,1.99,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","right"],[false,10,2,"default"],
|
||||
"add2","hd_holder",79.6,-21,1.99,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","left",3],[false,10,2,"default"],
|
||||
"sub","hd_holes",45.6,-21,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","right",3],[false,10,2,"default"],
|
||||
"sub","hd_holes",79.6,-21,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","left",3],[false,10,2,"default"],
|
||||
// "sub","hd_holes",45.6,-21,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","right",3],[false,10,2,"default"],
|
||||
// "sub","hd_holes",79.6,-21,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","left",3],[false,10,2,"default"],
|
||||
"sub","round",91.3,-5,6.07,"bottom",[0,90,0],["case",true,true,false],[3,0,6],[0],[false,10,2,"default"],
|
||||
"sub","round",91.3,71.6,6.07,"bottom",[0,90,0],["case",true,true,false],[3,0,6],[0],[false,10,2,"default"],
|
||||
"sub","vent",71.85,88,30,"top",[0,0,0],["case",false,true,false],[2,13,4],[1,4,"vertical",1],[false,10,2,"default"],
|
||||
@@ -248,22 +238,22 @@ accessory_data = [
|
||||
"add1","hk_hc4_oled_holder",20,82,1.99,"bottom",[0,0,0],["case",false,true,false],[0,0,2],[0],[true,10,2,"default"],
|
||||
"model","hk_hc4_oled",20,82,1.99,"bottom",[0,0,0],["case",false,true,false],[0,0,0],[0],[false,10,2,"default"],
|
||||
"model","fan_cover",46.6,-3,30,"top",[90,0,0],["case",true,false,false],[40,0,3],["fan_1"],[false,10,2,"default"],
|
||||
"model","hd25",45.6,79,71.85,"bottom",[-90,0,-90],["case",true,true,false],[0,0,0],[15],[false,10,2,"default"],
|
||||
"model","hd25",79.3,79,2,"bottom",[90,0,-90],["case",true,true,false],[0,0,0],[15],[false,10,2,"default"],
|
||||
"model","hd25",45.6,79,71.85,"bottom",[-90,0,-90],["case",true,true,false],[0,0,0],["portrait",15],[true,10,2,"default"],
|
||||
"model","hd25",79.3,79,2,"bottom",[90,0,-90],["case",true,true,false],[0,0,0],["portrait",15],[true,10,2,"default"],
|
||||
"platter","fan_cover",-50,50,0,"bottom",[0,0,0],["case",false,false,false],[40,0,3],["fan_1"],[false,10,2,"default"]],
|
||||
|
||||
["hc4_shell_drivebox3.5",
|
||||
"add1","hk_hc4_oled_holder",20,82,3,"bottom",[0,0,0],["case",false,true,false],[0,0,3],[0],[true,10,2,"default"],
|
||||
"add2","hd_holder",-19.4,-67,3,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[3.5,"portrait"],[false,10,2,"default"],
|
||||
"sub","hd_holes",-19.4,-67,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[3.5,"portrait","horizontal","none",3],[false,10,2,"default"],
|
||||
// "sub","hd_holes",-19.4,-67,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[3.5,"portrait","horizontal","none",3],[false,10,2,"default"],
|
||||
"sub","round",91.6,-38.5,9.35,"bottom",[0,90,0],["case",true,true,false],[3,0,4],[0],[false,10,2,"default"],
|
||||
"sub","round",91.6,3.4,9.35,"bottom",[0,90,0],["case",true,true,false],[3,0,4],[0],[false,10,2,"default"],
|
||||
"sub","round",91.6,63.1,9.35,"bottom",[0,90,0],["case",true,true,false],[3,0,4],[0],[false,10,2,"default"],
|
||||
"suball","vent",72,88,29,"bottom",[0,0,0],["case",false,true,false],[2,13,4],[1,4,"vertical",1],[false,10,2,"default"],
|
||||
"suball","fan_mask",5.6,-1.5,7,"bottom",[90,0,0],["case",true,false,false],[40,0,3],["fan_open"],[false,10,2,"default"],
|
||||
"model","hk_hc4_oled",20,82,1.99,"bottom",[0,0,0],["case",false,true,false],[0,0,0],[0],[false,10,2,"default"],
|
||||
"model","hd35",-19.4,80,3,"bottom",[0,0,-90],["case",true,true,false],[0,0,0],[0],[false,10,2,"default"],
|
||||
"model","hd35",-19.4,80,35,"bottom",[0,0,-90],["case",true,true,false],[0,0,0],[0],[false,10,2,"default"],
|
||||
"model","hd35",-19.4,80,3,"bottom",[0,0,-90],["case",true,true,false],[0,0,0],["portrait"],[true,10,2,"default"],
|
||||
"model","hd35",-19.4,80,35,"bottom",[0,0,-90],["case",true,true,false],[0,0,0],["portrait"],[true,10,2,"default"],
|
||||
"model","fan_cover",5.6,-4,7,"top",[90,0,0],["case",true,false,false],[40,0,3],["fan_1"],[false,10,2,"default"],
|
||||
"platter","fan_cover",-50,50,0,"bottom",[0,0,0],["case",false,false,false],[40,0,3],["fan_1"],[false,10,2,"default"]],
|
||||
|
||||
@@ -307,14 +297,14 @@ accessory_data = [
|
||||
// "add2","button",60,118.5,37.7,"top",[0,0,0],["sbc-case_z",false,false,true],[10,0,18.5],["recess"],[true,10,2,"default"],
|
||||
// "model","button_assembly",60,118.5,37.7,"top",[0,0,0],["sbc-case_z",false,false,true],[10,0,18.5],["recess"],[false,10,2,"default"],
|
||||
// "platter","button_assembly",-20,0,0,"top",[0,0,0],["case",false,false,false],[10,0,11],["recess"],[false,10,2,"default"],
|
||||
"sub","hd_holes",10,22,35,"top",[0,0,0],["sbc-case_z",true,true,true],[0,0,0],[2.5,"portrait","horizontal","none",3],[false,10,2,"default"],
|
||||
"model","hd25",80,122,35.5,"top",[0,180,90],["sbc-case_z",true,true,true],[0,0,0],[7],[false,10,2,"default"],
|
||||
// "sub","hd_holes",10,22,35,"top",[0,0,0],["sbc-case_z",true,true,true],[0,0,0],[2.5,"portrait","horizontal","none",3],[false,10,2,"default"],
|
||||
"model","hd25",80,122,35.5,"top",[0,180,90],["sbc-case_z",true,true,true],[0,0,0],["portrait",7],[true,10,2,"default"],
|
||||
"sub","vent",94.5,32,10,"top",[0,0,90],["case",true,false,false],[2,15,4],[1,17,"vertical",1],[false,10,2,"default"],
|
||||
"sub","vent",-6.5,32,10,"top",[0,0,90],["case",false,false,false],[2,15,4],[1,17,"vertical",1],[false,10,2,"default"]],
|
||||
|
||||
["m1_fitted_drivebox2.5",
|
||||
"add2","hd_holder",10,20,1.99,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait"],[false,10,2,"default"],
|
||||
"sub","hd_holes",10,20,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","horizontal","none",3],[false,10,2,"default"],
|
||||
// "sub","hd_holes",10,20,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","horizontal","none",3],[false,10,2,"default"],
|
||||
"sub","round",92,34,5,"bottom",[0,90,0],["case",true,true,false],[3,0,3],[0],[false,10,2,"default"],
|
||||
"sub","round",92,110.6,5,"bottom",[0,90,0],["case",true,true,false],[3,0,3],[0],[false,10,2,"default"],
|
||||
"sub","round",92,34,23,"bottom",[0,90,0],["case",true,true,false],[3,0,3],[0],[false,10,2,"default"],
|
||||
@@ -324,14 +314,14 @@ accessory_data = [
|
||||
"sub","vent",92,25,30,"bottom",[0,0,90],["case",true,false,false],[2,10,4],[1,17,"vertical",1],[false,10,2,"default"],
|
||||
"sub","vent",-3.75,25,9,"bottom",[0,0,90],["case",false,false,false],[2,10,4],[1,17,"vertical",1],[false,10,2,"default"],
|
||||
"sub","vent",92,25,9,"bottom",[0,0,90],["case",true,false,false],[2,10,4],[1,17,"vertical",1],[false,10,2,"default"],
|
||||
"model","hd25",10,120,2,"bottom",[0,0,-90],["case",true,true,false],[0,0,0],[15],[false,10,2,"default"],
|
||||
"model","hd25",10,120,20,"bottom",[0,0,-90],["case",true,true,false],[0,0,0],[15],[false,10,2,"default"],
|
||||
"model","hd25",10,120,2,"bottom",[0,0,-90],["case",true,true,false],[0,0,0],["portrait",15],[true,10,2,"default"],
|
||||
"model","hd25",10,120,20,"bottom",[0,0,-90],["case",true,true,false],[0,0,0],["portrait",15],[true,10,2,"default"],
|
||||
"model","fan_cover",39,-4,7,"bottom",[90,0,0],["case",true,false,false],[40,0,3],["fan_hex"],[false,10,2,"default"],
|
||||
"platter","fan_cover",-50,50,0,"bottom",[0,0,0],["case",false,false,false],[40,0,3],["fan_hex"],[false,10,2,"default"]],
|
||||
|
||||
["m1_fitted_drivebox3.5",
|
||||
"add2","hd_holder",-19.4,-27,2.49,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[3.5,"portrait"],[false,10,2,"default"],
|
||||
"sub","hd_holes",-19.4,-27,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[3.5,"portrait","horizontal","none",3],[false,10,2,"default"],
|
||||
// "sub","hd_holes",-19.4,-27,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[3.5,"portrait","horizontal","none",3],[false,10,2,"default"],
|
||||
"sub","round",91.6,1.5,9.35,"bottom",[0,90,0],["case",true,true,false],[3,0,4],[0],[false,10,2,"default"],
|
||||
"sub","round",91.6,43.4,9.35,"bottom",[0,90,0],["case",true,true,false],[3,0,4],[0],[false,10,2,"default"],
|
||||
"sub","round",91.6,103.1,9.35,"bottom",[0,90,0],["case",true,true,false],[3,0,4],[0],[false,10,2,"default"],
|
||||
@@ -341,13 +331,13 @@ accessory_data = [
|
||||
"sub","vent",92,60,20,"bottom",[0,0,90],["case",true,false,false],[2,10,4],[1,17,"vertical",1],[false,10,2,"default"],
|
||||
"suball","vent",29,126,29,"bottom",[0,0,0],["case",false,true,false],[2,13,4],[1,4,"vertical",1],[false,10,2,"default"],
|
||||
"suball","fan_mask",5.6,-1.5,7,"bottom",[90,0,0],["case",true,false,false],[40,0,3],["fan_open"],[false,10,2,"default"],
|
||||
"model","hd35",-19.4,120,2.49,"bottom",[0,0,-90],["case",true,true,false],[0,0,0],[0],[false,10,2,"default"],
|
||||
"model","hd35",-19.4,120,34.5,"bottom",[0,0,-90],["case",true,true,false],[0,0,0],[0],[false,10,2,"default"],
|
||||
"model","hd35",-19.4,120,2.49,"bottom",[0,0,-90],["case",true,true,false],[0,0,0],["portrait"],[true,10,2,"default"],
|
||||
"model","hd35",-19.4,120,34.5,"bottom",[0,0,-90],["case",true,true,false],[0,0,0],["portrait"],[true,10,2,"default"],
|
||||
"model","fan_cover",5.6,-4,7,"bottom",[90,0,0],["case",true,false,false],[40,0,3],["fan_hex"],[false,10,2,"default"],
|
||||
"platter","fan_cover",-50,50,0,"bottom",[0,0,0],["case",false,false,false],[40,0,3],["fan_hex"],[false,10,2,"default"]],
|
||||
|
||||
["m1_fitted_pizzabox",
|
||||
"sub","hd_holes",-12,-27,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[3.5,"portrait","horizontal","none",3],[false,10,2,"default"],
|
||||
// "sub","hd_holes",-12,-27,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[3.5,"portrait","horizontal","none",3],[false,10,2,"default"],
|
||||
"sub","round",91.6,1.5,9.35,"bottom",[0,90,0],["case",true,true,false],[3,0,4],[0],[false,10,2,"default"],
|
||||
"sub","round",91.6,43.4,9.35,"bottom",[0,90,0],["case",true,true,false],[3,0,4],[0],[false,10,2,"default"],
|
||||
"sub","round",91.6,103.1,9.35,"bottom",[0,90,0],["case",true,true,false],[3,0,4],[0],[false,10,2,"default"],
|
||||
@@ -355,11 +345,11 @@ accessory_data = [
|
||||
"sub","vent",92,60,9,"bottom",[0,0,90],["case",true,false,false],[2,10,4],[1,17,"vertical",1],[false,10,2,"default"],
|
||||
"suball","vent",-89,126,15,"bottom",[0,0,0],["case",true,true,false],[2,13,4],[1,4,"vertical",1],[false,10,2,"default"],
|
||||
"suball","fan_mask",-30,60,48,"top",[0,0,0],["case",true,false,false],[80,0,3],["fan_open"],[false,10,2,"default"],
|
||||
"model","hd35",-12,120,2.5,"bottom",[0,0,-90],["case",true,true,false],[0,0,0],[0],[false,10,2,"default"]],
|
||||
"model","hd35",-12,120,2.5,"bottom",[0,0,-90],["case",true,true,false],[0,0,0],["portrait"],[true,10,2,"default"]],
|
||||
|
||||
["m1_fitted_drivebox3.5v",
|
||||
"add2","hd_holder",80,-27,2.49,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[3.5,"portrait","vertical","left"],[false,10,2,"default"],
|
||||
"sub","hd_holes",80,-27,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[3.5,"portrait","vertical","left",3],[false,10,2,"default"],
|
||||
// "sub","hd_holes",80,-27,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[3.5,"portrait","vertical","left",3],[false,10,2,"default"],
|
||||
"sub","round",91.6,14.5,6,"bottom",[0,90,0],["case",true,true,false],[3,0,4],[0],[false,10,2,"default"],
|
||||
"sub","round",91.6,58.55,6,"bottom",[0,90,0],["case",true,true,false],[3,0,4],[0],[false,10,2,"default"],
|
||||
"sub","round",91.6,90.1,6,"bottom",[0,90,0],["case",true,true,false],[3,0,4],[0],[false,10,2,"default"],
|
||||
@@ -369,7 +359,7 @@ accessory_data = [
|
||||
"sub","vent",92,60,20,"bottom",[0,0,90],["case",true,false,false],[2,10,4],[1,17,"vertical",1],[false,10,2,"default"],
|
||||
"suball","vent",29,126,29,"bottom",[0,0,0],["case",false,true,false],[2,13,4],[1,4,"vertical",1],[false,10,2,"default"],
|
||||
"suball","fan_mask",5.6,-1.5,35,"bottom",[90,0,0],["case",true,false,false],[60,0,3],["fan_open"],[false,10,2,"default"],
|
||||
"model","hd35",80,120,2.5,"bottom",[90,0,-90],["case",true,true,false],[0,0,0],[0],[false,10,2,"default"],
|
||||
"model","hd35",80,120,2.5,"bottom",[90,0,-90],["case",true,true,false],[0,0,0],["portrait"],[true,10,2,"default"],
|
||||
"model","fan_cover",5.6,-4,35,"bottom",[90,0,0],["case",true,false,false],[60,0,3],["fan_hex"],[false,10,2,"default"],
|
||||
"platter","fan_cover",-50,50,0,"bottom",[0,0,0],["case",false,false,false],[60,0,3],["fan_hex"],[false,10,2,"default"]],
|
||||
|
||||
@@ -403,8 +393,8 @@ accessory_data = [
|
||||
"sub","round",111,34,6.07,"bottom",[0,90,0],["case",true,false,false],[3,0,3],[0],[false,10,2,"default"],
|
||||
"sub","round",111,110.6,6.07,"bottom",[0,90,0],["case",true,false,false],[3,0,3],[0],[false,10,2,"default"],
|
||||
"add2","hd_holder",98,10,1.99,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","left"],[false,10,2,"default"],
|
||||
"sub","hd_holes",98,10,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","left",3],[false,10,2,"default"],
|
||||
"model","hd25",98,110,2,"bottom",[90,0,-90],["case",true,true,false],[0,0,0],[7],[false,10,2,"default"]],
|
||||
// "sub","hd_holes",98,10,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","left",3],[false,10,2,"default"],
|
||||
"model","hd25",98,110,2,"bottom",[90,0,-90],["case",true,true,false],[0,0,0],["portrait",7],[true,10,2,"default"]],
|
||||
|
||||
["h3_shell_router",
|
||||
"sub","vent",-3.5,30,40,"top",[0,0,90],["case",false,false,false],[2,10,4],[1,17,"vertical",1],[false,10,2,"default"],
|
||||
@@ -434,8 +424,8 @@ accessory_data = [
|
||||
"model","button_assembly",23.77,106.43,55.25,"top",[0,0,0],["sbc-case_z",true,true,true],[10,0,42],["recess"],[false,10,2,"default"],
|
||||
"model","hk_netcard",0,0,19,"bottom",[0,0,0],["sbc",true,true,true],[0,0,0],["portrait"],[true,10,2,"default"],
|
||||
"add2","hd_holder",101,10,1.99,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","left"],[false,10,2,"default"],
|
||||
"sub","hd_holes",101,10,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","left",3],[false,10,2,"default"],
|
||||
"model","hd25",101,110,2,"bottom",[90,0,-90],["case",true,true,false],[0,0,0],[7],[false,10,2,"default"],
|
||||
// "sub","hd_holes",101,10,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","left",3],[false,10,2,"default"],
|
||||
"model","hd25",101,110,2,"bottom",[90,0,-90],["case",true,true,false],[0,0,0],["portrait",7],[true,10,2,"default"],
|
||||
"platter","button_assembly",-20,0,0,"top",[0,0,0],["case",false,false,false],[10,0,42],["recess"],[false,10,2,"default"],
|
||||
"platter","button_assembly",-30,0,0,"top",[0,0,0],["case",false,false,false],[10,0,42],["recess"],[false,10,2,"default"]],
|
||||
|
||||
@@ -505,8 +495,8 @@ accessory_data = [
|
||||
"sub","round",111,34,6.07,"bottom",[0,90,0],["case",true,false,false],[3,0,6],[0],[false,10,2,"default"],
|
||||
"sub","round",111,110.5,6.07,"bottom",[0,90,0],["case",true,false,false],[3,0,6],[0],[false,10,2,"default"],
|
||||
"add2","hd_holder",98,10,1.99,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","left"],[false,10,2,"default"],
|
||||
"sub","hd_holes",98,10,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","left",3],[false,10,2,"default"],
|
||||
"model","hd25",98,110,2,"bottom",[90,0,-90],["case",true,true,false],[0,0,0],[7],[false,10,2,"default"]],
|
||||
// "sub","hd_holes",98,10,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","left",3],[false,10,2,"default"],
|
||||
"model","hd25",98,110,2,"bottom",[90,0,-90],["case",true,true,false],[0,0,0],["portrait",7],[true,10,2,"default"]],
|
||||
|
||||
["h3_ultimate2",
|
||||
"suball","fan_mask",0,25,3,"top",[0,270,0],["case",false,false,false],[60,0,6],["fan_open"],[false,10,2,"default"],
|
||||
@@ -569,10 +559,10 @@ accessory_data = [
|
||||
"sub","round",111,100.6,6.07,"bottom",[0,90,0],["case",true,true,false],[3,0,3],[0],[false,10,2,"default"],
|
||||
"add2","hd_holder",100,10,1.99,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","left"],[false,10,2,"default"],
|
||||
"add2","hd_holder",65,10,1.99,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","right"],[false,10,2,"default"],
|
||||
"sub","hd_holes",100,10,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","left",3],[false,10,2,"default"],
|
||||
"sub","hd_holes",65,10,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","right",3],[false,10,2,"default"],
|
||||
"model","hd25",65,110,71.85,"bottom",[-90,0,-90],["case",true,true,false],[0,0,0],[15],[false,10,2,"default"],
|
||||
"model","hd25",100,110,2,"bottom",[90,0,-90],["case",true,true,false],[0,0,0],[15],[false,10,2,"default"]],
|
||||
// "sub","hd_holes",100,10,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","left",3],[false,10,2,"default"],
|
||||
// "sub","hd_holes",65,10,-.01,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait","vertical","right",3],[false,10,2,"default"],
|
||||
"model","hd25",65,110,71.85,"bottom",[-90,0,-90],["case",true,true,false],[0,0,0],["portrait",15],[true,10,2,"default"],
|
||||
"model","hd25",100,110,2,"bottom",[90,0,-90],["case",true,true,false],[0,0,0],["portrait",15],[true,10,2,"default"]],
|
||||
|
||||
["show2_shell",
|
||||
"model","hk_wb2",6.25,24.675,16,"bottom",[0,0,180],["sbc",true,true,true],[0,0,0],[0],[false,10,2,"default"],
|
||||
|
||||
Reference in New Issue
Block a user