first commit
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"parameterSets": "",
|
||||
"fileFormatVersion": "1"
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
/* [Case settings] */
|
||||
Addons = 0; // [0:1:6]
|
||||
BoxThickness = 3; // [1:0.5:5]
|
||||
AddonHeight = 14;
|
||||
|
||||
DistanceBetweenObjects = 10;
|
||||
ShowCaseAssembled = false;
|
||||
ShowBoards = true;
|
||||
|
||||
ShowCase = true;
|
||||
ShowLid = true;
|
||||
ShowLargeHalf = true;
|
||||
ShowSmallHalf = true;
|
||||
|
||||
// 6chan standard sizes
|
||||
InteriorBoxHeight = 67;
|
||||
SplitHeight = 18;
|
||||
// Do NOT change this setting or CT won't fit
|
||||
InteriorBoxWidth = 62; // [60:0.1:65]
|
||||
|
||||
|
||||
/* [Render quality settings] */
|
||||
// Set to at least to 150 before render and save as .stl file, otherwise you can go down to 40 for quick 3D view
|
||||
$fn = 60; // [20:1:300]
|
||||
|
||||
if (ShowCase) {
|
||||
case();
|
||||
}
|
||||
if (ShowLid) {
|
||||
if(ShowCaseAssembled) {
|
||||
translate([InteriorBoxWidth/2+(BoxThickness*2)-0.5,InteriorBoxHeight/2+(BoxThickness/2)-0.5,24+(AddonHeight*Addons)+BoxThickness/2+DistanceBetweenObjects]) rotate([0,180,0]) lid();
|
||||
} else {
|
||||
translate([-(InteriorBoxWidth/2+(BoxThickness)+DistanceBetweenObjects),InteriorBoxHeight/2+(BoxThickness),0]) lid();
|
||||
}
|
||||
}
|
||||
|
||||
module lid() {
|
||||
color("LightCyan",alpha = 0.5)
|
||||
union() {
|
||||
// Lid base
|
||||
cube([InteriorBoxHeight+(BoxThickness*2),InteriorBoxWidth+(BoxThickness*2),BoxThickness],center=true);
|
||||
|
||||
// Lid sides
|
||||
translate([0,0,BoxThickness-0.001])
|
||||
difference() {
|
||||
cube([InteriorBoxHeight,InteriorBoxWidth,6],center=true);
|
||||
cube([InteriorBoxHeight-4,InteriorBoxWidth-4,6+0.001],center=true);
|
||||
}
|
||||
|
||||
CubePoints = [
|
||||
[ -13, -2, 0 ], //0
|
||||
[ 13, -2, 0 ], //1
|
||||
[ 13, 2, 0 ], //2
|
||||
[ -13, 2, 0 ], //3
|
||||
[ -10, -0.5, 0.5 ], //4
|
||||
[ 10, -0.5, 0.5 ], //5
|
||||
[ 10, 0.5, 0.5 ], //6
|
||||
[ -10, 0.5, 0.5 ]]; //7
|
||||
|
||||
CubeFaces = [
|
||||
[0,1,2,3], // bottom
|
||||
[4,5,1,0], // front
|
||||
[7,6,5,4], // top
|
||||
[5,6,2,1], // right
|
||||
[6,7,3,2], // back
|
||||
[7,4,0,3]]; // left
|
||||
|
||||
translate([InteriorBoxHeight/2,0,BoxThickness+1])
|
||||
rotate([90,0,90])
|
||||
polyhedron( CubePoints, CubeFaces);
|
||||
}
|
||||
}
|
||||
|
||||
module case() {
|
||||
difference() {
|
||||
union() {
|
||||
if(ShowSmallHalf) {
|
||||
color("SteelBlue",alpha = 1)
|
||||
SmallHalf();
|
||||
}
|
||||
if(ShowLargeHalf) {
|
||||
color("LightSteelBlue",alpha = 1)
|
||||
LargeHalf();
|
||||
}
|
||||
}
|
||||
|
||||
union() {
|
||||
// Power Hole
|
||||
color("Yellow")
|
||||
translate([-0.02,9.9,BoxThickness+4])
|
||||
cube([BoxThickness+0.03,9.4,11.6]);
|
||||
|
||||
// CT Holes
|
||||
color("Yellow")
|
||||
for (ctline=[0:Addons]) {
|
||||
for (ctcolumn=[0:2]) {
|
||||
translate([BoxThickness+24+ctcolumn*14,InteriorBoxWidth+(BoxThickness*2)+0.01,7+BoxThickness+(AddonHeight*ctline)])
|
||||
rotate([90,0,0])
|
||||
cylinder(h=InteriorBoxWidth+BoxThickness*2+0.02,d=6);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(ShowBoards) {
|
||||
color("Salmon")
|
||||
union() {
|
||||
rotate([0,0,-90])
|
||||
translate([-61.4-BoxThickness,62.2+BoxThickness,2.8+BoxThickness])
|
||||
import("mainboard.stl");
|
||||
|
||||
if(Addons>=1) {
|
||||
for (addon=[0:Addons]) {
|
||||
rotate([0,0,-90])
|
||||
translate([-66+BoxThickness/2,62.7+BoxThickness,2.8+BoxThickness+(AddonHeight*addon)])
|
||||
import("addon.stl");
|
||||
}
|
||||
}
|
||||
rotate([0,0,-90])
|
||||
translate([-66+BoxThickness/2,62.7+BoxThickness,2.8+BoxThickness+(AddonHeight*Addons)])
|
||||
import("mcu.stl");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module LargeHalf() {
|
||||
union() {
|
||||
difference() {
|
||||
// Large half
|
||||
cube([InteriorBoxHeight+(BoxThickness*2),InteriorBoxWidth+(BoxThickness*2),25+(AddonHeight*Addons)]);
|
||||
translate([BoxThickness-0.01,BoxThickness-0.01,BoxThickness-0.01])
|
||||
cube([InteriorBoxHeight+0.02,InteriorBoxWidth+0.02,25+(AddonHeight*Addons)+0.02]);
|
||||
translate([-0.01,-0.01,-0.01])
|
||||
cube([InteriorBoxHeight+(BoxThickness*2)+0.02,SplitHeight+0.01,25+(AddonHeight*Addons)+10+0.01]);
|
||||
|
||||
translate([0-0.01,SplitHeight-0.15,-0.01])
|
||||
ridge();
|
||||
translate([0-0.01,SplitHeight-0.15,-0.01])
|
||||
cube([InteriorBoxHeight+(BoxThickness*2),3,BoxThickness/2]);
|
||||
translate([InteriorBoxHeight+(BoxThickness*2)+0.01,SplitHeight-0.15,-0.01])
|
||||
mirror([1,0,0])
|
||||
ridge();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module SmallHalf() {
|
||||
union() {
|
||||
difference() {
|
||||
translate([0.01,0.01,0.01])
|
||||
cube([InteriorBoxHeight+(BoxThickness*2)+0.01,InteriorBoxWidth+(BoxThickness*2)+0.01,25+(AddonHeight*Addons)+0.01]);
|
||||
translate([BoxThickness,BoxThickness,BoxThickness])
|
||||
cube([InteriorBoxHeight,InteriorBoxWidth,24+(AddonHeight*Addons)]);
|
||||
translate([-0.1,SplitHeight-0.1,-0.1])
|
||||
cube([InteriorBoxHeight+(BoxThickness*2)+0.2,InteriorBoxWidth+(BoxThickness*2),25+(AddonHeight*Addons)+10]);
|
||||
}
|
||||
translate([0-0.01,SplitHeight-0.15,-0.01])
|
||||
ridge();
|
||||
translate([InteriorBoxHeight+(BoxThickness*2)+0.01,SplitHeight-0.15,-0.01])
|
||||
mirror([1,0,0])
|
||||
ridge();
|
||||
}
|
||||
translate([0-0.01,SplitHeight-0.15,-0.01])
|
||||
cube([InteriorBoxHeight+(BoxThickness*2),3,BoxThickness/2]);
|
||||
}
|
||||
|
||||
module ridge() {
|
||||
linear_extrude(height = 25+(AddonHeight*Addons)+0.04, center = false, convexity = 10, twist = 0)
|
||||
polygon(points=[[0,0],[0,3],[BoxThickness/2+0.6,3],[BoxThickness/2+0.6,2],[BoxThickness/2+0.1,2],[BoxThickness/2+0.6,0]]);
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user