remove unused files and update readme and license files
This commit is contained in:
parent
1dd9dfb746
commit
f98e5d74d1
13 changed files with 4 additions and 350 deletions
|
@ -1 +1 @@
|
|||
This thing was created by Thingiverse user apaneiro, and is licensed under cc.
|
||||
This model is based on a thing created by Thingiverse user `apaneiro` and that is `licensed under cc`, which is not very clear. Should we assume a CC-0 license?
|
||||
|
|
|
@ -1 +1,3 @@
|
|||
Odroid M1 cases (w/ & w/o HDD) by apaneiro on Thingiverse: https://www.thingiverse.com/thing:5404932
|
||||
Odroid M1 Case for building a CLIC demo system
|
||||
|
||||
Based on original work by apaneiro on Thingiverse: https://www.thingiverse.com/thing:5404932
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,348 +0,0 @@
|
|||
// v2
|
||||
// Reduced rail width from 2 to 1.7
|
||||
// Adjust ethernet and micro-usb
|
||||
// Ease assembly
|
||||
|
||||
|
||||
$w=1.5; // wall thickness
|
||||
$g=.2; // gap
|
||||
|
||||
$hl=123; // heatsink length
|
||||
$hw=100; // heatsink width
|
||||
$hrailh=1.7 - $g; // heatsink rail height
|
||||
$hrailw=1.7 - $g; // heatsink rail witdth
|
||||
|
||||
$boxh=33; // box height
|
||||
$boxw=$hw + 2 * ($w + $g); // box width
|
||||
$boxl=$hl / 2 + ($w + $g); // box length
|
||||
|
||||
$feeth=5.3; // feet height
|
||||
|
||||
// ========================================
|
||||
|
||||
|
||||
translate([0, 0, 0]) frontBox();
|
||||
|
||||
translate([0, 0, 0]) rotate([0, 0, 180]) color("orange") backBox();
|
||||
|
||||
|
||||
// ================ MODULES ================
|
||||
|
||||
module frontBox() {
|
||||
difference() {
|
||||
box();
|
||||
frontHoles();
|
||||
frontScrewoles();
|
||||
frontLabel();
|
||||
}
|
||||
}
|
||||
|
||||
module backBox() {
|
||||
difference() {
|
||||
union() {
|
||||
box();
|
||||
connectors();
|
||||
}
|
||||
backHoles();
|
||||
backScrewoles();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module frontLabel() {
|
||||
color("green")
|
||||
translate([$boxw / 2 - 6, $boxl - .5, $feeth + 2])
|
||||
rotate([90, 0, 180])
|
||||
linear_extrude(2) text("Odroid M1", size=3);
|
||||
}
|
||||
|
||||
module frontScrewoles() {
|
||||
translate([0, 4.2, $feeth + $boxh - 20.3])
|
||||
rotate([0, 90, 0])
|
||||
cylinder(h=$boxw + 10, r=1.1, center=true, $fn=20);
|
||||
translate([37, 4.2, 0])
|
||||
rotate([0, 0, 90])
|
||||
cylinder(h=50, r=1.1, center=true, $fn=20);
|
||||
translate([-37, 4.2, 0])
|
||||
rotate([0, 0, 90])
|
||||
cylinder(h=50, r=1.1, center=true, $fn=20);
|
||||
}
|
||||
|
||||
module backScrewoles() {
|
||||
translate([0, -4.2, $feeth + $boxh - 20.3])
|
||||
rotate([0, 90, 0])
|
||||
cylinder(h=$boxw + 10, r=0.8, center=true, $fn=20);
|
||||
translate([37, -4.2, 0])
|
||||
rotate([0, 0, 90])
|
||||
cylinder(h=50, r=0.8, center=true, $fn=20);
|
||||
translate([-37, -4.2, 0])
|
||||
rotate([0, 0, 90])
|
||||
cylinder(h=50, r=0.8, center=true, $fn=20);
|
||||
}
|
||||
|
||||
module connectors() {
|
||||
difference() {
|
||||
union() {
|
||||
connector($boxw - 2 * $w);
|
||||
translate([-$boxw / 2, 0, $feeth + $w + 10])
|
||||
rotate([0, 90, 0])
|
||||
connector(20, 0);
|
||||
translate([$boxw / 2, 0, $feeth + $w + 10])
|
||||
rotate([0, -90, 0])
|
||||
connector(20, 0);
|
||||
}
|
||||
translate([$boxw / 2 - .5 * $w, -5, $feeth + $w])
|
||||
rotate([0, -45, 0])
|
||||
cube([10, 10, 2 * $w], center=true);
|
||||
translate([-($boxw / 2 - .5 * $w), -5, $feeth + $w])
|
||||
rotate([0, 45, 0])
|
||||
cube([10, 10, 2 * $w], center=true);
|
||||
|
||||
|
||||
translate([-($boxw / 2 - .5 * $w), -7.7, $feeth + $w])
|
||||
rotate([0, 45, 45])
|
||||
cube([10, 10, 2 * $w], center=true);
|
||||
translate([$boxw / 2 - .5 * $w, -7.7, $feeth + $w])
|
||||
rotate([0, -45, -45])
|
||||
cube([10, 10, 2 * $w], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module connector($width, $z = $feeth) {
|
||||
difference() {
|
||||
union() {
|
||||
translate([0, 0, $z + 1.5 * $w])
|
||||
cube([$width, 18, $w], center=true);
|
||||
translate([0, 4.5, $z + $w])
|
||||
cube([$width, 9, $w], center=true);
|
||||
}
|
||||
// translate([0, -9.3, $z + 1.5 * $w])
|
||||
// rotate([45, 0, 0])
|
||||
// cube([$width + $g, 18, $w], center=true);
|
||||
translate([0, 9.3, $z + 1.5 * $w])
|
||||
rotate([-45, 0, 0])
|
||||
cube([$width + $g, 18, $w], center=true);
|
||||
translate([0, -9.3, $z + 1.5 * $w])
|
||||
rotate([-45, 0, 0])
|
||||
cube([$width + $g, 18, $w], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module backHoles() {
|
||||
color("green") {
|
||||
translate([0, $boxl, $feeth + $boxh - 13.8])
|
||||
corners(24.26, 92);
|
||||
|
||||
translate([31.9, $boxl, $feeth + $boxh - 9.92])
|
||||
cube([12.8, 5, 3.1], center=true);
|
||||
translate([19, $boxl, $feeth + $boxh - 13.8])
|
||||
rotate([90, 0, 0])
|
||||
cylinder(h=5, r=3, center=true, $fn=100);
|
||||
translate([-32.33, $boxl, $feeth + $boxh - 9.4])
|
||||
rotate([90, 0, 0])
|
||||
cylinder(h=5, r=2.85, center=true, $fn=100);
|
||||
}
|
||||
}
|
||||
|
||||
module frontHoles() {
|
||||
color("green") {
|
||||
translate([0, $boxl, $feeth + $boxh - 13.8])
|
||||
corners(24.26, 92);
|
||||
// ethernet
|
||||
translate([34.42, $boxl, $feeth + $boxh - 14])
|
||||
cube([15.32, 5, 13.5], center=true);
|
||||
// usb
|
||||
translate([-2.87, $boxl, $feeth + $boxh - 15.5])
|
||||
cube([14.5, 5, 16], center=true);
|
||||
translate([-21, $boxl, $feeth + $boxh - 15.5])
|
||||
cube([14.5, 5, 16], center=true);
|
||||
// power
|
||||
translate([-38.8, $boxl, $feeth + $boxh - 14.07])
|
||||
rotate([90, 0, 0])
|
||||
cylinder(h=5, r=3.725, center=true, $fn=100);
|
||||
// hdmi
|
||||
translate([17.13, $boxl, $feeth + $boxh - 10.8]) {
|
||||
difference() {
|
||||
cube([15.35, 5, 6], center=true);
|
||||
translate([-10, 0, 3])
|
||||
rotate([0, 45, 0])
|
||||
cube([6, 6, 6], center=true);
|
||||
translate([10, 0, 3])
|
||||
rotate([0, -45, 0])
|
||||
cube([6, 6, 6], center=true);
|
||||
}
|
||||
}
|
||||
// micro-usb
|
||||
translate([-21.21, $boxl, $feeth + $boxh - 4.3])
|
||||
difference() {
|
||||
cube([8, 5, 3], center=true);
|
||||
translate([-5, 0, -1.5])
|
||||
rotate([0, -45, 0])
|
||||
cube([3, 6, 3], center=true);
|
||||
translate([5, 0, -1.5])
|
||||
rotate([0, 45, 0])
|
||||
cube([3, 6, 3], center=true);
|
||||
}
|
||||
|
||||
translate([-39, $boxl - 3.5, $feeth + $boxh - 13.3])
|
||||
cube([11, 5, 13], center=true);
|
||||
translate([16.8, $boxl - 3.5, $feeth + $boxh - 11])
|
||||
cube([19, 5, 10], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module corners($height = 0, $width = 0) {
|
||||
$r = 4;
|
||||
$h = $height - $r * 2;
|
||||
$w = $width - $r * 2;
|
||||
|
||||
rotate([0, 90, 90])
|
||||
union() {
|
||||
translate([-$h / 2, -$w / 2, 0])
|
||||
difference() {
|
||||
cylinder(h=1, r=$r, center=true, $fn=100);
|
||||
cylinder(h=2, r=$r - 1, center=true, $fn=100);
|
||||
translate([0, 5, 0])
|
||||
cube([20, 10, 2], center=true);
|
||||
translate([5, 0, 0])
|
||||
cube([10, 20, 2], center=true);
|
||||
}
|
||||
translate([-$h / 2, $w / 2, 0])
|
||||
difference() {
|
||||
cylinder(h=1, r=$r, center=true, $fn=100);
|
||||
cylinder(h=2, r=$r - 1, center=true, $fn=100);
|
||||
translate([0, -5, 0])
|
||||
cube([20, 10, 2], center=true);
|
||||
translate([5, 0, 0])
|
||||
cube([10, 20, 2], center=true);
|
||||
}
|
||||
translate([$h / 2, -$w / 2, 0])
|
||||
difference() {
|
||||
cylinder(h=1, r=$r, center=true, $fn=100);
|
||||
cylinder(h=2, r=$r - 1, center=true, $fn=100);
|
||||
translate([0, 5, 0])
|
||||
cube([20, 10, 2], center=true);
|
||||
translate([-5, 0, 0])
|
||||
cube([10, 20, 2], center=true);
|
||||
}
|
||||
translate([$h / 2, $w / 2, 0])
|
||||
difference() {
|
||||
cylinder(h=1, r=$r, center=true, $fn=100);
|
||||
cylinder(h=2, r=$r - 1, center=true, $fn=100);
|
||||
translate([0, -5, 0])
|
||||
cube([20, 10, 2], center=true);
|
||||
translate([-5, 0, 0])
|
||||
cube([10, 20, 2], center=true);
|
||||
}
|
||||
translate([$h / 2 + $r - .5, 0, 0])
|
||||
cube([1, $w + .02, 1], center=true);
|
||||
translate([-($h / 2 + $r - .5), 0, 0])
|
||||
cube([1, $w + .02, 1], center=true);
|
||||
translate([0, $w / 2 + $r - .5, 0])
|
||||
cube([$h + .02, 1, 1], center=true);
|
||||
translate([0, -($w / 2 + $r - .5), 0])
|
||||
cube([$h + .02, 1, 1], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module box() {
|
||||
union() {
|
||||
walls();
|
||||
rails();
|
||||
feet();
|
||||
}
|
||||
}
|
||||
|
||||
module walls() {
|
||||
difference() {
|
||||
union() {
|
||||
// front wall
|
||||
translate([0, $boxl - $w / 2, $feeth + $boxh / 2])
|
||||
cube([$boxw, $w, $boxh], center=true);
|
||||
// left wall
|
||||
translate([($boxw - $w) / 2, $boxl / 2, $feeth + $boxh / 2])
|
||||
cube([$w, $boxl, $boxh], center=true);
|
||||
// right wall
|
||||
translate([-($boxw - $w) / 2, $boxl / 2, $feeth + $boxh / 2])
|
||||
cube([$w, $boxl, $boxh], center=true);
|
||||
}
|
||||
|
||||
// corners cuts
|
||||
translate([($boxw - $w) / 2 + 5, $boxl / 2, $feeth + $boxh + 0.6])
|
||||
rotate([0,45,0])
|
||||
cube([20, $boxl + 10, 15],center=true);
|
||||
translate([-(($boxw - $w) / 2 + 5), $boxl / 2, $feeth + $boxh + 0.6])
|
||||
rotate([0,-45,0])
|
||||
cube([20, $boxl + 10, 15],center=true);
|
||||
}
|
||||
|
||||
// bottom wall
|
||||
difference() {
|
||||
translate([0, $boxl / 2, $feeth + $w / 2])
|
||||
cube([$boxw, $boxl, $w], center=true);
|
||||
|
||||
// bottom cuts
|
||||
translate([0, $boxl / 2, $feeth + $w / 2])
|
||||
cube([3, 40, $w * 2], center=true);
|
||||
translate([10, $boxl / 2, $feeth + $w / 2])
|
||||
cube([3, 40, $w * 2], center=true);
|
||||
translate([-10, $boxl / 2, $feeth + $w / 2])
|
||||
cube([3, 40, $w * 2], center=true);
|
||||
translate([20, $boxl / 2, $feeth + $w / 2])
|
||||
cube([3, 40, $w * 2], center=true);
|
||||
translate([-20, $boxl / 2, $feeth + $w / 2])
|
||||
cube([3, 40, $w * 2], center=true);
|
||||
translate([30, $boxl / 2, $feeth + $w / 2])
|
||||
cube([3, 40, $w * 2], center=true);
|
||||
translate([-30, $boxl / 2, $feeth + $w / 2])
|
||||
cube([3, 40, $w * 2], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module rails() {
|
||||
translate([($boxw / 2 - $w) - ($hrailw - $w / 2) / 2, $boxl / 2, $feeth + $boxh - 6.7])
|
||||
cube([$hrailw + $w / 2, $boxl - $w, $hrailh], center=true);
|
||||
translate([-(($boxw / 2 - $w) - ($hrailw - $w / 2) / 2), $boxl / 2, $feeth + $boxh - 6.7])
|
||||
cube([$hrailw + $w / 2, $boxl - $w, $hrailh], center=true);
|
||||
}
|
||||
|
||||
module feet() {
|
||||
$f = $feeth + $w / 2;
|
||||
|
||||
difference() {
|
||||
translate([($boxw - $f * 2) / 2, $boxl - $w / 2, $f / 2])
|
||||
cube([$f * 2, $w, $f], center=true);
|
||||
|
||||
translate([($boxw - $f) / 2 - 1.5 * $f, $boxl - $w / 2, 0])
|
||||
rotate([0, 45, 0])
|
||||
cube([$f * 2, $w * 2, $f * 2], center=true);
|
||||
}
|
||||
|
||||
difference() {
|
||||
translate([-($boxw - $f * 2) / 2, $boxl - $w / 2, $f / 2])
|
||||
cube([$f * 2, $w, $f], center=true);
|
||||
|
||||
translate([-($boxw - $f) / 2 + 1.5 * $f, $boxl - $w / 2, 0])
|
||||
rotate([0, 45, 0])
|
||||
cube([$f * 2, $w * 2, $f * 2], center=true);
|
||||
}
|
||||
|
||||
difference() {
|
||||
translate([-($boxw - $w) / 2, $boxl - $f, $f / 2])
|
||||
cube([$w, $f * 2, $f], center=true);
|
||||
|
||||
translate([-($boxw - $w) / 2, $boxl - $f / 2 - 1.5 * $f, 0])
|
||||
rotate([45, 0, 0])
|
||||
cube([$w * 2, $f * 2, $f * 2], center=true);
|
||||
}
|
||||
|
||||
difference() {
|
||||
translate([($boxw - $w) / 2, $boxl - $f, $f / 2])
|
||||
cube([$w, $f * 2, $f], center=true);
|
||||
|
||||
translate([($boxw - $w) / 2, $boxl - $f / 2 - 1.5 * $f, 0])
|
||||
rotate([45, 0, 0])
|
||||
cube([$w * 2, $f * 2, $f * 2], center=true);
|
||||
}
|
||||
}
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 285 KiB |
Binary file not shown.
Before Width: | Height: | Size: 323 KiB |
Binary file not shown.
Before Width: | Height: | Size: 423 KiB |
Binary file not shown.
Before Width: | Height: | Size: 372 KiB |
Binary file not shown.
Before Width: | Height: | Size: 294 KiB |
Binary file not shown.
Before Width: | Height: | Size: 315 KiB |
Loading…
Reference in a new issue